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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 515a413337e0ed38abaec6efcf052c0d37c633e93e9e16fd7e0e1e68c464700d
4
- data.tar.gz: 763cff428d3a628d9ad4b3c5f5ad208ec4a7dd0d20b639b02170c1130a1986df
3
+ metadata.gz: 5bef8ab40208452163296fb8d4c40654a2a28b98e897d3fc27fc848b78f8ba11
4
+ data.tar.gz: 5362e5f27306ba5c311e5dd934ca01dd153747528727e4437e605e5c32063949
5
5
  SHA512:
6
- metadata.gz: 7dee43deffbc69e396fe4e5ca5af6eca3553f1f5d8d8f11319b4f82a58216080c9d18f8beb55f0718f563c2dc97af305e4316420bc3d9eb1bb794d182956393a
7
- data.tar.gz: 58a8c1abaee27e374b3d97c20e7bbc44bde4ae3da22cdd44b5218adc39a47c1b299e6bf4cd4c2949bfab06e9a38683a296c44883e421595f388eb27ad6cb3626
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
- break if func.include?('param') && !self.pdirty
67
- break if func.include?('macro') && !self.mdirty
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 VMRemoteErrros.new("Expected a string") unless value.is_a? String
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 VMRemoteErrros.new("Expected a string") unless value.is_a? String
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
@@ -1,3 +1,3 @@
1
1
  module Voicemeeter_API_Ruby
2
- VERSION = '2.0.1'
2
+ VERSION = '2.0.2'
3
3
  end
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.1
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-17 00:00:00.000000000 Z
11
+ date: 2022-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi