voicemeeter_api_ruby 2.0.2 → 3.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,128 +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
23
-
24
- SIZE = 1
25
- BUFF = 512
26
-
27
- def initialize(kind)
28
- define_version(kind)
29
-
30
- self.strip = Strip.make(self, @layout[:strip], @layout[:bus])
31
- self.bus = Bus.make(self, @layout[:bus])
32
- self.button = MacroButton.make(self, @layout[:mb])
33
- self.vban = Vban.make(self, @layout[:vban])
34
- self.command = Command.new(self)
35
- self.recorder = Recorder.new(self, @layout[:bus])
36
-
37
- self.cache = Hash.new
38
- end
39
-
40
- def login
41
- run_as("login")
42
- clear_polling
43
-
44
- rescue CAPIErrors => error
45
- case
46
- when error.value == 1
47
- run_voicemeeter
48
- when error.value < 0
49
- raise
50
- end
51
- end
52
-
53
- def logout
54
- clear_polling
55
- run_as("logout")
56
- end
57
-
58
- def get_parameter(name, is_string=false)
59
- if self.polling(__method__.to_s)
60
- val = @cache.delete(name)
61
- return val
62
- end
63
-
64
- if is_string
65
- c_get = FFI::MemoryPointer.new(:string, BUFF, true)
66
- run_as("get_parameter_string", name, c_get)
67
- c_get.read_string
68
- else
69
- c_get = FFI::MemoryPointer.new(:float, SIZE)
70
- run_as("get_parameter_float", name, c_get)
71
- c_get.read_float.round(1)
72
- end
73
- end
74
-
75
- def set_parameter(name, value)
76
- if value.is_a? String
77
- run_as("set_parameter_string", name, value)
78
- else
79
- run_as("set_parameter_float", name, value.to_f)
80
- end
81
- self.cache.store(name, value)
82
- end
83
-
84
- def macro_getstatus(id, mode)
85
- if self.polling(__method__.to_s)
86
- val = @cache.delete("mb_#{id}_#{mode}")
87
- return val
88
- end
89
-
90
- c_get = FFI::MemoryPointer.new(:float, SIZE)
91
- run_as("macro_getstatus", id, c_get, mode)
92
- c_get.read_float.to_i
93
- end
94
-
95
- def macro_setstatus(id, state, mode)
96
- run_as("macro_setstatus", id, state, mode)
97
- self.cache.store("mb_#{id}_#{mode}", state)
98
- end
99
-
100
- def set_parameter_multi(param_hash)
101
- param_hash.each do |(key,val)|
102
- prop, m2, m3, *remaining = key.to_s.split('_')
103
- if m2.to_i.to_s == m2 then m2 = m2.to_i end
104
- if m3.to_i.to_s == m3 then m3 = m3.to_i end
105
-
106
- param_hash[key].each do |(k,v)|
107
- param = k
108
- value = v
109
-
110
- case prop
111
- when "strip"
112
- self.strip[m2].send("#{param}=", value)
113
- when "bus"
114
- self.bus[m2].send("#{param}=", value)
115
- when "button"
116
- self.button[m2].send("#{param}=", value)
117
- when "vban"
118
- if m2 == "instream"
119
- self.vban.instream[m3].send("#{param}=", value)
120
- else
121
- self.vban.outstream[m3].send("#{param}=", value)
122
- end
123
- end
124
- end
125
- end
126
- end
127
- alias_method "set_multi", :set_parameter_multi
128
- end