mirror of
https://github.com/onyx-and-iris/voicemeeter-rb.git
synced 2024-11-22 18:00:48 +00:00
LevelEnum added to Mixins
BusLevels, BusDevice classes added
This commit is contained in:
parent
07e06bf103
commit
d8baaf4758
@ -8,7 +8,7 @@ module Voicemeeter
|
|||||||
include Mixins::Fades
|
include Mixins::Fades
|
||||||
include Mixins::Return
|
include Mixins::Return
|
||||||
|
|
||||||
attr_reader :eq, :mode
|
attr_reader :eq, :mode, :levels
|
||||||
|
|
||||||
def self.make(remote, i)
|
def self.make(remote, i)
|
||||||
"
|
"
|
||||||
@ -16,7 +16,7 @@ module Voicemeeter
|
|||||||
|
|
||||||
Returns a PhysicalBus or VirtualBus class
|
Returns a PhysicalBus or VirtualBus class
|
||||||
"
|
"
|
||||||
p_out, v_out = remote.kind.outs
|
p_out = remote.kind.phys_out
|
||||||
i < p_out ? PhysicalBus.new(remote, i) : VirtualBus.new(remote, i)
|
i < p_out ? PhysicalBus.new(remote, i) : VirtualBus.new(remote, i)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -28,6 +28,7 @@ module Voicemeeter
|
|||||||
|
|
||||||
@eq = BusEq.new(remote, i)
|
@eq = BusEq.new(remote, i)
|
||||||
@mode = BusModes.new(remote, i)
|
@mode = BusModes.new(remote, i)
|
||||||
|
@levels = BusLevels.new(remote, i)
|
||||||
end
|
end
|
||||||
|
|
||||||
def identifier
|
def identifier
|
||||||
@ -74,4 +75,43 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class BusLevels < IRemote
|
||||||
|
def initialize(remote, i)
|
||||||
|
super
|
||||||
|
@init = i * 8
|
||||||
|
@offset = 8
|
||||||
|
end
|
||||||
|
|
||||||
|
def identifier
|
||||||
|
"bus[#{@index}]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def getter(mode)
|
||||||
|
if @remote.running && @remote.event.ldirty
|
||||||
|
vals = @remote.cache[:bus_level][@init, @offset]
|
||||||
|
else
|
||||||
|
vals = (@init...@init + @offset).map { |i| @remote.get_level(mode, i) }
|
||||||
|
end
|
||||||
|
vals.map { |x| x > 0 ? (20 * Math.log(x, 10)).round(1) : -200.0 }
|
||||||
|
end
|
||||||
|
|
||||||
|
def all
|
||||||
|
getter(Mixins::LevelEnum::BUS)
|
||||||
|
end
|
||||||
|
|
||||||
|
def isdirty? = @remote.cache[:bus_comp][@init, @offset].any?
|
||||||
|
end
|
||||||
|
|
||||||
|
class BusDevice < IRemote
|
||||||
|
def initialize(remote, i)
|
||||||
|
super
|
||||||
|
make_reader_only :name, :sr
|
||||||
|
make_writer_only :wdm, :ks, :mme, :asio
|
||||||
|
end
|
||||||
|
|
||||||
|
def identifier
|
||||||
|
"bus[#{@index}].device"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -13,8 +13,6 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
|
|
||||||
module Return
|
module Return
|
||||||
include Meta_Functions
|
|
||||||
|
|
||||||
def initialize(remote, i)
|
def initialize(remote, i)
|
||||||
super
|
super
|
||||||
make_accessor_float :returnreverb, :returndelay, :returnfx1, :returnfx2
|
make_accessor_float :returnreverb, :returndelay, :returnfx1, :returnfx2
|
||||||
@ -45,8 +43,6 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
|
|
||||||
module Xy
|
module Xy
|
||||||
include Meta_Functions
|
|
||||||
|
|
||||||
module Pan
|
module Pan
|
||||||
def initialize(remote, i)
|
def initialize(remote, i)
|
||||||
super
|
super
|
||||||
@ -70,13 +66,18 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
|
|
||||||
module Fx
|
module Fx
|
||||||
include Meta_Functions
|
|
||||||
|
|
||||||
def initialize(remote, i)
|
def initialize(remote, i)
|
||||||
super
|
super
|
||||||
make_accessor_float :reverb, :delay, :fx1, :fx2
|
make_accessor_float :reverb, :delay, :fx1, :fx2
|
||||||
make_accessor_bool :postreverb, :postdelay, :postfx1, :postfx2
|
make_accessor_bool :postreverb, :postdelay, :postfx1, :postfx2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module LevelEnum
|
||||||
|
PREFADER = 0
|
||||||
|
POSTFADER = 1
|
||||||
|
POSTMUTE = 2
|
||||||
|
BUS = 3
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -198,13 +198,6 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module StripLevelEnum
|
|
||||||
PREFADER = 0
|
|
||||||
POSTFADER = 1
|
|
||||||
POSTMUTE = 2
|
|
||||||
BUS = 3
|
|
||||||
end
|
|
||||||
|
|
||||||
class StripLevels < IRemote
|
class StripLevels < IRemote
|
||||||
attr_reader :prefader, :postfader, :postmute
|
attr_reader :prefader, :postfader, :postmute
|
||||||
|
|
||||||
@ -225,7 +218,7 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get_level(mode)
|
def get_level(mode)
|
||||||
@remote.strip_mode = mode
|
@remote.cache[:strip_mode] = mode
|
||||||
if @remote.running && @remote.event.ldirty
|
if @remote.running && @remote.event.ldirty
|
||||||
vals = @remote.cache[:strip_level][@init, @offset]
|
vals = @remote.cache[:strip_level][@init, @offset]
|
||||||
else
|
else
|
||||||
@ -236,18 +229,18 @@ module Voicemeeter
|
|||||||
end
|
end
|
||||||
|
|
||||||
def prefader
|
def prefader
|
||||||
get_level(StripLevelEnum::PREFADER)
|
get_level(Mixins::LevelEnum::PREFADER)
|
||||||
end
|
end
|
||||||
|
|
||||||
def postfader
|
def postfader
|
||||||
get_level(StripLevelEnum::POSTFADER)
|
get_level(Mixins::LevelEnum::POSTFADER)
|
||||||
end
|
end
|
||||||
|
|
||||||
def postmute
|
def postmute
|
||||||
get_level(StripLevelEnum::POSTMUTE)
|
get_level(Mixins::LevelEnum::POSTMUTE)
|
||||||
end
|
end
|
||||||
|
|
||||||
def isdirty? = @remote._strip_comp[@init, @offset].any?
|
def isdirty? = @remote.cache[:strip_comp][@init, @offset].any?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user