diff --git a/README.md b/README.md index aa4707e..e395a47 100644 --- a/README.md +++ b/README.md @@ -491,6 +491,7 @@ The following Option commands are available: - asiosr: bool - monitorOnSel: bool - sliderMode: bool +- monitoringBus: int, from 0 to bus index The following Option.delay[i] methods are available: diff --git a/lib/option.ps1 b/lib/option.ps1 index cae66f2..cf60f55 100644 --- a/lib/option.ps1 +++ b/lib/option.ps1 @@ -24,7 +24,7 @@ class Option : IRemote { hidden $_sr = $($this | Add-Member ScriptProperty 'sr' ` { - $this.Getter('sr') + [int]$this.Getter('sr') } ` { param([int]$arg) @@ -37,6 +37,28 @@ class Option : IRemote { } } ) + + hidden $_monitoringBus = $($this | Add-Member ScriptProperty 'monitoringBus' ` + { + foreach ($bus in 0..$($this.remote.kind.p_out + $this.remote.kind.v_out - 1)) { + if ($this.remote.Getter("Bus[$bus].Monitor")) { + break + } + } + return $bus + } ` + { + param([int]$arg) + $busMax = $this.remote.kind.p_out + $this.remote.kind.v_out - 1 + if ($arg -ge 0 -and $arg -le $busMax) { + $this._monitoringBus = $this.remote.Setter("Bus[$arg].Monitor", $arg) + } + else { + Write-Warning ("Expected a bus index between 0 and $busMax") + } + } + ) + } class OptionBuffer : IRemote { @@ -48,7 +70,7 @@ class OptionBuffer : IRemote { hidden $_mme = $($this | Add-Member ScriptProperty 'mme' ` { - $this.Getter('mme') + [int]$this.Getter('mme') } ` { param([int]$arg) @@ -64,7 +86,7 @@ class OptionBuffer : IRemote { hidden $_wdm = $($this | Add-Member ScriptProperty 'wdm' ` { - $this.Getter('wdm') + [int]$this.Getter('wdm') } ` { param([int]$arg) @@ -80,7 +102,7 @@ class OptionBuffer : IRemote { hidden $_ks = $($this | Add-Member ScriptProperty 'ks' ` { - $this.Getter('ks') + [int]$this.Getter('ks') } ` { param([int]$arg) @@ -96,7 +118,7 @@ class OptionBuffer : IRemote { hidden $_asio = $($this | Add-Member ScriptProperty 'asio' ` { - $this.Getter('asio') + [int]$this.Getter('asio') } ` { param([int]$arg) diff --git a/tests/higher.Tests.ps1 b/tests/higher.Tests.ps1 index de9825f..4c94b5c 100644 --- a/tests/higher.Tests.ps1 +++ b/tests/higher.Tests.ps1 @@ -573,6 +573,13 @@ Describe -Tag 'higher', -TestName 'All Higher Tests' { Start-Sleep -Milliseconds 500 $vmr.option.sr | Should -Be $value } + + It 'Should set and get Option.MonitoringBus' -Skip:$ifNotPotato -ForEach @( + @{ Value = $phys_out }, @{ Value = $virt_out } + ) { + $vmr.option.monitoringbus = $value + $vmr.option.monitoringbus | Should -Be $value + } Context 'Option.buffer' -ForEach @( @{ Value = 1024 }, @{ Value = 512 }