voicemeeter_api_ruby 2.0.1 → 2.0.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.
- checksums.yaml +4 -4
- data/lib/base.rb +8 -5
- data/lib/command.rb +2 -2
- data/lib/routines.rb +13 -3
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bef8ab40208452163296fb8d4c40654a2a28b98e897d3fc27fc848b78f8ba11
|
4
|
+
data.tar.gz: 5362e5f27306ba5c311e5dd934ca01dd153747528727e4437e605e5c32063949
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 620076c47a8cad5c8698949369a92d9dede2b498b921f1b4ad3e55fa08cbed66f20190356fa818124521e1f1580348938a241e8bc77a12c0016da3f84a105170
|
7
|
+
data.tar.gz: 150032337a426731a12f0e012cc9bc7a24572bfe0caaceaee3f89e8fed77a42129e16d5883066f776003c307258fc01c4c925259190e82a6911339a842b81f3e
|
data/lib/base.rb
CHANGED
@@ -48,6 +48,10 @@ module Base
|
|
48
48
|
DELAY = 0.001
|
49
49
|
MAX_POLLS = 8
|
50
50
|
|
51
|
+
def cache=(value)
|
52
|
+
@cache = value
|
53
|
+
end
|
54
|
+
|
51
55
|
def pdirty
|
52
56
|
return vmr_pdirty&.nonzero?
|
53
57
|
end
|
@@ -63,10 +67,11 @@ module Base
|
|
63
67
|
|
64
68
|
def polling(func)
|
65
69
|
MAX_POLLS.times do
|
66
|
-
|
67
|
-
|
70
|
+
return true if func.include?('param') && self.pdirty
|
71
|
+
return true if func.include?('macro') && self.mdirty
|
68
72
|
sleep(DELAY)
|
69
73
|
end
|
74
|
+
false
|
70
75
|
end
|
71
76
|
|
72
77
|
def retval=(values)
|
@@ -79,10 +84,8 @@ module Base
|
|
79
84
|
|
80
85
|
def run_as(func, *args)
|
81
86
|
val = send('vmr_' + func, *args)
|
82
|
-
sleep(DELAY * 20) if func.include? 'set_param'
|
83
|
-
sleep(DELAY * 50) if func.include? 'macro_set'
|
84
|
-
|
85
87
|
self.retval = [val, func]
|
88
|
+
sleep(DELAY)
|
86
89
|
end
|
87
90
|
end
|
88
91
|
|
data/lib/command.rb
CHANGED
@@ -28,13 +28,13 @@ class Command < ICommand
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def load(value)
|
31
|
-
raise
|
31
|
+
raise VMRemoteErrors.new("Expected a string") unless value.is_a? String
|
32
32
|
self.setter("load", value)
|
33
33
|
sleep(0.2)
|
34
34
|
end
|
35
35
|
|
36
36
|
def save(value)
|
37
|
-
raise
|
37
|
+
raise VMRemoteErrors.new("Expected a string") unless value.is_a? String
|
38
38
|
self.setter("save", value)
|
39
39
|
sleep(0.2)
|
40
40
|
end
|
data/lib/routines.rb
CHANGED
@@ -19,7 +19,7 @@ class Routines
|
|
19
19
|
attr_accessor :properties, :layout, :strip, :bus, :button, :vban, :command,
|
20
20
|
:recorder
|
21
21
|
|
22
|
-
attr_reader :retval
|
22
|
+
attr_reader :retval, :cache
|
23
23
|
|
24
24
|
SIZE = 1
|
25
25
|
BUFF = 512
|
@@ -33,6 +33,8 @@ class Routines
|
|
33
33
|
self.vban = Vban.make(self, @layout[:vban])
|
34
34
|
self.command = Command.new(self)
|
35
35
|
self.recorder = Recorder.new(self, @layout[:bus])
|
36
|
+
|
37
|
+
self.cache = Hash.new
|
36
38
|
end
|
37
39
|
|
38
40
|
def login
|
@@ -54,7 +56,10 @@ class Routines
|
|
54
56
|
end
|
55
57
|
|
56
58
|
def get_parameter(name, is_string=false)
|
57
|
-
self.polling(__method__.to_s)
|
59
|
+
if self.polling(__method__.to_s)
|
60
|
+
val = @cache.delete(name)
|
61
|
+
return val
|
62
|
+
end
|
58
63
|
|
59
64
|
if is_string
|
60
65
|
c_get = FFI::MemoryPointer.new(:string, BUFF, true)
|
@@ -73,10 +78,14 @@ class Routines
|
|
73
78
|
else
|
74
79
|
run_as("set_parameter_float", name, value.to_f)
|
75
80
|
end
|
81
|
+
self.cache.store(name, value)
|
76
82
|
end
|
77
83
|
|
78
84
|
def macro_getstatus(id, mode)
|
79
|
-
self.polling(__method__.to_s)
|
85
|
+
if self.polling(__method__.to_s)
|
86
|
+
val = @cache.delete("mb_#{id}_#{mode}")
|
87
|
+
return val
|
88
|
+
end
|
80
89
|
|
81
90
|
c_get = FFI::MemoryPointer.new(:float, SIZE)
|
82
91
|
run_as("macro_getstatus", id, c_get, mode)
|
@@ -85,6 +94,7 @@ class Routines
|
|
85
94
|
|
86
95
|
def macro_setstatus(id, state, mode)
|
87
96
|
run_as("macro_setstatus", id, state, mode)
|
97
|
+
self.cache.store("mb_#{id}_#{mode}", state)
|
88
98
|
end
|
89
99
|
|
90
100
|
def set_parameter_multi(param_hash)
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voicemeeter_api_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- onyx_online
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|