# TypeProf 0.21.7 # Classes class Object @logger: Logger @name: bot @remote: Voicemeeter::Builder | Voicemeeter::Remote::Remote @index: (Voicemeeter::Builder | Voicemeeter::Remote::Remote)? @j: bot @init: bot @offset: bot end module Voicemeeter module Logging def logger: -> Logger end module Worker include Logging @ratelimit: bot @logger: Logger @producer: Thread private def init_producer: (Thread::Queue que) -> Thread def init_worker: (Thread::Queue que) -> Thread public def running?: -> bool? def init_event_threads: -> Thread def end_event_threads: -> Thread? end module Events module Director @observers: Hash[untyped, untyped] def observers: -> Hash[untyped, untyped] def on: (untyped event, ?nil method) -> Array[untyped] def register: (untyped cbs) -> [untyped] def deregister: (untyped cbs) -> [untyped] def fire: (:ldirty | :mdirty | :midi | :pdirty event) -> nil end class Tracker include Logging attr_reader pdirty: bot attr_reader mdirty: bot attr_reader midi: bot attr_reader ldirty: bot def initialize: (**untyped) -> void def to_s: -> String def info: (?String? msg) -> true private def make_writer_methods: (*:ldirty | :mdirty | :midi | :pdirty params) -> [:pdirty, :mdirty, :midi, :ldirty] public def get: -> [:pdirty, :mdirty, :midi, :ldirty] def any?: -> bool def add: (untyped events) -> [untyped] def remove: (untyped events) -> [untyped] end end module Util module String def snakecase: (String s) -> String def camelcase: (String s) -> String def self.snakecase: (String s) -> String def self.camelcase: (String s) -> String end module Cache @sync: bot def get: (:command | :fx | :option | :patch | :recorder | String name, ?bool is_string) -> Integer? def get_buttonstatus: ((Builder | Remote::Remote)? id, :ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode) -> Integer? end end module MetaFunctions private def make_accessor_bool: (*:ab | :amix | :asiosr | :bmix | :centeronly | :composite | :exclusif | :lfeonly | :loop | :makeup | :mc | :monitor | :monitoronsel | :mono | :multitrack | :mute | :normal | :on | :playonload | :postdelay | :postfadercomposite | :postfx1 | :postfx2 | :postfxinsert | :postreverb | :rearonly | :recbus | :repeat | :sel | :slidermode | :solo | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | String params) -> (Array[:ab | :amix | :asiosr | :bmix | :centeronly | :composite | :exclusif | :lfeonly | :loop | :makeup | :mc | :monitor | :monitoronsel | :mono | :multitrack | :mute | :normal | :on | :playonload | :postdelay | :postfadercomposite | :postfx1 | :postfx2 | :postfxinsert | :postreverb | :rearonly | :recbus | :repeat | :sel | :slidermode | :solo | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | String]) def make_accessor_string: (*:ip | :label | :name params) -> (Array[:ip | :label | :name]) def make_accessor_int: (*:asio | :bit | :bitresolution | :bpsidechain | :channel | :karaoke | :kbps | :ks | :limit | :mme | :quality | :route | :sr | :wdm params) -> (Array[:asio | :bit | :bitresolution | :bpsidechain | :channel | :karaoke | :kbps | :ks | :limit | :mme | :quality | :route | :sr | :wdm]) def make_accessor_float: (*:attack | :audibility | :color_x | :color_y | :damping | :delay | :fx1 | :fx2 | :fx_x | :fx_y | :gain | :gainin | :gainout | :hold | :knee | :pan_x | :pan_y | :ratio | :release | :returndelay | :returnfx1 | :returnfx2 | :returnreverb | :reverb | :threshold params) -> (Array[:attack | :audibility | :color_x | :color_y | :damping | :delay | :fx1 | :fx2 | :fx_x | :fx_y | :gain | :gainin | :gainout | :hold | :knee | :pan_x | :pan_y | :ratio | :release | :returndelay | :returnfx1 | :returnfx2 | :returnreverb | :reverb | :threshold]) def make_reader_string: (*:name params) -> [:name] def make_reader_int: (*:bit | :channel | :sr params) -> (Array[:bit | :channel | :sr]) def make_writer_bool: (*:lock | :showvbanchat params) -> [:showvbanchat, :lock] def make_writer_string: (*:asio | :ks | :mme | :wdm params) -> [:wdm, :ks, :mme, :asio] def make_action_method: (*:ff | :pause | :play | :record | :replay | :restart | :rew | :show | :shutdown | :stop params) -> (Array[:ff | :pause | :play | :record | :replay | :restart | :rew | :show | :shutdown | :stop]) end module IRemote include MetaFunctions include Logging @remote: Builder | Remote::Remote @index: (Builder | Remote::Remote)? @logger: Logger def initialize: (Builder | Remote::Remote remote, ?(Builder | Remote::Remote)? i) -> void def to_s: -> String private def getter: (:ab | :amix | :asio | :asiosr | :attack | :audibility | :bit | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :color_x | :color_y | :composite | :damping | :delay | :exclusif | :fx1 | :fx2 | :fx_x | :fx_y | :gain | :gainin | :gainout | :hold | :ip | :karaoke | :kbps | :knee | :ks | :label | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :name | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :ratio | :rearonly | :release | :repeat | :returndelay | :returnfx1 | :returnfx2 | :returnreverb | :reverb | :route | :sel | :slidermode | :sr | :swift | :threshold | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | String param, ?bool is_string) -> Integer? def setter: (:ab | :amix | :asio | :asiosr | :attack | :audibility | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :color_x | :color_y | :composite | :damping | :delay | :exclusif | :ff | :fx1 | :fx2 | :fx_x | :fx_y | :gain | :gainin | :gainout | :hold | :ip | :karaoke | :kbps | :knee | :ks | :label | :lfeonly | :limit | :lock | :mme | :monitor | :monitoronsel | :mono | :mute | :name | :normal | :on | :pause | :play | :postfadercomposite | :postfxinsert | :quality | :ratio | :rearonly | :record | :release | :repeat | :replay | :restart | :returndelay | :returnfx1 | :returnfx2 | :returnreverb | :reverb | :rew | :route | :sel | :show | :showvbanchat | :shutdown | :slidermode | :sr | :stop | :swift | :threshold | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | String param, Integer? value) -> Integer? def _cmd: (:ab | :amix | :asio | :asiosr | :attack | :audibility | :bit | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :color_x | :color_y | :composite | :damping | :delay | :exclusif | :ff | :fx1 | :fx2 | :fx_x | :fx_y | :gain | :gainin | :gainout | :hold | :ip | :karaoke | :kbps | :knee | :ks | :label | :lfeonly | :limit | :lock | :mme | :monitor | :monitoronsel | :mono | :mute | :name | :normal | :on | :pause | :play | :postfadercomposite | :postfxinsert | :quality | :ratio | :rearonly | :record | :release | :repeat | :replay | :restart | :returndelay | :returnfx1 | :returnfx2 | :returnreverb | :reverb | :rew | :route | :sel | :show | :showvbanchat | :shutdown | :slidermode | :sr | :stop | :swift | :threshold | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | String param) -> (:command | :fx | :option | :patch | :recorder | String) def identifier: -> untyped public def apply: (untyped params) -> untyped end module Mixins module Fades @remote: bot def fadeto: (untyped target, untyped time) -> untyped def fadeby: (untyped change, untyped time) -> untyped end module Return def initialize: (Builder | Remote::Remote remote, untyped i) -> void end module Apps def appgain: (untyped name, untyped gain) -> untyped def appmute: (untyped name, untyped mute) -> untyped end module Outputs def initialize: (*Builder | Remote::Remote args) -> void end module Xy module Pan def initialize: (Builder | Remote::Remote remote, untyped i) -> void end module Color def initialize: (Builder | Remote::Remote remote, untyped i) -> void end module Fx def initialize: (Builder | Remote::Remote remote, untyped i) -> void end end module Fx def initialize: (Builder | Remote::Remote remote, untyped i) -> void end module LevelEnum PREFADER: Integer POSTFADER: Integer POSTMUTE: Integer BUS: Integer end end module Install OS_BITS: Integer extend Logging self.@logger: Logger def get_vmpath: -> untyped def self.get_vmpath: -> untyped end class Base RATELIMIT: Float DELAY: Float prepend Util::Cache include Events::Director include Worker include Logging @sync: false @ratelimit: Float attr_reader kind: untyped attr_reader midi: Midi attr_reader event: Events::Tracker attr_reader delay: Float attr_reader cache: {strip_mode: Integer} def initialize: (untyped kind, **untyped) -> void def to_s: -> String def login: -> true def logout: -> true def pdirty?: -> untyped def mdirty?: -> untyped def ldirty?: -> bool def clear_dirty: -> untyped def run_voicemeeter: (untyped kind_id) -> Integer def type: -> ((:banana | :basic | :potato)?) def version: -> String def get: (:command | :fx | :option | :patch | :recorder | String name, ?bool is_string) -> untyped def set: (:command | :fx | :option | :patch | :recorder | String name, Integer? value) -> Integer? def get_buttonstatus: ((Builder | Remote::Remote)? id, :ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode) -> untyped def set_buttonstatus: ((Builder | Remote::Remote)? id, :ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode, Integer? state) -> Integer? def get_level: (:ab | :amix | :asiosr | :bmix | :centeronly | :composite | :exclusif | :lfeonly | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :rearonly | :repeat | :sel | :slidermode | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | Integer mode, untyped index) -> untyped private def _get_levels: -> [Array[untyped], Array[untyped]] public def get_num_devices: (:in | :out dir) -> untyped def get_device_description: (nil index, :in | :out dir) -> [untyped, untyped, untyped] def get_midi_message: -> untyped def sendtext: (untyped script) -> untyped def apply: (untyped data) -> untyped def apply_config: (untyped name) -> true end module Bus class Base include Mixins::Return include Mixins::Fades include IRemote attr_reader eq: BusEq attr_reader mode: BusModes attr_reader levels: BusLevels def self.make: (Builder | Remote::Remote remote, untyped i) -> (PhysicalBus | VirtualBus) def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String end class PhysicalBus < Base end class VirtualBus < Base end class BusEq include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String end class BusModes include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def get: -> (:amix | :bmix | :centeronly | :composite | :lfeonly | :normal | :rearonly | :repeat | :tvmix | :upmix21 | :upmix41 | :upmix61) end end class BusLevels include IRemote @init: untyped @offset: Integer def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def getter: (:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode) -> (Array[Float | Integer]) def all: -> (Array[Float | Integer]) def isdirty?: -> untyped end class BusDevice include IRemote def initialize: (untyped remote, untyped i) -> void def identifier: -> String end module Button module ButtonEnum STATE: Integer STATEONLY: Integer TRIGGER: Integer def identifier: (:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer val) -> ((:state | :stateonly | :trigger)?) def self.identifier: (:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer val) -> ((:state | :stateonly | :trigger)?) end module ButtonColorMixin @index: bot def identifier: -> String def color: -> untyped def color=: (untyped val) -> untyped end class Base include ButtonColorMixin include IRemote include Logging def getter: (:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode) -> Integer? def setter: (:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :composite | :exclusif | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :postfadercomposite | :postfxinsert | :quality | :rearonly | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Integer mode, Integer? val) -> Integer? def state: -> bool def state=: (untyped value) -> Integer? def stateonly: -> bool def stateonly=: (untyped value) -> Integer? def trigger: -> bool def trigger=: (untyped value) -> Integer? end end module CBindings VM_PATH: untyped extend FFI::Library extend Logging self.@logger: Logger private def self.attach_function: (:VBVMR_GetLevel | :VBVMR_GetMidiMessage | :VBVMR_GetParameterFloat | :VBVMR_GetParameterStringA | :VBVMR_GetVoicemeeterType | :VBVMR_GetVoicemeeterVersion | :VBVMR_Input_GetDeviceDescA | :VBVMR_Input_GetDeviceNumber | :VBVMR_IsParametersDirty | :VBVMR_Login | :VBVMR_Logout | :VBVMR_MacroButton_GetStatus | :VBVMR_MacroButton_IsDirty | :VBVMR_MacroButton_SetStatus | :VBVMR_Output_GetDeviceDescA | :VBVMR_Output_GetDeviceNumber | :VBVMR_RunVoicemeeter | :VBVMR_SetParameterFloat | :VBVMR_SetParameterStringA | :VBVMR_SetParameters c_name, Array[:float | :long | :pointer | :string] args, :long returns) -> nil def call: (:bind_get_level | :bind_get_midi_message | :bind_get_parameter_float | :bind_get_parameter_string_a | :bind_get_voicemeeter_type | :bind_get_voicemeeter_version | :bind_input_get_device_desc_a | :bind_input_get_device_number | :bind_is_parameters_dirty | :bind_login | :bind_logout | :bind_macro_button_get_status | :bind_macro_button_is_dirty | :bind_macro_button_set_status | :bind_output_get_device_desc_a | :bind_output_get_device_number | :bind_run_voicemeeter | :bind_set_parameter_float | :bind_set_parameter_string_a | :bind_set_parameters fn, *(:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :command | :composite | :exclusif | :fx | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :option | :patch | :postfadercomposite | :postfxinsert | :quality | :rearonly | :recorder | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Builder | Float | Integer | Remote::Remote | String)? args, ?ok: Array[Integer], ?exp: ^(untyped) -> untyped?) -> untyped def self.call: (:bind_get_level | :bind_get_midi_message | :bind_get_parameter_float | :bind_get_parameter_string_a | :bind_get_voicemeeter_type | :bind_get_voicemeeter_version | :bind_input_get_device_desc_a | :bind_input_get_device_number | :bind_is_parameters_dirty | :bind_login | :bind_logout | :bind_macro_button_get_status | :bind_macro_button_is_dirty | :bind_macro_button_set_status | :bind_output_get_device_desc_a | :bind_output_get_device_number | :bind_run_voicemeeter | :bind_set_parameter_float | :bind_set_parameter_string_a | :bind_set_parameters fn, *(:ab | :amix | :asio | :asiosr | :bitresolution | :bmix | :bpsidechain | :centeronly | :channel | :command | :composite | :exclusif | :fx | :karaoke | :kbps | :ks | :lfeonly | :limit | :mme | :monitor | :monitoronsel | :mono | :mute | :normal | :on | :option | :patch | :postfadercomposite | :postfxinsert | :quality | :rearonly | :recorder | :repeat | :route | :sel | :slidermode | :sr | :swift | :tvmix | :upmix21 | :upmix41 | :upmix61 | :wdm | Builder | Float | Integer | Remote::Remote | String)? args, ?ok: Array[Integer], ?exp: ^(untyped) -> untyped?) -> untyped end class Command include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> :command def hide: -> Integer? def load: (untyped value) -> Integer def save: (untyped value) -> Integer def reset: -> untyped end module Configs @loaders: untyped self.@loaders: untyped def get: (untyped kind_id) -> untyped def self.get: (untyped kind_id) -> untyped class TOMLConfBuilder def self.run: (untyped kind) -> untyped end class FileReader include Logging @configpaths: Array[Pathname] @filename: Symbol def initialize: (untyped kind) -> void def each: -> (Array[Pathname] | true) end class Loader include Logging @kind: untyped @filereader: FileReader attr_reader configs: Hash[untyped, untyped] def initialize: (untyped kind) -> void def to_s: -> String def run: -> Loader private def register: (untyped identifier, untyped data) -> true? end end class Device def initialize: (Builder | Remote::Remote remote) -> void def to_s: -> String def getter: (**:in | :out) -> {name: untyped, type: String, id: untyped} def ins: -> {name: untyped, type: String, id: untyped} def outs: -> {name: untyped, type: String, id: untyped} def input: (untyped i) -> {name: untyped, type: String, id: untyped} def output: (untyped i) -> {name: untyped, type: String, id: untyped} end class Fx include IRemote attr_reader reverb: FxReverb attr_reader delay: FxDelay def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> :fx end class FxReverb include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> String end class FxDelay include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> String end module Kinds KindMap: untyped KIND_MAPS: untyped ALL: untyped private def phys_in: -> untyped def virt_in: -> untyped def phys_out: -> untyped def virt_out: -> untyped def num_strip: -> untyped def num_bus: -> untyped def num_strip_levels: -> (Complex | Float | Integer | Rational) def num_bus_levels: -> (Complex | Float | Integer | Rational) def to_s: -> untyped public def get: (untyped kind_id) -> untyped def self.get: (untyped kind_id) -> untyped module KindEnum BASIC: Integer BANANA: Integer POTATO: Integer POTATOX64: Integer end end class Midi attr_accessor current: untyped attr_accessor channel: untyped attr_reader cache: Hash[untyped, untyped] def initialize: -> void def get: (untyped key) -> nil end module Option class Base include IRemote attr_reader delay: Array[OptionDelay] attr_reader buffer: OptionBuffer attr_reader mode: OptionMode def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> :option end class OptionDelay include IRemote def initialize: (untyped remote, untyped i) -> void def identifier: -> String def get: -> Integer def set: (untyped val) -> Integer? end class OptionBuffer include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> String end class OptionMode include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> String end end module Patch class Base include IRemote attr_reader asio: Array[PatchAsioIn] attr_reader A2: untyped attr_reader A3: untyped attr_reader A4: untyped attr_reader A5: untyped attr_reader composite: Array[PatchComposite] attr_reader insert: Array[PatchInsert] def initialize: (Builder | Remote::Remote remote) -> void end class PatchAsio include IRemote def identifier: -> :patch end class PatchAsioIn < PatchAsio def get: -> Integer def set: (untyped val) -> Integer? end class PatchAsioOut < PatchAsio @param: :A2 | :A3 | :A4 | :A5 def initialize: (untyped remote, untyped i, :A2 | :A3 | :A4 | :A5 param) -> void def get: -> Integer def set: (untyped val) -> Integer? end class PatchComposite include IRemote def get: -> Integer def set: (untyped val) -> Integer? end class PatchInsert include IRemote def get: -> bool def set: (untyped val) -> Integer? end end module Recorder module FileTypeEnum WAV: Integer AIFF: Integer BWF: Integer MP3: Integer end class Base include Mixins::Outputs include IRemote attr_reader mode: RecorderMode attr_reader armstrip: Array[RecorderArmStrip] attr_reader armbus: Array[RecorderArmBus] def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> :recorder def load: (untyped filepath) -> Integer? def goto: (untyped timestr) -> Integer? def filetype: (untyped val) -> Integer? end class RecorderMode include IRemote def initialize: (Builder | Remote::Remote remote) -> void def identifier: -> String end class RecorderArmChannel include IRemote def initialize: (untyped remote, untyped j) -> void def set: -> Integer? end class RecorderArmStrip < RecorderArmChannel @j: untyped def identifier: -> String end class RecorderArmBus < RecorderArmChannel @j: untyped def identifier: -> String end end module Builder private def steps: (:bus | :button | :command | :device | :option | :strip | :vban step) -> (^-> (Array[Bus::PhysicalBus | Bus::VirtualBus | Button::Base | Strip::PhysicalStrip] | Command | Device | Fx | Option::Base | Patch::Base | Recorder::Base | Vban::Base)?) def director: -> [:strip, :bus, :button, :vban, :command, :device, :option] end module Remote extend Logging self.@logger: Logger def self.new: (untyped kind_id, **untyped) -> ((RemoteBanana | RemoteBasic | RemotePotato)?) class Remote < Base include Builder @producer: Thread @observers: Hash[untyped, untyped] attr_reader strip: untyped attr_reader bus: untyped attr_reader button: untyped attr_reader vban: untyped attr_reader command: untyped attr_reader device: untyped attr_reader option: untyped def initialize: (*untyped noname) -> void def configs: -> untyped def run: -> nil end class RemoteBasic < Remote end class RemoteBanana < Remote attr_reader recorder: untyped attr_reader patch: untyped private def director: -> (Array[:bus | :button | :command | :device | :option | :patch | :recorder | :strip | :vban]) end class RemotePotato < Remote attr_reader recorder: untyped attr_reader patch: untyped attr_reader fx: untyped private def director: -> (Array[:bus | :button | :command | :device | :fx | :option | :patch | :recorder | :strip | :vban]) end class RequestRemote def self.for: (untyped kind, **untyped) -> ((RemoteBanana | RemoteBasic | RemotePotato)?) end end module Strip class Base include Mixins::Fades include Mixins::Outputs include IRemote attr_reader gainlayer: Array[GainLayer] attr_reader levels: StripLevels def self.make: (Builder | Remote::Remote remote, untyped i) -> (PhysicalStrip | VirtualStrip) def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String end class PhysicalStrip < Base include Mixins::Fx include Mixins::Xy::Fx include Mixins::Xy::Color include Mixins::Xy::Pan attr_reader comp: StripComp attr_reader gate: StripGate attr_reader denoiser: StripDenoiser attr_reader eq: StripEq attr_reader device: StripDevice def initialize: (Builder | Remote::Remote remote, untyped i) -> void end class StripComp include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def knob: -> Integer? def knob=: (untyped val) -> Integer? end class StripGate include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def knob: -> Integer? def knob=: (untyped val) -> Integer? end class StripDenoiser include IRemote def identifier: -> String def knob: -> Integer? def knob=: (untyped val) -> Integer? end class StripEq include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String end class StripDevice include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String end class VirtualStrip < Base include Mixins::Apps include Mixins::Xy::Pan def initialize: (Builder | Remote::Remote remote, untyped i) -> void def bass: -> untyped def bass=: (untyped val) -> Integer? def mid: -> untyped def mid=: (untyped val) -> Integer? def treble: -> untyped def treble=: (untyped val) -> Integer? end class GainLayer include IRemote @j: untyped def initialize: (Builder | Remote::Remote remote, untyped i, untyped j) -> void def identifier: -> String def gain: -> Integer? def gain=: (untyped value) -> Integer? end class StripLevels include IRemote @init: untyped @offset: Integer def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def get_level: (Integer mode) -> (Array[Float | Integer]) def prefader: -> (Array[Float | Integer]) def postfader: -> (Array[Float | Integer]) def postmute: -> (Array[Float | Integer]) def isdirty?: -> untyped end end module Vban class VbanStream include IRemote def initialize: (Builder | Remote::Remote remote, untyped i) -> void def identifier: -> String def direction: -> bot end class VbanInstream < VbanStream def initialize: (Builder | Remote::Remote remote, untyped i) -> void def direction: -> :in end class VbanAudioInstream < VbanInstream end class VbanMidiInstream < VbanInstream end class VbanTextInstream < VbanInstream end class VbanOutstream < VbanStream def initialize: (Builder | Remote::Remote remote, untyped i) -> void def direction: -> :out end class VbanAudioOutstream < VbanOutstream end class VbanMidiOutstream < VbanOutstream end class RequestVbanStream def self.for: (Builder | Remote::Remote remote, untyped i, :in | :out dir) -> ((VbanAudioInstream | VbanAudioOutstream | VbanMidiInstream | VbanMidiOutstream | VbanTextInstream)?) end class Base attr_reader instream: Array[(VbanAudioInstream | VbanAudioOutstream | VbanMidiInstream | VbanMidiOutstream | VbanTextInstream)?] attr_reader outstream: Array[(VbanAudioInstream | VbanAudioOutstream | VbanMidiInstream | VbanMidiOutstream | VbanTextInstream)?] def initialize: (Builder | Remote::Remote remote) -> void def enable: -> Integer? def disable: -> Integer? end end module VERSION def major: -> Integer def self.major: -> Integer def minor: -> Integer def self.minor: -> Integer def patch: -> Integer def self.patch: -> Integer def to_a: -> [Integer, Integer, Integer] def self.to_a: -> [Integer, Integer, Integer] def to_s: -> String def self.to_s: -> String end module Errors class VMError < StandardError end class VMInstallError < VMError end class VMCAPIError < VMError attr_reader fn_name: String attr_reader code: untyped def initialize: (String fn_name, untyped code) -> void end end end