voicemeeter-rb/lib/voicemeeter/iremote.rb
onyx-and-iris bd011a9497 the common interface
sits  between higher and base classes
2023-07-07 02:35:34 +01:00

38 lines
750 B
Ruby

require_relative "errors"
module Voicemeeter
class IRemote
"
Common interface between base class and higher classes.
"
def initialize(remote, i = nil)
@remote = remote
@index = i
end
def to_s
"#{self.class.name.split("::").last}#{@index}#{@remote.kind}"
end
def getter(param, is_string = false)
@remote.get(_cmd(param), is_string)
end
def setter(param, value)
@remote.set(_cmd(param), value)
end
def _cmd(param)
param.empty? ? "#{self.identifier}" : "#{self.identifier}.#{param}"
end
def identifier
raise "Called abstract method: identifier"
end
def apply(params)
params.each { |key, val| self.send(key, val) }
end
end
end