mirror of
https://github.com/onyx-and-iris/voicemeeter-api-powershell.git
synced 2025-01-18 21:30:46 +00:00
add output flag to CLI example
add README for CLI example
This commit is contained in:
parent
a74f49a277
commit
6ef6da5cc1
@ -1,5 +1,6 @@
|
|||||||
param(
|
param(
|
||||||
[switch]$interactive,
|
[switch]$interactive,
|
||||||
|
[switch]$output,
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
[String]$kind,
|
[String]$kind,
|
||||||
[String[]]$script = @()
|
[String[]]$script = @()
|
||||||
@ -22,23 +23,24 @@ function msgHandler {
|
|||||||
param([object]$vmr, [string]$line)
|
param([object]$vmr, [string]$line)
|
||||||
$line + " passed to handler" | Write-Debug
|
$line + " passed to handler" | Write-Debug
|
||||||
if ($line[0] -eq "!") {
|
if ($line[0] -eq "!") {
|
||||||
|
if ($output) { "Toggling " + $line.substring(1) | Write-Host }
|
||||||
$retval = get-value -vmr $vmr -line $line.substring(1)
|
$retval = get-value -vmr $vmr -line $line.substring(1)
|
||||||
$vmr.Setter($line.substring(1), 1 - $retval)
|
$vmr.Setter($line.substring(1), 1 - $retval)
|
||||||
}
|
}
|
||||||
elseif ($line.Contains("=")) {
|
elseif ($line.Contains("=")) {
|
||||||
"Setting value $line" | Write-Debug
|
if ($output) { "Setting $line" | Write-Host }
|
||||||
$vmr.SendText($line)
|
$vmr.SendText($line)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
"Getting value $line" | Write-Debug
|
if ($output) { "Getting $line" | Write-Host }
|
||||||
$retval = get-value -vmr $vmr -line $line
|
$retval = get-value -vmr $vmr -line $line
|
||||||
$line + " = " + $retval | Write-Host
|
$line + " = " + $retval | Write-Host
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function read-hostuntilflag {
|
function read-hostuntilempty {
|
||||||
param([object]$vmr)
|
param([object]$vmr)
|
||||||
while (($line = Read-Host) -cne [string]::Empty) { msgHandler -vmr $vmr -line $line }
|
while (($line = Read-Host) -cne[string]::Empty) { msgHandler -vmr $vmr -line $line }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -54,7 +56,7 @@ function main {
|
|||||||
|
|
||||||
if ($interactive) {
|
if ($interactive) {
|
||||||
"Press <Enter> to exit" | Write-Host
|
"Press <Enter> to exit" | Write-Host
|
||||||
read-hostuntilflag -vmr $vmr
|
read-hostuntilempty -vmr $vmr
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
$script | ForEach-Object {
|
$script | ForEach-Object {
|
||||||
|
31
examples/cli/README.md
Normal file
31
examples/cli/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
## About
|
||||||
|
|
||||||
|
A simple voicemeeter-cli program. Offers ability to toggle, get and set parameters.
|
||||||
|
|
||||||
|
## Use
|
||||||
|
|
||||||
|
Toggle with `!` prefix, get by excluding `=` and set by including `=`. Mix and match arguments.
|
||||||
|
|
||||||
|
You may pass the following optional flags:
|
||||||
|
|
||||||
|
- -v: (-verbose) to toggle console output.
|
||||||
|
- -i: (-interactive) to toggle interactive mode.
|
||||||
|
- -k: (-kind) to set the kind of Voicemeeter. Defaults to banana.
|
||||||
|
|
||||||
|
for example:
|
||||||
|
|
||||||
|
`powershell.exe .\CLI.ps1 -o -k "banana" -s "strip[0].mute", "!strip[0].mute", "strip[0].mute", "bus[2].eq.on=1", "command.lock=1"`
|
||||||
|
|
||||||
|
Expected output:
|
||||||
|
|
||||||
|
```
|
||||||
|
Getting strip[0].mute
|
||||||
|
strip[0].mute = 0
|
||||||
|
Toggling strip[0].mute
|
||||||
|
Getting strip[0].mute
|
||||||
|
strip[0].mute = 1
|
||||||
|
Setting bus[2].eq.on=1
|
||||||
|
Setting command.lock=1
|
||||||
|
```
|
||||||
|
|
||||||
|
If running in interactive mode enter `<Enter>` to exit.
|
Loading…
Reference in New Issue
Block a user