mirror of
https://github.com/onyx-and-iris/voicemeeter-api-powershell.git
synced 2025-01-18 13:20:47 +00:00
29c53da38c
add lock command. showvbanchat can now be set to true or false. reword write only warning on attempt to read, for clarity.
61 lines
1.6 KiB
PowerShell
61 lines
1.6 KiB
PowerShell
class Special {
|
|
hidden AddPublicMembers($commands) {
|
|
$commands | ForEach-Object {
|
|
# Define getter
|
|
$GetterSignature = "`$this.Getter(`$this.cmd('{0}'))" -f $_
|
|
# Define setter
|
|
$SetterSignature = "`$this.Setter(`$this.cmd('{0}'))" -f $_
|
|
|
|
$AddMemberParams = @{
|
|
Name = $_
|
|
MemberType = 'ScriptProperty'
|
|
Value = [ScriptBlock]::Create($SetterSignature)
|
|
SecondValue = [ScriptBlock]::Create($GetterSignature)
|
|
}
|
|
$this | Add-Member @AddMemberParams
|
|
}
|
|
}
|
|
|
|
# Constructor
|
|
Special()
|
|
{
|
|
$this.AddPublicMembers(@('restart', 'shutdown', 'show'))
|
|
}
|
|
|
|
[String] Getter($param) {
|
|
return Write-Warning("ERROR: Usage: $param")
|
|
}
|
|
|
|
[void] Setter($param, $val = $true) {
|
|
Param_Set -PARAM $param -VALUE $(if ($val) {1} else {0})
|
|
}
|
|
|
|
[String] cmd ($arg) {
|
|
return "Command.$arg"
|
|
}
|
|
|
|
hidden $_showvbanchat = $($this | Add-Member ScriptProperty 'showvbanchat' `
|
|
{
|
|
$this.Getter($this.cmd('DialogShow.VBANCHAT'))
|
|
}`
|
|
{
|
|
param( [bool]$arg )
|
|
$this._showvbanchat = $this.Setter($this.cmd('DialogShow.VBANCHAT'), $arg)
|
|
}
|
|
)
|
|
|
|
hidden $_lock = $($this | Add-Member ScriptProperty 'lock' `
|
|
{
|
|
$this._lock = $this.Getter($this.cmd('lock'))
|
|
}`
|
|
{
|
|
param( [bool]$arg )
|
|
$this._lock = $this.Setter($this.cmd('lock'), $arg)
|
|
}
|
|
)
|
|
}
|
|
|
|
Function Special {
|
|
return [Special]::new()
|
|
}
|