common embedded methods defined as iremote struct.

This commit is contained in:
onyx-and-iris 2022-06-23 14:03:00 +01:00
parent 751200951b
commit a07df8f7b8
4 changed files with 76 additions and 71 deletions

View File

@ -20,7 +20,7 @@ type t_bus interface {
// bus represents a bus channel // bus represents a bus channel
// embeds channel struct // embeds channel struct
type bus struct { type bus struct {
channel iRemote
} }
// String implements the stringer interface // String implements the stringer interface
@ -86,7 +86,7 @@ type physicalBus struct {
} }
func newPhysicalBus(i int, k *kind) t_bus { func newPhysicalBus(i int, k *kind) t_bus {
pb := physicalBus{bus{channel{"bus", i, *k}}} pb := physicalBus{bus{iRemote{"bus", i, k}}}
return t_bus(&pb) return t_bus(&pb)
} }
@ -95,6 +95,6 @@ type virtualBus struct {
} }
func newVirtualBus(i int, k *kind) t_bus { func newVirtualBus(i int, k *kind) t_bus {
vb := virtualBus{bus{channel{"bus", i, *k}}} vb := virtualBus{bus{iRemote{"bus", i, k}}}
return t_bus(&vb) return t_bus(&vb)
} }

View File

@ -1,65 +0,0 @@
package voicemeeter
import (
"fmt"
)
type channel struct {
identifier string
index int
kind kind
}
// getter_bool returns the value of a boolean parameter
func (c *channel) getter_bool(p string) bool {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
return getParameterFloat(param) == 1
}
// setter_bool sets the value of a boolean parameter
func (c *channel) setter_bool(p string, v bool) {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
var value float32
if v {
value = 1
} else {
value = 0
}
setParameterFloat(param, float32(value))
}
// getter_int returns the value of an int parameter p
func (c *channel) getter_int(p string) int {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
return int(getParameterFloat(param))
}
// setter_int sets the value v of an int parameter p
func (c *channel) setter_int(p string, v int) {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
setParameterFloat(param, float32(v))
}
// getter_float returns the value of an int parameter p
func (c *channel) getter_float(p string) float64 {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
return getParameterFloat(param)
}
// setter_float sets the value v of an int parameter p
func (c *channel) setter_float(p string, v float32) {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
setParameterFloat(param, float32(v))
}
// getter_string returns the value of a string parameter p
func (c *channel) getter_string(p string) string {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
return getParameterString(param)
}
// setter_string sets the value v of a string parameter p
func (c *channel) setter_string(p, v string) {
param := fmt.Sprintf("%s[%d].%s", c.identifier, c.index, p)
setParameterString(param, v)
}

70
voicemeeter/iremote.go Normal file
View File

@ -0,0 +1,70 @@
package voicemeeter
import (
"fmt"
)
// iRemote provides a set of common forwarding methods
type iRemote struct {
_identifier string
index int
kind *kind
}
func (c *iRemote) identifier() string {
return c._identifier
}
// getter_bool returns the value of a boolean parameter
func (c *iRemote) getter_bool(p string) bool {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
return getParameterFloat(param) == 1
}
// setter_bool sets the value of a boolean parameter
func (c *iRemote) setter_bool(p string, v bool) {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
var value float32
if v {
value = 1
} else {
value = 0
}
setParameterFloat(param, float32(value))
}
// getter_int returns the value of an int parameter p
func (c *iRemote) getter_int(p string) int {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
return int(getParameterFloat(param))
}
// setter_int sets the value v of an int parameter p
func (c *iRemote) setter_int(p string, v int) {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
setParameterFloat(param, float32(v))
}
// getter_float returns the value of an int parameter p
func (c *iRemote) getter_float(p string) float64 {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
return getParameterFloat(param)
}
// setter_float sets the value v of an int parameter p
func (c *iRemote) setter_float(p string, v float32) {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
setParameterFloat(param, float32(v))
}
// getter_string returns the value of a string parameter p
func (c *iRemote) getter_string(p string) string {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
return getParameterString(param)
}
// setter_string sets the value v of a string parameter p
func (c *iRemote) setter_string(p, v string) {
param := fmt.Sprintf("%s[%d].%s", c.identifier(), c.index, p)
setParameterString(param, v)
}

View File

@ -30,7 +30,7 @@ type t_strip interface {
// strip represents a strip channel // strip represents a strip channel
// embeds channel struct // embeds channel struct
type strip struct { type strip struct {
channel iRemote
} }
// implement stringer interface in fmt // implement stringer interface in fmt
@ -106,7 +106,7 @@ type physicalStrip struct {
} }
func newPhysicalStrip(i int, k *kind) t_strip { func newPhysicalStrip(i int, k *kind) t_strip {
ps := physicalStrip{strip{channel{"strip", i, *k}}} ps := physicalStrip{strip{iRemote{"strip", i, k}}}
return t_strip(&ps) return t_strip(&ps)
} }
@ -155,7 +155,7 @@ type virtualStrip struct {
} }
func newVirtualStrip(i int, k *kind) t_strip { func newVirtualStrip(i int, k *kind) t_strip {
vs := virtualStrip{strip{channel{"strip", i, *k}}} vs := virtualStrip{strip{iRemote{"strip", i, k}}}
return t_strip(&vs) return t_strip(&vs)
} }