callbacks now public method

register,deregister handle single callbacks
or arrays of callbacks
This commit is contained in:
onyx-and-iris 2023-08-03 15:07:18 +01:00
parent 2dab83ec31
commit 1ba1247b7f
2 changed files with 6 additions and 4 deletions

View File

@ -3,7 +3,7 @@ require_relative "../../lib/voicemeeter"
class Main class Main
def initialize(vm) def initialize(vm)
@vm = vm @vm = vm
@vm.register(method(:on_pdirty), method(:on_mdirty), method(:on_midi), method(:on_ldirty)) @vm.register([method(:on_pdirty), method(:on_mdirty), method(:on_midi), method(:on_ldirty)])
end end
def run def run

View File

@ -3,15 +3,17 @@ require_relative "logger"
module Voicemeeter module Voicemeeter
module Events module Events
module Callback module Callback
private def callbacks def callbacks
@callbacks ||= [] @callbacks ||= []
end end
def register(*cbs) def register(cbs)
cbs = [cbs] unless cbs.respond_to? :each
cbs.each { |cb| callbacks << cb unless callbacks.include? cb } cbs.each { |cb| callbacks << cb unless callbacks.include? cb }
end end
def deregister(*cbs) def deregister(cbs)
cbs = [cbs] unless cbs.respond_to? :each
callbacks.reject! { |cb| cbs.include? cb } callbacks.reject! { |cb| cbs.include? cb }
end end