Update goto_nextbus.ps1

reorganize comments.

run boolean test on buses array to test for existence of value.

set unmute explicitly if all buses are muted (for readability).
This commit is contained in:
onyx-and-iris 2022-01-09 14:23:20 +00:00
parent 2775d64e47
commit f50f5aa40c

View File

@ -5,10 +5,11 @@
Credits go to @bobsupercow Credits go to @bobsupercow
#> #>
# 1) Loop through an array of buses. Toggle mute for first unmuted bus # 1) Loop through an array of buses.
# 2) If next bus in array exists, unmute it # 2) Mute first unmuted bus
# 3) else unmute the first bus specified in array. # 3) If next bus in array exists, unmute it
# 4) If every bus in array is muted, unmute the first bus specified in array. # 4) else unmute the first bus specified in array.
# 5) If every bus in array is muted, unmute the first bus specified in array.
Import-Module Voicemeeter Import-Module Voicemeeter
@ -19,24 +20,23 @@ try {
$unmutedIndex = $null $unmutedIndex = $null
[int32[]]$buses = @(1,2,4,6) [int32[]]$buses = @(1,2,4,6)
0..($buses.Length -1) | ForEach-Object {
# 1) # 1)
0..($buses.Length -1) | ForEach-Object {
# 2)
if ( -not $vmr.bus[$buses[$_]].mute ){ if ( -not $vmr.bus[$buses[$_]].mute ){
$unmutedIndex = $_ $unmutedIndex = $_
$vmr.bus[$buses[$unmutedIndex]].mute = $true $vmr.bus[$buses[$unmutedIndex]].mute = $true
# 2) # 3)
if ($unmutedIndex -lt ($buses.Length -1)){ if ( $buses[++$unmutedIndex] ){
$vmr.bus[$buses[++$unmutedIndex]].mute = $false $vmr.bus[$buses[$unmutedIndex]].mute = $false
break break
} }
# 3)
else {
$vmr.bus[$buses[0]].mute = $false
}
}
}
# 4) # 4)
if ($null -eq $unmutedIndex) { $vmr.bus[$buses[0]].mute = -not $vmr.bus[$buses[0]].mute } else { $vmr.bus[$buses[0]].mute = $false }
}
}
# 5)
if ( $null -eq $unmutedIndex ) { $vmr.bus[$buses[0]].mute = $false }
} finally { $vmr.Logout() } } finally { $vmr.Logout() }