voicemeeter_api_ruby 2.0.3 → 4.0.0

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/routines.rb DELETED
@@ -1,115 +0,0 @@
1
- require_relative 'base'
2
- require_relative 'runvm'
3
- require_relative 'strip'
4
- require_relative 'bus'
5
- require_relative 'button'
6
- require_relative 'vban'
7
- require_relative 'command'
8
- require_relative 'recorder'
9
-
10
-
11
- class Routines
12
- """
13
- define basic behaviours of API functions
14
- mixin modules
15
- """
16
- include Define_Version
17
- include RunVM
18
-
19
- attr_accessor :properties, :layout, :strip, :bus, :button, :vban, :command,
20
- :recorder
21
-
22
- attr_reader :retval, :cache, :wait
23
-
24
- SIZE = 1
25
- BUFF = 512
26
-
27
- def initialize(kind)
28
- define_version(kind)
29
-
30
- self.cache = Hash.new
31
- @wait = true
32
- end
33
-
34
- def login
35
- run_as("login")
36
- clear_polling
37
-
38
- rescue CAPIErrors => error
39
- case
40
- when error.value == 1
41
- run_voicemeeter
42
- when error.value < 0
43
- raise
44
- end
45
- end
46
-
47
- def logout
48
- clear_polling
49
- run_as("logout")
50
- end
51
-
52
- def get_parameter(name, is_string=false)
53
- self.polling("get_parameter", name) do
54
- if is_string
55
- c_get = FFI::MemoryPointer.new(:string, BUFF, true)
56
- run_as("get_parameter_string", name, c_get)
57
- c_get.read_string
58
- else
59
- c_get = FFI::MemoryPointer.new(:float, SIZE)
60
- run_as("get_parameter_float", name, c_get)
61
- c_get.read_float.round(1)
62
- end
63
- end
64
- end
65
-
66
- def set_parameter(name, value)
67
- if value.is_a? String
68
- run_as("set_parameter_string", name, value)
69
- else
70
- run_as("set_parameter_float", name, value.to_f)
71
- end
72
- self.cache.store(name, [value, true])
73
- end
74
-
75
- def macro_getstatus(id, mode)
76
- self.polling("macro_getstatus", name=nil, id, mode) do
77
- c_get = FFI::MemoryPointer.new(:float, SIZE)
78
- run_as("macro_getstatus", id, c_get, mode)
79
- c_get.read_float.to_i
80
- end
81
- end
82
-
83
- def macro_setstatus(id, state, mode)
84
- run_as("macro_setstatus", id, state, mode)
85
- self.cache.store("mb_#{id}_#{mode}", [state, true])
86
- end
87
-
88
- def set_parameter_multi(param_hash)
89
- @wait = false
90
- param_hash.each do |(key,val)|
91
- prop, m2, m3, *rem = key.to_s.split('_')
92
- if m2.to_i.to_s == m2 then m2 = m2.to_i
93
- elsif m3.to_i.to_s == m3 then m3 = m3.to_i end
94
-
95
- case prop
96
- when "strip"
97
- self.strip[m2].set_multi(val)
98
- when "bus"
99
- self.bus[m2].set_multi(val)
100
- when "button", "mb"
101
- self.button[m2].set_multi(val)
102
- when "vban"
103
- if ["instream", "in"].include? m2
104
- self.vban.instream[m3].set_multi(val)
105
- elsif ["outstream", "out"].include? m2
106
- self.vban.outstream[m3].set_multi(val)
107
- end
108
- end
109
- end
110
- @wait = true
111
- end
112
- alias_method "set_multi", :set_parameter_multi
113
- alias_method "set", :set_parameter
114
- alias_method "get", :get_parameter
115
- end