voicemeeter_api_ruby 4.1.2 → 4.1.3

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/meta.rb CHANGED
@@ -1,282 +1,275 @@
1
- require_relative 'errors'
2
-
3
- module Conversions
4
- module_function
5
-
6
- def Boolean(value)
7
- case value
8
- when true, 1
9
- true
10
- when false, nil, 0
11
- false
12
- else
13
- raise ArgumentError,
14
- "invalid value for Boolean(): \"#{value.inspect}\""
15
- end
16
- end
17
- end
18
-
19
- module Meta_Functions
20
- private
21
-
22
- include Conversions
23
-
24
- def make_accessor_bool(*params)
25
- params.each do |param|
26
- define_singleton_method("#{param}") do
27
- return !(self.getter("#{param}")).zero?
28
- end
29
-
30
- define_singleton_method("#{param}=") do |value|
31
- self.setter("#{param}", Boolean(value) ? 1 : 0)
32
- end
33
- end
34
- end
35
-
36
- def make_accessor_int(*params)
37
- params.each do |param|
38
- define_singleton_method("#{param}") do
39
- return self.getter("#{param}").to_i
40
- end
41
- define_singleton_method("#{param}=") do |value|
42
- self.setter("#{param}", value)
43
- end
44
- end
45
- end
46
-
47
- def make_accessor_float(*params)
48
- params.each do |param|
49
- define_singleton_method("#{param}") do
50
- return self.getter("#{param}")
51
- end
52
- define_singleton_method("#{param}=") do |value|
53
- self.setter("#{param}", value)
54
- end
55
- end
56
- end
57
-
58
- def make_accessor_string(*params)
59
- params.each do |param|
60
- define_singleton_method("#{param}") do
61
- return self.getter("#{param}", true)
62
- end
63
- define_singleton_method("#{param}=") do |value|
64
- self.setter("#{param}", value)
65
- end
66
- end
67
- end
68
-
69
- def make_reader_only(*params)
70
- params.each do |param|
71
- define_singleton_method("#{param}") do
72
- return self.getter("#{param}")
73
- end
74
- end
75
- end
76
-
77
- def make_writer_only(*params)
78
- params.each do |param|
79
- define_singleton_method("#{param}=") do |value = 1|
80
- self.setter("#{param}", value)
81
- end
82
- end
83
- end
84
-
85
- def make_channel_props(num_A, num_B)
86
- (1..(num_A + num_B)).map { |i| i <= num_A ? "A#{i}" : "B#{i - num_A}" }
87
- end
88
-
89
- def make_action_prop(*params)
90
- params.each do |param|
91
- define_singleton_method("#{param}") { self.setter("#{param}", 1) }
92
- end
93
- end
94
- end
95
-
96
- module Channel_Meta_Functions
97
- private
98
-
99
- include Conversions
100
- include Meta_Functions
101
-
102
- def make_accessor_bool(*params)
103
- params.each do |param|
104
- cmds = { eq: 'EQ.on' }
105
- if cmds.key? param
106
- cmd = cmds[param]
107
- else
108
- cmd = param
109
- end
110
-
111
- define_singleton_method("#{param}") do
112
- return !(self.getter("#{cmd}")).zero?
113
- end
114
-
115
- define_singleton_method("#{param}=") do |value|
116
- self.setter("#{cmd}", Boolean(value) ? 1 : 0)
117
- end
118
- end
119
- end
120
-
121
- def make_accessor_float(*params)
122
- params.each do |param|
123
- define_singleton_method("#{param}") do
124
- return self.getter("#{param}")
125
- end
126
-
127
- define_singleton_method("#{param}=") do |value|
128
- self.setter("#{param}", value)
129
- end
130
- end
131
- end
132
-
133
- def make_accessor_int(*params)
134
- params.each do |param|
135
- define_singleton_method("#{param}") do
136
- return self.getter("#{param}").to_i
137
- end
138
-
139
- define_singleton_method("#{param}=") do |value|
140
- self.setter("#{param}", value)
141
- end
142
- end
143
- end
144
-
145
- def make_reader_only(*params)
146
- params.each do |param|
147
- cmds = { device: 'device.name', sr: 'device.sr' }
148
- if cmds.key? param
149
- cmd = cmds[param]
150
- else
151
- cmd = param
152
- end
153
-
154
- define_singleton_method("#{param}") do
155
- case param
156
- when :device
157
- return self.getter("#{cmd}", true)
158
- when :sr
159
- return self.getter("#{cmd}").to_i
160
- end
161
- end
162
- end
163
- end
164
-
165
- def make_bus_modes(*params)
166
- params.each do |param|
167
- define_singleton_method("#{param}") do
168
- @remote.clear_polling
169
- return !(self.getter("#{param}")).zero?
170
- end
171
-
172
- define_singleton_method("#{param}=") do |value|
173
- self.setter("#{param}", Boolean(value) ? 1 : 0)
174
- end
175
- end
176
- end
177
- end
178
-
179
- module Vban_Meta_Functions
180
- private
181
-
182
- include Conversions
183
- include Meta_Functions
184
-
185
- def make_reader_int(*params)
186
- params.each do |param|
187
- define_singleton_method("#{param}") do
188
- case param
189
- when :bit
190
- return self.getter("#{param}").to_i == 1 ? 16 : 24
191
- else
192
- return self.getter("#{param}").to_i
193
- end
194
- end
195
- end
196
- end
197
-
198
- def make_accessor_int(*params)
199
- params.each do |param|
200
- define_singleton_method("#{param}") do
201
- case param
202
- when :bit
203
- return self.getter("#{param}").to_i == 1 ? 16 : 24
204
- else
205
- return self.getter("#{param}").to_i
206
- end
207
- end
208
-
209
- opts = {
210
- sr: [
211
- 11_025,
212
- 16_000,
213
- 22_050,
214
- 24_000,
215
- 32_000,
216
- 44_100,
217
- 48_000,
218
- 64_000,
219
- 88_200,
220
- 96_000,
221
- ],
222
- channel: (1..8),
223
- bit: [16, 24],
224
- quality: (0..4),
225
- route: (0..8),
226
- }
227
-
228
- define_singleton_method("#{param}=") do |value|
229
- unless opts[param].member? value
230
- raise OutOfBoundsErrors.new(opts[param])
231
- end
232
- case param
233
- when :bit
234
- self.setter("#{param}", value == 16 ? 1 : 2)
235
- else
236
- self.setter("#{param}", value)
237
- end
238
- end
239
- end
240
- end
241
- end
242
-
243
- module MacroButton_Meta_Functions
244
- private
245
-
246
- include Conversions
247
-
248
- def make_accessor_macrobutton(*params)
249
- params.each do |param|
250
- mode = { state: 1, stateonly: 2, trigger: 3 }
251
-
252
- define_singleton_method("#{param}") do
253
- return !(self.getter(mode[param])).zero?
254
- end
255
-
256
- define_singleton_method("#{param}=") do |value|
257
- self.setter(Boolean(value) ? 1 : 0, mode[param])
258
- end
259
- end
260
- end
261
- end
262
-
263
- module Commands_Meta_Functions
264
- private
265
-
266
- include Conversions
267
- include Meta_Functions
268
- def make_writer_bool(*params)
269
- params.each do |param|
270
- cmds = { showvbanchat: 'DialogShow.VBANCHAT' }
271
- if cmds.key? param
272
- cmd = cmds[param]
273
- else
274
- cmd = param
275
- end
276
-
277
- define_singleton_method("#{param}=") do |value|
278
- self.setter("#{cmd}", Boolean(value) ? 1 : 0)
279
- end
280
- end
281
- end
282
- end
1
+ require_relative "errors"
2
+
3
+ module Conversions
4
+ module_function
5
+
6
+ def Boolean(value)
7
+ case value
8
+ when true, 1
9
+ true
10
+ when false, nil, 0
11
+ false
12
+ else
13
+ raise ArgumentError, "invalid value for Boolean(): \"#{value.inspect}\""
14
+ end
15
+ end
16
+ end
17
+
18
+ module Meta_Functions
19
+ private
20
+
21
+ include Conversions
22
+
23
+ def make_accessor_bool(*params)
24
+ params.each do |param|
25
+ define_singleton_method("#{param}") do
26
+ return !(self.getter("#{param}")).zero?
27
+ end
28
+
29
+ define_singleton_method("#{param}=") do |value|
30
+ self.setter("#{param}", Boolean(value) ? 1 : 0)
31
+ end
32
+ end
33
+ end
34
+
35
+ def make_accessor_int(*params)
36
+ params.each do |param|
37
+ define_singleton_method("#{param}") do
38
+ return self.getter("#{param}").to_i
39
+ end
40
+ define_singleton_method("#{param}=") do |value|
41
+ self.setter("#{param}", value)
42
+ end
43
+ end
44
+ end
45
+
46
+ def make_accessor_float(*params)
47
+ params.each do |param|
48
+ define_singleton_method("#{param}") { return self.getter("#{param}") }
49
+ define_singleton_method("#{param}=") do |value|
50
+ self.setter("#{param}", value)
51
+ end
52
+ end
53
+ end
54
+
55
+ def make_accessor_string(*params)
56
+ params.each do |param|
57
+ define_singleton_method("#{param}") do
58
+ return self.getter("#{param}", true)
59
+ end
60
+ define_singleton_method("#{param}=") do |value|
61
+ self.setter("#{param}", value)
62
+ end
63
+ end
64
+ end
65
+
66
+ def make_reader_only(*params)
67
+ params.each do |param|
68
+ define_singleton_method("#{param}") { return self.getter("#{param}") }
69
+ end
70
+ end
71
+
72
+ def make_writer_only(*params)
73
+ params.each do |param|
74
+ define_singleton_method("#{param}=") do |value = 1|
75
+ self.setter("#{param}", value)
76
+ end
77
+ end
78
+ end
79
+
80
+ def make_channel_props(num_A, num_B)
81
+ (1..(num_A + num_B)).map { |i| i <= num_A ? "A#{i}" : "B#{i - num_A}" }
82
+ end
83
+
84
+ def make_action_prop(*params)
85
+ params.each do |param|
86
+ define_singleton_method("#{param}") { self.setter("#{param}", 1) }
87
+ end
88
+ end
89
+ end
90
+
91
+ module Channel_Meta_Functions
92
+ private
93
+
94
+ include Conversions
95
+ include Meta_Functions
96
+
97
+ def make_accessor_bool(*params)
98
+ params.each do |param|
99
+ cmds = { eq: "EQ.on" }
100
+ if cmds.key? param
101
+ cmd = cmds[param]
102
+ else
103
+ cmd = param
104
+ end
105
+
106
+ define_singleton_method("#{param}") do
107
+ return !(self.getter("#{cmd}")).zero?
108
+ end
109
+
110
+ define_singleton_method("#{param}=") do |value|
111
+ self.setter("#{cmd}", Boolean(value) ? 1 : 0)
112
+ end
113
+ end
114
+ end
115
+
116
+ def make_accessor_float(*params)
117
+ params.each do |param|
118
+ define_singleton_method("#{param}") { return self.getter("#{param}") }
119
+
120
+ define_singleton_method("#{param}=") do |value|
121
+ self.setter("#{param}", value)
122
+ end
123
+ end
124
+ end
125
+
126
+ def make_accessor_int(*params)
127
+ params.each do |param|
128
+ define_singleton_method("#{param}") do
129
+ return self.getter("#{param}").to_i
130
+ end
131
+
132
+ define_singleton_method("#{param}=") do |value|
133
+ self.setter("#{param}", value)
134
+ end
135
+ end
136
+ end
137
+
138
+ def make_reader_only(*params)
139
+ params.each do |param|
140
+ cmds = { device: "device.name", sr: "device.sr" }
141
+ if cmds.key? param
142
+ cmd = cmds[param]
143
+ else
144
+ cmd = param
145
+ end
146
+
147
+ define_singleton_method("#{param}") do
148
+ case param
149
+ when :device
150
+ return self.getter("#{cmd}", true)
151
+ when :sr
152
+ return self.getter("#{cmd}").to_i
153
+ end
154
+ end
155
+ end
156
+ end
157
+
158
+ def make_bus_modes(*params)
159
+ params.each do |param|
160
+ define_singleton_method("#{param}") do
161
+ @remote.clear_polling
162
+ return !(self.getter("#{param}")).zero?
163
+ end
164
+
165
+ define_singleton_method("#{param}=") do |value|
166
+ self.setter("#{param}", Boolean(value) ? 1 : 0)
167
+ end
168
+ end
169
+ end
170
+ end
171
+
172
+ module Vban_Meta_Functions
173
+ private
174
+
175
+ include Conversions
176
+ include Meta_Functions
177
+
178
+ def make_reader_int(*params)
179
+ params.each do |param|
180
+ define_singleton_method("#{param}") do
181
+ case param
182
+ when :bit
183
+ return self.getter("#{param}").to_i == 1 ? 16 : 24
184
+ else
185
+ return self.getter("#{param}").to_i
186
+ end
187
+ end
188
+ end
189
+ end
190
+
191
+ def make_accessor_int(*params)
192
+ params.each do |param|
193
+ define_singleton_method("#{param}") do
194
+ case param
195
+ when :bit
196
+ return self.getter("#{param}").to_i == 1 ? 16 : 24
197
+ else
198
+ return self.getter("#{param}").to_i
199
+ end
200
+ end
201
+
202
+ opts = {
203
+ sr: [
204
+ 11_025,
205
+ 16_000,
206
+ 22_050,
207
+ 24_000,
208
+ 32_000,
209
+ 44_100,
210
+ 48_000,
211
+ 64_000,
212
+ 88_200,
213
+ 96_000
214
+ ],
215
+ channel: (1..8),
216
+ bit: [16, 24],
217
+ quality: (0..4),
218
+ route: (0..8)
219
+ }
220
+
221
+ define_singleton_method("#{param}=") do |value|
222
+ unless opts[param].member? value
223
+ raise OutOfBoundsErrors.new(opts[param])
224
+ end
225
+ case param
226
+ when :bit
227
+ self.setter("#{param}", value == 16 ? 1 : 2)
228
+ else
229
+ self.setter("#{param}", value)
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
235
+
236
+ module MacroButton_Meta_Functions
237
+ private
238
+
239
+ include Conversions
240
+
241
+ def make_accessor_macrobutton(*params)
242
+ params.each do |param|
243
+ mode = { state: 1, stateonly: 2, trigger: 3 }
244
+
245
+ define_singleton_method("#{param}") do
246
+ return !(self.getter(mode[param])).zero?
247
+ end
248
+
249
+ define_singleton_method("#{param}=") do |value|
250
+ self.setter(Boolean(value) ? 1 : 0, mode[param])
251
+ end
252
+ end
253
+ end
254
+ end
255
+
256
+ module Commands_Meta_Functions
257
+ private
258
+
259
+ include Conversions
260
+ include Meta_Functions
261
+ def make_writer_bool(*params)
262
+ params.each do |param|
263
+ cmds = { showvbanchat: "DialogShow.VBANCHAT" }
264
+ if cmds.key? param
265
+ cmd = cmds[param]
266
+ else
267
+ cmd = param
268
+ end
269
+
270
+ define_singleton_method("#{param}=") do |value|
271
+ self.setter("#{cmd}", Boolean(value) ? 1 : 0)
272
+ end
273
+ end
274
+ end
275
+ end
data/lib/mixin.rb CHANGED
@@ -1,11 +1,11 @@
1
- module Fades
2
- def fadeto(target, time)
3
- self.setter('FadeTo', "(#{target}, #{time})")
4
- sleep(@remote.DELAY)
5
- end
6
-
7
- def fadeby(change, time)
8
- self.setter('FadeBy', "(#{change}, #{time})")
9
- sleep(@remote.DELAY)
10
- end
11
- end
1
+ module Fades
2
+ def fadeto(target, time)
3
+ self.setter("FadeTo", "(#{target}, #{time})")
4
+ sleep(@remote.DELAY)
5
+ end
6
+
7
+ def fadeby(change, time)
8
+ self.setter("FadeBy", "(#{change}, #{time})")
9
+ sleep(@remote.DELAY)
10
+ end
11
+ end
data/lib/recorder.rb CHANGED
@@ -1,20 +1,20 @@
1
- require_relative 'iremote'
2
- require_relative 'meta'
3
-
4
- class Recorder < IRemote
5
- '
6
- Concrete Recorder class
7
- '
8
-
9
- def initialize(remote)
10
- super
11
- self.make_action_prop :play, :stop, :record, :ff, :rew
12
-
13
- num_A, num_B = remote.kind.layout[:bus].values
14
- self.make_accessor_bool *make_channel_props(num_A, num_B)
15
- end
16
-
17
- def identifier
18
- :recorder
19
- end
20
- end
1
+ require_relative "iremote"
2
+ require_relative "meta"
3
+
4
+ class Recorder < IRemote
5
+ "
6
+ Concrete Recorder class
7
+ "
8
+
9
+ def initialize(remote)
10
+ super
11
+ self.make_action_prop :play, :stop, :record, :ff, :rew
12
+
13
+ num_A, num_B = remote.kind.layout[:bus].values
14
+ self.make_accessor_bool *make_channel_props(num_A, num_B)
15
+ end
16
+
17
+ def identifier
18
+ :recorder
19
+ end
20
+ end