From 126e6172cb532244debc4c9acec1f5a2c7774dcd Mon Sep 17 00:00:00 2001 From: pblivingston <71585805+pblivingston@users.noreply.github.com> Date: Tue, 9 Dec 2025 11:37:23 -0500 Subject: [PATCH] implement io classes prelim pester tests for potato pass --- lib/Voicemeeter.psm1 | 3 +-- lib/bus.ps1 | 38 +++++----------------------- lib/device.ps1 | 52 -------------------------------------- lib/eq.ps1 | 60 -------------------------------------------- lib/strip.ps1 | 38 +++++----------------------- 5 files changed, 13 insertions(+), 178 deletions(-) delete mode 100644 lib/device.ps1 delete mode 100644 lib/eq.ps1 diff --git a/lib/Voicemeeter.psm1 b/lib/Voicemeeter.psm1 index 271a8e5..d68e388 100644 --- a/lib/Voicemeeter.psm1 +++ b/lib/Voicemeeter.psm1 @@ -4,8 +4,7 @@ . $PSScriptRoot\kinds.ps1 . $PSScriptRoot\iremote.ps1 . $PSScriptRoot\arraymember.ps1 -. $PSScriptRoot\device.ps1 -. $PSScriptRoot\eq.ps1 +. $PSScriptRoot\io.ps1 . $PSScriptRoot\strip.ps1 . $PSScriptRoot\bus.ps1 . $PSScriptRoot\macrobuttons.ps1 diff --git a/lib/bus.ps1 b/lib/bus.ps1 index 3145574..85ece7d 100644 --- a/lib/bus.ps1 +++ b/lib/bus.ps1 @@ -1,13 +1,12 @@ -class Bus : IRemote { +class Bus : IOControl { [Object]$mode [Object]$eq [Object]$levels Bus ([int]$index, [Object]$remote) : base ($index, $remote) { - AddBoolMembers -PARAMS @('mute', 'sel', 'monitor') + AddBoolMembers -PARAMS @('sel', 'monitor') AddIntMembers -PARAMS @('mono') - AddStringMembers -PARAMS @('label') - AddFloatMembers -PARAMS @('gain', 'returnreverb', 'returndelay', 'returnfx1', 'returnfx2') + AddFloatMembers -PARAMS @('returnreverb', 'returndelay', 'returnfx1', 'returnfx2') $this.mode = [BusMode]::new($index, $remote) $this.eq = [BusEq]::new($index, $remote) @@ -17,17 +16,9 @@ class Bus : IRemote { [string] identifier () { return 'Bus[' + $this.index + ']' } - - [void] FadeTo ([single]$target, [int]$time) { - $this.Setter('FadeTo', "($target, $time)") - } - - [void] FadeBy ([single]$target, [int]$time) { - $this.Setter('FadeBy', "($target, $time)") - } } -class BusLevels : IRemote { +class BusLevels : IOLevels { [int]$init [int]$offset @@ -36,23 +27,6 @@ class BusLevels : IRemote { $this.offset = 8 } - hidden [single] Convert([single]$val) { - if ($val -gt 0) { - return [math]::Round(20 * [math]::Log10($val), 1) - } - else { - return - 200.0 - } - } - - [System.Collections.ArrayList] Getter([int]$mode) { - [System.Collections.ArrayList]$vals = @() - $this.init..$($this.init + $this.offset - 1) | ForEach-Object { - $vals.Add($this.Convert($(Get_Level -MODE $mode -INDEX $_))) - } - return $vals - } - [System.Collections.ArrayList] All() { return $this.Getter(3) } @@ -93,7 +67,7 @@ class BusMode : IRemote { } } -class BusEq : Eq { +class BusEq : IOEq { BusEq ([int]$index, [Object]$remote) : base ($index, $remote, 'Bus') { } @@ -122,7 +96,7 @@ class VirtualBus : Bus { } } -class BusDevice : Device { +class BusDevice : IODevice { BusDevice ([int]$index, [Object]$remote) : base ($index, $remote) { if ($this.index -eq 0) { $this.AddASIO() diff --git a/lib/device.ps1 b/lib/device.ps1 deleted file mode 100644 index d6c3718..0000000 --- a/lib/device.ps1 +++ /dev/null @@ -1,52 +0,0 @@ -class Device : IRemote { - Device ([int]$index, [Object]$remote) : base ($index, $remote) { - } - - hidden $_name = $($this | Add-Member ScriptProperty 'name' ` - { - $this.Getter_String('name') - } ` - { - return Write-Warning ("ERROR: $($this.identifier()).name is read only") - } - ) - - hidden $_sr = $($this | Add-Member ScriptProperty 'sr' ` - { - [int]$this.Getter('sr') - } ` - { - return Write-Warning ("ERROR: $($this.identifier()).sr is read only") - } - ) - - hidden $_wdm = $($this | Add-Member ScriptProperty 'wdm' ` - { - return Write-Warning ("ERROR: $($this.identifier()).wdm is write only") - } ` - { - param([string]$arg) - return $this.Setter('wdm', $arg) - } - ) - - hidden $_ks = $($this | Add-Member ScriptProperty 'ks' ` - { - return Write-Warning ("ERROR: $($this.identifier()).ks is write only") - } ` - { - param([string]$arg) - return $this.Setter('ks', $arg) - } - ) - - hidden $_mme = $($this | Add-Member ScriptProperty 'mme' ` - { - return Write-Warning ("ERROR: $($this.identifier()).mme is write only") - } ` - { - param([string]$arg) - return $this.Setter('mme', $arg) - } - ) -} \ No newline at end of file diff --git a/lib/eq.ps1 b/lib/eq.ps1 deleted file mode 100644 index 048ebe3..0000000 --- a/lib/eq.ps1 +++ /dev/null @@ -1,60 +0,0 @@ -class Eq : IRemote { - [System.Collections.ArrayList]$channel - [string]$kindOfEq - - Eq ([int]$index, [Object]$remote, [string]$kindOfEq) : base ($index, $remote) { - $this.kindOfEq = $kindOfEq - - AddBoolMembers -PARAMS @('on', 'ab') - - $this.channel = @() - for ($ch = 0; $ch -lt $remote.kind.eq_ch[$this.kindOfEq]; $ch++) { - $this.channel.Add([EqChannel]::new($ch, $remote, $this.identifier())) - } - } - - [void] Load ([string]$filename) { - $param = 'Command.Load{0}Eq[{1}]' -f $this.kindOfEq, $this.index - $this.remote.Setter($param, $filename) - } - - [void] Save ([string]$filename) { - $param = 'Command.Save{0}Eq[{1}]' -f $this.kindOfEq, $this.index - $this.remote.Setter($param, $filename) - } -} - -class EqChannel : IRemote { - [System.Collections.ArrayList]$cell - [string]$eqId - - EqChannel ([int]$index, [Object]$remote, [string]$eqId) : base ($index, $remote) { - $this.eqId = $eqId - - $this.cell = @() - $cellCount = $this.remote.kind.cells - for ($c = 0; $c -lt $cellCount; $c++) { - $this.cell.Add([EqCell]::new($c, $remote, $this.identifier())) - } - } - - [string] identifier () { - return '{0}.Channel[{1}]' -f $this.eqId, $this.index - } -} - -class EqCell : IRemote { - [string]$channelId - - EqCell ([int]$index, [Object]$remote, [string]$channelId) : base ($index, $remote) { - $this.channelId = $channelId - - AddBoolMembers -PARAMS @('on') - AddIntMembers -PARAMS @('type') - AddFloatMembers -PARAMS @('f', 'gain', 'q') - } - - [string] identifier () { - return '{0}.Cell[{1}]' -f $this.channelId, $this.index - } -} \ No newline at end of file diff --git a/lib/strip.ps1 b/lib/strip.ps1 index 6595322..cbbedef 100644 --- a/lib/strip.ps1 +++ b/lib/strip.ps1 @@ -1,11 +1,10 @@ -class Strip : IRemote { +class Strip : IOControl { [System.Collections.ArrayList]$gainlayer [Object]$levels Strip ([int]$index, [Object]$remote) : base ($index, $remote) { - AddBoolMembers -PARAMS @('solo', 'mute') - AddFloatMembers -PARAMS @('gain', 'limit', 'pan_x', 'pan_y') - AddStringMembers -PARAMS @('label') + AddBoolMembers -PARAMS @('solo') + AddFloatMembers -PARAMS @('limit', 'pan_x', 'pan_y') AddChannelMembers @@ -20,17 +19,9 @@ class Strip : IRemote { [string] identifier () { return 'Strip[' + $this.index + ']' } - - [void] FadeTo ([single]$target, [int]$time) { - $this.Setter('FadeTo', "($target, $time)") - } - - [void] FadeBy ([single]$target, [int]$time) { - $this.Setter('FadeBy', "($target, $time)") - } } -class StripLevels : IRemote { +class StripLevels : IOLevels { [int]$init [int]$offset @@ -46,23 +37,6 @@ class StripLevels : IRemote { } } - hidden [single] Convert([single]$val) { - if ($val -gt 0) { - return [math]::Round(20 * [math]::Log10($val), 1) - } - else { - return -200.0 - } - } - - [System.Collections.ArrayList] Getter([int]$mode) { - [System.Collections.ArrayList]$vals = @() - $this.init..$($this.init + $this.offset - 1) | ForEach-Object { - $vals.Add($this.Convert($(Get_Level -MODE $mode -INDEX $_))) - } - return $vals - } - [System.Collections.ArrayList] PreFader() { return $this.Getter(0) } @@ -196,7 +170,7 @@ class StripAudibility : IRemote { ) } -class StripEq : Eq { +class StripEq : IOEq { StripEq ([int]$index, [Object]$remote) : base ($index, $remote, 'Strip') { } @@ -205,7 +179,7 @@ class StripEq : Eq { } } -class StripDevice : Device { +class StripDevice : IODevice { StripDevice ([int]$index, [Object]$remote) : base ($index, $remote) { }