mirror of
https://github.com/onyx-and-iris/voicemeeter-api-powershell.git
synced 2025-12-21 20:27:47 +00:00
Merge pull request #33 from pblivingston/read-write-only
Meta functions read/write only
This commit is contained in:
commit
e848037b30
@ -72,9 +72,11 @@ Strip Gainlayers are now FloatArrayMember objects, see README for details
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Device: explicit $arg types for consistency
|
- Meta functions can now take a -ReadOnly or -WriteOnly switch parameter
|
||||||
- Meta: AddBoolMembers, AddIntMembers $arg types for consistency
|
- Meta: AddBoolMembers, AddIntMembers $arg types for consistency
|
||||||
- Float getters/setters now default to two decimal places.
|
- Float getters/setters now default to two decimal places.
|
||||||
|
- Device: explicit $arg types for consistency
|
||||||
|
- Device members now added with meta functions
|
||||||
|
|
||||||
- some vban.instream | vban.outstream commands now added with meta functions
|
- some vban.instream | vban.outstream commands now added with meta functions
|
||||||
- on
|
- on
|
||||||
@ -84,6 +86,7 @@ Strip Gainlayers are now FloatArrayMember objects, see README for details
|
|||||||
|
|
||||||
- Recorder.Armstrip|Armbus -> BoolArrayMember: now have .Get()
|
- Recorder.Armstrip|Armbus -> BoolArrayMember: now have .Get()
|
||||||
- Cast Recorder getters to types for consistency
|
- Cast Recorder getters to types for consistency
|
||||||
|
- Recorder.Prefix now added with AddStringMembers
|
||||||
|
|
||||||
- Strip.Mono is now an alias for Strip.MC on virtual strips
|
- Strip.Mono is now an alias for Strip.MC on virtual strips
|
||||||
- Strip.AppMute|AppGain can now take an app index; see README for details
|
- Strip.AppMute|AppGain can now take an app index; see README for details
|
||||||
|
|||||||
12
lib/bus.ps1
12
lib/bus.ps1
@ -99,23 +99,13 @@ class VirtualBus : Bus {
|
|||||||
class BusDevice : IODevice {
|
class BusDevice : IODevice {
|
||||||
BusDevice ([int]$index, [Object]$remote) : base ($index, $remote) {
|
BusDevice ([int]$index, [Object]$remote) : base ($index, $remote) {
|
||||||
if ($this.index -eq 0) {
|
if ($this.index -eq 0) {
|
||||||
$this.AddASIO()
|
AddStringMembers -PARAMS @('asio') -WriteOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[string] identifier () {
|
[string] identifier () {
|
||||||
return 'Bus[' + $this.index + '].Device'
|
return 'Bus[' + $this.index + '].Device'
|
||||||
}
|
}
|
||||||
|
|
||||||
hidden [void] AddASIO () {
|
|
||||||
Add-Member -InputObject $this -MemberType ScriptProperty -Name 'asio' `
|
|
||||||
-Value {
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).asio is write only")
|
|
||||||
} -SecondValue {
|
|
||||||
param([string]$arg)
|
|
||||||
return $this.Setter('asio', $arg)
|
|
||||||
} -Force
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Make_Buses ([Object]$remote) {
|
function Make_Buses ([Object]$remote) {
|
||||||
|
|||||||
51
lib/io.ps1
51
lib/io.ps1
@ -99,53 +99,8 @@ class EqCell : IRemote {
|
|||||||
|
|
||||||
class IODevice : IRemote {
|
class IODevice : IRemote {
|
||||||
IODevice ([int]$index, [Object]$remote) : base ($index, $remote) {
|
IODevice ([int]$index, [Object]$remote) : base ($index, $remote) {
|
||||||
|
AddStringMembers -WriteOnly -PARAMS @('wdm', 'ks', 'mme')
|
||||||
|
AddStringMembers -ReadOnly -PARAMS @('name')
|
||||||
|
AddIntMembers -ReadOnly -PARAMS @('sr')
|
||||||
}
|
}
|
||||||
|
|
||||||
hidden $_name = $($this | Add-Member ScriptProperty 'name' `
|
|
||||||
{
|
|
||||||
$this.Getter_String('name')
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).name is read only")
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
hidden $_sr = $($this | Add-Member ScriptProperty 'sr' `
|
|
||||||
{
|
|
||||||
[int]$this.Getter('sr')
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).sr is read only")
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
hidden $_wdm = $($this | Add-Member ScriptProperty 'wdm' `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).wdm is write only")
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
param([string]$arg)
|
|
||||||
return $this.Setter('wdm', $arg)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
hidden $_ks = $($this | Add-Member ScriptProperty 'ks' `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).ks is write only")
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
param([string]$arg)
|
|
||||||
return $this.Setter('ks', $arg)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
hidden $_mme = $($this | Add-Member ScriptProperty 'mme' `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).mme is write only")
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
param([string]$arg)
|
|
||||||
return $this.Setter('mme', $arg)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
34
lib/meta.ps1
34
lib/meta.ps1
@ -1,6 +1,6 @@
|
|||||||
function AddBoolMembers () {
|
function AddBoolMembers () {
|
||||||
param(
|
param(
|
||||||
[String[]]$PARAMS
|
[String[]]$PARAMS, [Switch]$readOnly, [Switch]$writeOnly
|
||||||
)
|
)
|
||||||
[hashtable]$Signatures = @{}
|
[hashtable]$Signatures = @{}
|
||||||
foreach ($param in $PARAMS) {
|
foreach ($param in $PARAMS) {
|
||||||
@ -10,13 +10,13 @@ function AddBoolMembers () {
|
|||||||
$Signatures['Setter'] = "param ( [bool]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
$Signatures['Setter'] = "param ( [bool]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
||||||
-f $param
|
-f $param
|
||||||
|
|
||||||
Addmember
|
Addmember -ReadOnly:$readOnly -WriteOnly:$writeOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddFloatMembers () {
|
function AddFloatMembers () {
|
||||||
param(
|
param(
|
||||||
[String[]]$PARAMS,
|
[String[]]$PARAMS, [Switch]$readOnly, [Switch]$writeOnly,
|
||||||
[int]$decimals = 2
|
[int]$decimals = 2
|
||||||
)
|
)
|
||||||
[hashtable]$Signatures = @{}
|
[hashtable]$Signatures = @{}
|
||||||
@ -27,13 +27,13 @@ function AddFloatMembers () {
|
|||||||
$Signatures['Setter'] = "param ( [Single]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
$Signatures['Setter'] = "param ( [Single]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
||||||
-f $param
|
-f $param
|
||||||
|
|
||||||
Addmember
|
Addmember -ReadOnly:$readOnly -WriteOnly:$writeOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddIntMembers () {
|
function AddIntMembers () {
|
||||||
param(
|
param(
|
||||||
[String[]]$PARAMS
|
[String[]]$PARAMS, [Switch]$readOnly, [Switch]$writeOnly
|
||||||
)
|
)
|
||||||
[hashtable]$Signatures = @{}
|
[hashtable]$Signatures = @{}
|
||||||
foreach ($param in $PARAMS) {
|
foreach ($param in $PARAMS) {
|
||||||
@ -43,13 +43,13 @@ function AddIntMembers () {
|
|||||||
$Signatures['Setter'] = "param ( [Int]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
$Signatures['Setter'] = "param ( [Int]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
||||||
-f $param
|
-f $param
|
||||||
|
|
||||||
Addmember
|
Addmember -ReadOnly:$readOnly -WriteOnly:$writeOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddStringMembers () {
|
function AddStringMembers () {
|
||||||
param(
|
param(
|
||||||
[String[]]$PARAMS
|
[String[]]$PARAMS, [Switch]$readOnly, [Switch]$writeOnly
|
||||||
)
|
)
|
||||||
[hashtable]$Signatures = @{}
|
[hashtable]$Signatures = @{}
|
||||||
foreach ($param in $PARAMS) {
|
foreach ($param in $PARAMS) {
|
||||||
@ -59,7 +59,7 @@ function AddStringMembers () {
|
|||||||
$Signatures['Setter'] = "param ( [String]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
$Signatures['Setter'] = "param ( [String]`$arg )`n`$this.Setter('{0}', `$arg)" `
|
||||||
-f $param
|
-f $param
|
||||||
|
|
||||||
Addmember
|
Addmember -ReadOnly:$readOnly -WriteOnly:$writeOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,6 +97,24 @@ function AddChannelMembers () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Addmember {
|
function Addmember {
|
||||||
|
param(
|
||||||
|
[Switch]$readOnly, [Switch]$writeOnly
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($readOnly -and $writeOnly) {
|
||||||
|
throw "AddMember: cannot be both readOnly and writeOnly for '$param'"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Override signatures based on mode
|
||||||
|
if ($readOnly) {
|
||||||
|
$Signatures['Setter'] = "return Write-Warning (`"ERROR: `$(`$this.identifier()).{0} is read only`")" `
|
||||||
|
-f $param
|
||||||
|
}
|
||||||
|
elseif ($writeOnly) {
|
||||||
|
$Signatures['Getter'] = "return Write-Warning (`"ERROR: `$(`$this.identifier()).{0} is write only`")" `
|
||||||
|
-f $param
|
||||||
|
}
|
||||||
|
|
||||||
$AddMemberParams = @{
|
$AddMemberParams = @{
|
||||||
Name = $param
|
Name = $param
|
||||||
MemberType = 'ScriptProperty'
|
MemberType = 'ScriptProperty'
|
||||||
|
|||||||
@ -25,6 +25,7 @@ class Recorder : IRemote {
|
|||||||
AddActionMembers -PARAMS @('replay', 'ff', 'rew')
|
AddActionMembers -PARAMS @('replay', 'ff', 'rew')
|
||||||
AddFloatMembers -PARAMS @('gain')
|
AddFloatMembers -PARAMS @('gain')
|
||||||
AddIntMembers -PARAMS @('prerectime')
|
AddIntMembers -PARAMS @('prerectime')
|
||||||
|
AddStringMembers -PARAMS @('prefix') -WriteOnly
|
||||||
|
|
||||||
AddChannelMembers
|
AddChannelMembers
|
||||||
}
|
}
|
||||||
@ -117,16 +118,6 @@ class Recorder : IRemote {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
hidden $_prefix = $($this | Add-Member ScriptProperty 'prefix' `
|
|
||||||
{
|
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).prefix is write only")
|
|
||||||
} `
|
|
||||||
{
|
|
||||||
param([string]$arg)
|
|
||||||
$this._prefix = $this.Setter('prefix', $arg)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
hidden $_filetype = $($this | Add-Member ScriptProperty 'filetype' `
|
hidden $_filetype = $($this | Add-Member ScriptProperty 'filetype' `
|
||||||
{
|
{
|
||||||
return Write-Warning ("ERROR: $($this.identifier()).filetype is write only")
|
return Write-Warning ("ERROR: $($this.identifier()).filetype is write only")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user