From f7f8ed64eede850f3091d98662b37d1a5b2d81cf Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Sun, 9 Jul 2023 19:44:27 +0100 Subject: [PATCH] Fades, Return and BusModes added to Bus class --- lib/voicemeeter/bus.rb | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/lib/voicemeeter/bus.rb b/lib/voicemeeter/bus.rb index 29ed36c..7b101b9 100644 --- a/lib/voicemeeter/bus.rb +++ b/lib/voicemeeter/bus.rb @@ -1,9 +1,15 @@ require_relative "iremote" require_relative "kinds" +require_relative "mixins" module Voicemeeter module Bus class Bus < IRemote + include Mixins::Fades + include Mixins::Return + + attr_reader :eq, :mode + def self.make(remote, i) " Factory function for Bus classes. @@ -13,6 +19,20 @@ module Voicemeeter p_out, v_out = remote.kind.outs i < p_out ? PhysicalBus.new(remote, i) : VirtualBus.new(remote, i) end + + def initialize(remote, i) + super + make_accessor_bool :mute, :mono, :sel, :monitor + make_accessor_float :gain + make_accessor_string :label + + @eq = BusEq.new(remote, i) + @mode = BusModes.new(remote, i) + end + + def identifier + "bus[#{@index}]" + end end class PhysicalBus < Bus @@ -20,5 +40,38 @@ module Voicemeeter class VirtualBus < Bus end + + class BusEq < IRemote + def initialize(remote, i) + super + make_accessor_bool :on, :ab + end + + def identifier + "bus[#{@index}].eq" + end + end + + class BusModes < IRemote + def initialize(remote, i) + super + make_accessor_bool :normal, + :amix, + :bmix, + :repeat, + :composite, + :tvmix, + :upmix21, + :upmix41, + :upmix61, + :centeronly, + :lfeonly, + :rearonly + end + + def identifier + "bus[#{@index}].mode" + end + end end end