mirror of
https://github.com/onyx-and-iris/voicemeeter-api-powershell.git
synced 2025-12-05 05:07:47 +00:00
52 lines
1.6 KiB
PowerShell
52 lines
1.6 KiB
PowerShell
class Patch : IRemote {
|
|
[System.Collections.ArrayList]$asio
|
|
[System.Collections.ArrayList]$composite
|
|
[System.Collections.ArrayList]$insert
|
|
|
|
Patch ([Object]$remote) : base ($remote) {
|
|
AddBoolMembers -PARAMS @('postFaderComposite', 'postFxInsert')
|
|
|
|
$this.AddASIOOutMembers()
|
|
|
|
$this.asio = @()
|
|
for ($i = 0; $i -lt $remote.kind.asio_in; $i++) {
|
|
$this.asio.Add([IntArrayMember]::new($i, 'asio', $this))
|
|
}
|
|
|
|
$this.composite = @()
|
|
for ($i = 0; $i -lt $remote.kind.composite; $i++) {
|
|
$this.composite.Add([IntArrayMember]::new($i, 'composite', $this))
|
|
}
|
|
|
|
$this.insert = @()
|
|
for ($i = 0; $i -lt $remote.kind.insert; $i++) {
|
|
$this.insert.Add([BoolArrayMember]::new($i, 'insert', $this))
|
|
}
|
|
}
|
|
|
|
[string] identifier () {
|
|
return 'Patch'
|
|
}
|
|
|
|
hidden [void] AddASIOOutMembers () {
|
|
$num_A = $this.remote.kind.p_out
|
|
if ($this.remote.kind.name -eq 'basic') {
|
|
$num_A += $this.remote.kind.v_out
|
|
}
|
|
$asio_out = $this.remote.kind.asio_out
|
|
|
|
if ($asio_out -le 0) { return }
|
|
|
|
for ($a = 2; $a -le $num_A; $a++) {
|
|
[System.Collections.ArrayList]$members = @()
|
|
for ($i = 0; $i -lt $asio_out; $i++) {
|
|
$members.Add([IntArrayMember]::new($i, "OutA$a", $this))
|
|
}
|
|
Add-Member -InputObject $this -MemberType NoteProperty -Name "OutA$a" -Value $members -Force
|
|
}
|
|
}
|
|
}
|
|
|
|
function Make_Patch ([Object]$remote) {
|
|
return [Patch]::new($remote)
|
|
} |