voicemeeter_api_ruby 4.0.0 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/configs.rb CHANGED
@@ -1,79 +1,81 @@
1
- require 'kinds'
2
- require 'toml'
3
-
4
- module Configs
5
- private
6
-
7
- @@configs = Hash.new
8
-
9
- class TOMLStrBuilder
10
- def initialize(kind)
11
- @p_in, @v_in = kind[:layout][:strip].values
12
- @p_out, @v_out = kind[:layout][:bus].values
13
- @vs_params =
14
- ['mute = false', 'mono = false', 'solo = false', 'gain = 0.0'] +
15
- (1..@p_out).map { |i| "A#{i} = false" } +
16
- (1..@v_out).map { |i| "B#{i} = false" }
17
-
18
- @ps_params = @vs_params + ['comp = 0.0', 'gate = 0.0']
19
- @bus_params = ['mono = false', 'eq = false', 'mute = false']
20
- end
21
-
22
- def build
23
- '
24
- Builds a TOML script for the parser
25
- '
26
- @ps = (0...@p_in).map { |i| ["[strip_#{i}]"] + @ps_params }
27
- @ps.map! { |a| a.map { |s| s.gsub('B1 = false', 'B1 = true') } }
28
- @vs =
29
- (@p_in...(@p_in + @v_in)).map do |i|
30
- ["[strip_#{i}]"] + @vs_params
31
- end
32
- @vs.map! { |a| a.map { |s| s.gsub('A1 = false', 'A1 = true') } }
33
-
34
- @b =
35
- (0...(@p_out + @v_out)).map { |i| ["[bus_#{i}]"] + @bus_params }
36
-
37
- [@ps + @vs + @b].join("\n")
38
- end
39
- end
40
-
41
- def parser(data)
42
- TOML::Parser.new(data).parsed
43
- end
44
-
45
- def get_configs(kind_id)
46
- file_pattern =
47
- File.join(File.dirname(__dir__), 'configs', "#{kind_id}", '*.toml')
48
-
49
- Dir
50
- .glob(file_pattern)
51
- .to_h do |toml_file|
52
- filename = File.basename(toml_file, '.toml')
53
- puts "loading config #{kind_id}/#{filename} into memory"
54
- [filename, parser(File.read(toml_file))]
55
- end
56
- end
57
-
58
- def loader
59
- if @@configs.empty?
60
- builder = TOMLStrBuilder.new(@kind)
61
- puts 'loading config reset into memory'
62
- @@configs['reset'] = parser(builder.build)
63
- @@configs.merge!(get_configs(@kind.name.to_s))
64
- end
65
- end
66
-
67
- public
68
-
69
- def set_config(value)
70
- loader
71
- unless @@configs.key? value
72
- raise VMRemoteErrors.new("No profile with name #{value} was loaded")
73
- end
74
-
75
- self.send('set_multi', @@configs[value])
76
- puts "config #{@kind.name}/#{value} applied!"
77
- sleep(@delay)
78
- end
79
- end
1
+ require 'kinds'
2
+ require 'toml'
3
+
4
+ module Configs
5
+ private
6
+
7
+ @@configs = Hash.new
8
+
9
+ class TOMLStrBuilder
10
+ def initialize(kind)
11
+ @p_in, @v_in = kind[:layout][:strip].values
12
+ @p_out, @v_out = kind[:layout][:bus].values
13
+ @vs_params =
14
+ ['mute = false', 'mono = false', 'solo = false', 'gain = 0.0'] +
15
+ (1..@p_out).map { |i| "A#{i} = false" } +
16
+ (1..@v_out).map { |i| "B#{i} = false" }
17
+
18
+ @ps_params = @vs_params + ['comp = 0.0', 'gate = 0.0']
19
+ @bus_params = ['mono = false', 'eq = false', 'mute = false']
20
+ end
21
+
22
+ def build
23
+ '
24
+ Builds a TOML script for the parser
25
+ '
26
+ @ps = (0...@p_in).map { |i| ["[strip_#{i}]"] + @ps_params }
27
+ @ps.map! { |a| a.map { |s| s.gsub('B1 = false', 'B1 = true') } }
28
+ @vs =
29
+ (@p_in...(@p_in + @v_in)).map do |i|
30
+ ["[strip_#{i}]"] + @vs_params
31
+ end
32
+ @vs.map! { |a| a.map { |s| s.gsub('A1 = false', 'A1 = true') } }
33
+
34
+ @b =
35
+ (0...(@p_out + @v_out)).map { |i| ["[bus_#{i}]"] + @bus_params }
36
+
37
+ [@ps + @vs + @b].join("\n")
38
+ end
39
+ end
40
+
41
+ def parser(data)
42
+ TOML::Parser.new(data).parsed
43
+ end
44
+
45
+ def get_configs(kind_id)
46
+ file_pattern =
47
+ File.join(File.dirname(__dir__), 'configs', "#{kind_id}", '*.toml')
48
+
49
+ Dir
50
+ .glob(file_pattern)
51
+ .to_h do |toml_file|
52
+ filename = File.basename(toml_file, '.toml')
53
+ puts "loading config #{kind_id}/#{filename} into memory"
54
+ [filename, parser(File.read(toml_file))]
55
+ end
56
+ end
57
+
58
+ def loader
59
+ if @@configs.empty?
60
+ builder = TOMLStrBuilder.new(@kind)
61
+ puts 'loading config reset into memory'
62
+ @@configs['reset'] = parser(builder.build)
63
+ @@configs.merge!(get_configs(@kind.name.to_s))
64
+ end
65
+ end
66
+
67
+ public
68
+
69
+ def set_config(value)
70
+ loader
71
+ unless @@configs.key? value
72
+ raise VMRemoteErrors.new("No profile with name #{value} was loaded")
73
+ end
74
+
75
+ self.send('set_multi', @@configs[value])
76
+ puts "config #{@kind.name}/#{value} applied!"
77
+ sleep(@delay)
78
+ end
79
+
80
+ alias_method 'apply_config', :set_config
81
+ end
data/lib/inst.rb CHANGED
@@ -1,29 +1,29 @@
1
- require 'win32/registry'
2
- require 'pathname'
3
- require_relative 'errors'
4
-
5
- include Errors
6
-
7
- module InstallationFunctions
8
- private
9
-
10
- def get_vmpath(os_bits)
11
- vm_key = 'VB:Voicemeeter {17359A74-1236-5467}'
12
- reg_key =
13
- "Software#{os_bits == 64 ? "\\WOW6432Node" : ''}\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"
14
- Win32::Registry::HKEY_LOCAL_MACHINE.open(reg_key + vm_key) do |reg|
15
- value = reg['UninstallString']
16
-
17
- pn = Pathname.new(value)
18
- return pn.dirname
19
- end
20
- raise InstallErrors.new('Could not get the Voicemeeter path')
21
- end
22
-
23
- def vm_dll=(value)
24
- unless value.file?
25
- raise InstallErrors.new('Could not fetch the dll file')
26
- end
27
- @vm_dll = value
28
- end
29
- end
1
+ require 'win32/registry'
2
+ require 'pathname'
3
+ require_relative 'errors'
4
+
5
+ include Errors
6
+
7
+ module InstallationFunctions
8
+ private
9
+
10
+ def get_vmpath(os_bits)
11
+ vm_key = 'VB:Voicemeeter {17359A74-1236-5467}'
12
+ reg_key =
13
+ "Software#{os_bits == 64 ? "\\WOW6432Node" : ''}\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"
14
+ Win32::Registry::HKEY_LOCAL_MACHINE.open(reg_key + vm_key) do |reg|
15
+ value = reg['UninstallString']
16
+
17
+ pn = Pathname.new(value)
18
+ return pn.dirname
19
+ end
20
+ raise InstallErrors.new('Could not get the Voicemeeter path')
21
+ end
22
+
23
+ def vm_dll=(value)
24
+ unless value.file?
25
+ raise InstallErrors.new('Could not fetch the dll file')
26
+ end
27
+ @vm_dll = value
28
+ end
29
+ end
data/lib/iremote.rb CHANGED
@@ -1,42 +1,30 @@
1
- require_relative 'meta'
2
- require_relative 'errors'
3
-
4
- class IRemote
5
- '
6
- Common interface between base class and higher classes.
7
- '
8
- include Meta_Functions
9
-
10
- def initialize(remote, i = nil)
11
- @remote = remote
12
- @index = i
13
- end
14
-
15
- def getter(param, is_string = false)
16
- @remote.get_parameter("#{self.identifier}.#{param}", is_string)
17
- end
18
-
19
- def setter(param, value)
20
- @remote.set_parameter("#{self.identifier}.#{param}", value)
21
- end
22
-
23
- def identifier
24
- raise 'Called abstract method: identifier'
25
- end
26
-
27
- def set_multi(param_hash)
28
- param_hash.each { |(key, val)| self.send("#{key}=", val) }
29
- end
30
- end
31
-
32
- module Fades
33
- def fadeto(target, time)
34
- self.setter('FadeTo', "(#{target}, #{time})")
35
- sleep(@remote.delay)
36
- end
37
-
38
- def fadeby(change, time)
39
- self.setter('FadeBy', "(#{change}, #{time})")
40
- sleep(@remote.delay)
41
- end
42
- end
1
+ require_relative 'meta'
2
+ require_relative 'errors'
3
+
4
+ class IRemote
5
+ '
6
+ Common interface between base class and higher classes.
7
+ '
8
+ include Meta_Functions
9
+
10
+ def initialize(remote, i = nil)
11
+ @remote = remote
12
+ @index = i
13
+ end
14
+
15
+ def getter(param, is_string = false)
16
+ @remote.get_parameter("#{self.identifier}.#{param}", is_string)
17
+ end
18
+
19
+ def setter(param, value)
20
+ @remote.set_parameter("#{self.identifier}.#{param}", value)
21
+ end
22
+
23
+ def identifier
24
+ raise 'Called abstract method: identifier'
25
+ end
26
+
27
+ def set_multi(param_hash)
28
+ param_hash.each { |(key, val)| self.send("#{key}=", val) }
29
+ end
30
+ end