storepreset, recallpreset

pester tests pass for all kinds
manual tests pass for all kinds
- show/hide
- lock/unlock
- showvbanchat/hidevbanchat
This commit is contained in:
pblivingston 2025-12-03 23:50:07 -05:00
parent cfa7de9b11
commit 1310ca25ef
5 changed files with 107 additions and 5 deletions

View File

@ -41,6 +41,8 @@ Recorder.FileType changed from method to write-only property
- Recorder.State - Recorder.State
- Command.Reset() - Command.Reset()
- Command.Save($filepath) - Command.Save($filepath)
- Command.StorePreset()
- Command.RecallPreset()
### Changed ### Changed

View File

@ -431,21 +431,31 @@ The following methods are available:
- Reset(): Reset all config - Reset(): Reset all config
- Save($filepath): string - Save($filepath): string
- Load($filepath): string - Load($filepath): string
- StorePreset($index, $name): (int, string)
- RecallPreset($index or $name): (int or string)
- RunMacrobuttons(): Launches the macrobuttons app - RunMacrobuttons(): Launches the macrobuttons app
- CloseMacrobuttons(): Closes the macrobuttons app - CloseMacrobuttons(): Closes the macrobuttons app
example: example:
```powershell ```powershell
$vmr.command.show() $vmr.command.Show()
$vmr.command.Lock()
$vmr.command.lock()
$vmr.command.Load("path/to/filename.xml") $vmr.command.Load("path/to/filename.xml")
$vmr.command.RunMacrobuttons() $vmr.command.RunMacrobuttons()
$vmr.command.StorePreset(63, 'example')
$vmr.command.StorePreset('example')
$vmr.command.StorePreset(63) # same as StorePreset(63, '')
$vmr.command.StorePreset() # same as StorePreset(''), overwrites last recalled
$vmr.command.RecallPreset('example')
$vmr.command.RecallPreset(63)
$vmr.command.RecallPreset() # same as RecallPreset(''), recalls last recalled
``` ```
StorePreset('') and RecallPreset('') interact with the 'selected' preset. This is highlighted green in the GUI. Recalling a preset selects it. Storing a preset via GUI also selects it. Storing a preset with StorePreset does not select it.
### Fx ### Fx
The following Fx commands are available: The following Fx commands are available:

View File

@ -40,6 +40,34 @@ class Special : IRemote {
[void] Save ([string]$filename) { [void] Save ([string]$filename) {
$this.Setter('save', $filename) $this.Setter('save', $filename)
} }
[void] StorePreset () {
$this.Setter('updatepreset', '')
}
[void] StorePreset ([string]$name) {
$this.Setter('updatepreset', $name)
}
[void] StorePreset ([int]$index) {
$this.Setter('preset[{0}].store' -f $index, '')
}
[void] StorePreset ([int]$index, [string]$name) {
$this.Setter('preset[{0}].store' -f $index, $name)
}
[void] RecallPreset () {
$this.Setter('recallpreset', '')
}
[void] RecallPreset ([string]$name) {
$this.Setter('recallpreset', $name)
}
[void] RecallPreset ([int]$index) {
$this.Setter('preset[{0}].recall' -f $index, 1)
}
} }
function Make_Command([Object]$remote) { function Make_Command([Object]$remote) {

View File

@ -908,6 +908,7 @@ Describe -Tag 'higher', -TestName 'All Higher Tests' {
$vmr.recorder.filetype = $filetype $vmr.recorder.filetype = $filetype
$vmr.recorder.state = 'record' $vmr.recorder.state = 'record'
Start-Sleep -Milliseconds 100
$stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date) $stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date)
$vmr.recorder.state | Should -Be 'record' $vmr.recorder.state | Should -Be 'record'
Start-Sleep -Milliseconds 2000 Start-Sleep -Milliseconds 2000
@ -1001,6 +1002,7 @@ Describe -Tag 'higher', -TestName 'All Higher Tests' {
BeforeEach { BeforeEach {
$vmr.recorder.record() $vmr.recorder.record()
Start-Sleep -Milliseconds 100
$stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date) $stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date)
Start-Sleep -Milliseconds 2000 Start-Sleep -Milliseconds 2000
@ -1043,5 +1045,64 @@ Describe -Tag 'higher', -TestName 'All Higher Tests' {
} }
} }
} }
Context 'Command' {
Context 'Preset Scene' -ForEach @(
@{ Index = 0; Name = 'Test Scene 1' }
@{ Index = 63; Name = 'Test Scene 64' }
) {
It "Should store preset at index '$index' with name '$name'" -ForEach @(
@{ Value = -15.5 }, @{ Value = -52.9 }
) {
$vmr.bus[$phys_out].gain = $value
$vmr.command.storepreset($index, $name)
$vmr.bus[$phys_out].gain = 0.0
$vmr.command.recallpreset($name)
Start-Sleep -Milliseconds 500
$vmr.bus[$phys_out].gain | Should -Be $value
}
It "Should update preset at index '$index'" -ForEach @(
@{ Value = $false }, @{ Value = $true }
) {
$vmr.strip[$virt_in].B1 = $value
$vmr.command.storepreset($index)
$vmr.strip[$virt_in].B1 = -not $value
$vmr.command.recallpreset($index)
Start-Sleep -Milliseconds 500
$vmr.strip[$virt_in].B1 | Should -Be $value
}
It "Should update preset with name '$name'" -ForEach @(
@{ Value = 2 }, @{ Value = 1 }
) {
$vmr.bus[$virt_out].mono = $value
$vmr.command.storepreset($name)
$vmr.bus[$virt_out].mono = 0
$vmr.command.recallpreset($name)
Start-Sleep -Milliseconds 500
$vmr.bus[$virt_out].mono | Should -Be $value
}
It "Should update last recalled preset ($index`: $(($index + 1).ToString('00')) - $name)" -ForEach @(
@{ Value = 0.8 }, @{ Value = 0.3 }
) {
$vmr.strip[$phys_in].color_y = $value
$vmr.command.storepreset()
$vmr.strip[$phys_in].color_y = 0.0
$vmr.command.recallpreset()
Start-Sleep -Milliseconds 500
$vmr.strip[$phys_in].color_y | Should -Be $value
}
}
}
} }
} }

View File

@ -12,6 +12,7 @@ function Test-RecDir ([object]$vmr, [string]$recDir) {
try { try {
$vmr.recorder.record() $vmr.recorder.record()
Start-Sleep -Milliseconds 100
$stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date) $stamp = '{0:yyyy-MM-dd} at {0:HH}h{0:mm}m{0:ss}s' -f (Get-Date)
Start-Sleep -Milliseconds 2000 Start-Sleep -Milliseconds 2000