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