export PhysicalStrip, VirtualStrip types

export PhysicalBus, VirtualBus types
export VbanInstream, VbanOutStream types

These can now be used by consumer for type assertions.

Strip[i].Denoiser() now references a struct type.
This will be easier to extend if the api changes in future.
This commit is contained in:
onyx-and-iris 2022-12-08 19:44:06 +00:00
parent cd830abb78
commit 95963ead14
3 changed files with 110 additions and 92 deletions

20
bus.go
View File

@ -98,42 +98,42 @@ func (b *bus) FadeBy(change float32, time_ int) {
time.Sleep(time.Millisecond) time.Sleep(time.Millisecond)
} }
// physicalBus represents a single physical bus // PhysicalBus represents a single physical bus
type physicalBus struct { type PhysicalBus struct {
bus bus
} }
// newPhysicalBus returns a physicalBus type cast to an iBus // newPhysicalBus returns a PhysicalBus type cast to an iBus
func newPhysicalBus(i int, k *kind) iBus { func newPhysicalBus(i int, k *kind) iBus {
e := newEq(fmt.Sprintf("bus[%d].EQ", i), i) e := newEq(fmt.Sprintf("bus[%d].EQ", i), i)
b := newBusMode(i) b := newBusMode(i)
l := newBusLevels(i, k) l := newBusLevels(i, k)
pb := physicalBus{bus{iRemote{fmt.Sprintf("bus[%d]", i), i}, e, b, l}} pb := PhysicalBus{bus{iRemote{fmt.Sprintf("bus[%d]", i), i}, e, b, l}}
return &pb return &pb
} }
// String implements the fmt.stringer interface // String implements the fmt.stringer interface
func (p *physicalBus) String() string { func (p *PhysicalBus) String() string {
return fmt.Sprintf("PhysicalBus%d", p.index) return fmt.Sprintf("PhysicalBus%d", p.index)
} }
// virtualBus represents a single virtual bus // VirtualBus represents a single virtual bus
type virtualBus struct { type VirtualBus struct {
bus bus
} }
// newVirtualBus returns a virtualBus type cast to an iBus // newVirtualBus returns a VirtualBus type cast to an iBus
func newVirtualBus(i int, k *kind) iBus { func newVirtualBus(i int, k *kind) iBus {
e := newEq(fmt.Sprintf("bus[%d].EQ", i), i) e := newEq(fmt.Sprintf("bus[%d].EQ", i), i)
b := newBusMode(i) b := newBusMode(i)
l := newBusLevels(i, k) l := newBusLevels(i, k)
vb := virtualBus{bus{iRemote{fmt.Sprintf("bus[%d]", i), i}, e, b, l}} vb := VirtualBus{bus{iRemote{fmt.Sprintf("bus[%d]", i), i}, e, b, l}}
return &vb return &vb
} }
// String implements the fmt.stringer interface // String implements the fmt.stringer interface
func (v *virtualBus) String() string { func (v *VirtualBus) String() string {
return fmt.Sprintf("VirtualBus%d", v.index) return fmt.Sprintf("VirtualBus%d", v.index)
} }

126
strip.go
View File

@ -26,8 +26,6 @@ type iStrip interface {
SetMc(val bool) SetMc(val bool)
Audibility() float64 Audibility() float64
SetAudibility(val float64) SetAudibility(val float64)
Denoiser() float64
SetDenoiser(val float64)
PanX() float64 PanX() float64
SetPanX(val float64) SetPanX(val float64)
PanY() float64 PanY() float64
@ -47,6 +45,7 @@ type iStrip interface {
Eq() *eQ Eq() *eQ
Comp() *comp Comp() *comp
Gate() *gate Gate() *gate
Denoiser() *denoiser
GainLayer() []gainLayer GainLayer() []gainLayer
Levels() *levels Levels() *levels
iOutputs iOutputs
@ -59,6 +58,7 @@ type strip struct {
eQ *eQ eQ *eQ
comp *comp comp *comp
gate *gate gate *gate
denoiser *denoiser
gainLayer []gainLayer gainLayer []gainLayer
levels *levels levels *levels
} }
@ -123,16 +123,6 @@ func (s *strip) SetGain(val float64) {
s.setter_float("Gain", val) s.setter_float("Gain", val)
} }
// Denoiser returns the value of the Denoiser parameter
func (s *strip) Denoiser() float64 {
return s.getter_float("Denoiser")
}
// SetDenoiser sets the value of the Denoiser parameter
func (s *strip) SetDenoiser(val float64) {
s.setter_float("Denoiser", val)
}
// PanX returns the value of the Pan_X parameter // PanX returns the value of the Pan_X parameter
func (s *strip) PanX() float64 { func (s *strip) PanX() float64 {
return s.getter_float("Pan_x") return s.getter_float("Pan_x")
@ -180,205 +170,217 @@ func (s *strip) FadeBy(change float64, time_ int) {
time.Sleep(time.Millisecond) time.Sleep(time.Millisecond)
} }
// physicalStrip represents a single physical strip // PhysicalStrip represents a single physical strip
type physicalStrip struct { type PhysicalStrip struct {
strip strip
} }
// newPhysicalStrip returns a physicalStrip type cast to an iStrip // newPhysicalStrip returns a PhysicalStrip type
func newPhysicalStrip(i int, k *kind) iStrip { func newPhysicalStrip(i int, k *kind) iStrip {
o := newOutputs(fmt.Sprintf("strip[%d]", i), i) o := newOutputs(fmt.Sprintf("strip[%d]", i), i)
e := newEq(fmt.Sprintf("strip[%d].EQ", i), i) e := newEq(fmt.Sprintf("strip[%d].EQ", i), i)
c := newComp(i) c := newComp(i)
g := newGate(i) g := newGate(i)
d := newDenoiser(i)
gl := make([]gainLayer, 8) gl := make([]gainLayer, 8)
for j := 0; j < 8; j++ { for j := 0; j < 8; j++ {
gl[j] = newGainLayer(i, j) gl[j] = newGainLayer(i, j)
} }
l := newStripLevels(i, k) l := newStripLevels(i, k)
ps := physicalStrip{strip{iRemote{fmt.Sprintf("strip[%d]", i), i}, o, e, c, g, gl, l}} ps := PhysicalStrip{strip{iRemote{fmt.Sprintf("strip[%d]", i), i}, o, e, c, g, d, gl, l}}
return &ps return &ps
} }
// String implements fmt.stringer interface // String implements fmt.stringer interface
func (p *physicalStrip) String() string { func (p *PhysicalStrip) String() string {
return fmt.Sprintf("PhysicalStrip%d", p.index) return fmt.Sprintf("PhysicalStrip%d", p.index)
} }
// Audibility returns the value of the Audibility parameter // Audibility returns the value of the Audibility parameter
func (p *physicalStrip) Audibility() float64 { func (p *PhysicalStrip) Audibility() float64 {
return p.getter_float("Audibility") return p.getter_float("Audibility")
} }
// SetAudibility sets the value of the Audibility parameter // SetAudibility sets the value of the Audibility parameter
func (p *physicalStrip) SetAudibility(val float64) { func (p *PhysicalStrip) SetAudibility(val float64) {
p.setter_float("Audibility", val) p.setter_float("Audibility", val)
} }
// Mc logs a warning reason invalid parameter // Mc logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (p *physicalStrip) Mc() bool { func (p *PhysicalStrip) Mc() bool {
log.Warn("invalid parameter MC for physicalStrip") log.Warn("invalid parameter MC for physicalStrip")
return false return false
} }
// SetMc logs a warning reason invalid parameter // SetMc logs a warning reason invalid parameter
func (p *physicalStrip) SetMc(val bool) { func (p *PhysicalStrip) SetMc(val bool) {
log.Warn("invalid parameter MC for physicalStrip") log.Warn("invalid parameter MC for physicalStrip")
} }
// Comp returns the comp field // Comp returns the comp field
func (p *physicalStrip) Comp() *comp { func (p *PhysicalStrip) Comp() *comp {
return p.comp return p.comp
} }
// Gate returns the gate field // Gate returns the gate field
func (p *physicalStrip) Gate() *gate { func (p *PhysicalStrip) Gate() *gate {
return p.gate return p.gate
} }
// Denoiser returns the denoiser field
func (p *PhysicalStrip) Denoiser() *denoiser {
return p.denoiser
}
// ColorX returns the value of the Color_X parameter // ColorX returns the value of the Color_X parameter
func (p *physicalStrip) ColorX() float64 { func (p *PhysicalStrip) ColorX() float64 {
return p.getter_float("Color_x") return p.getter_float("Color_x")
} }
// SetColorX sets the value of the Color_X parameter // SetColorX sets the value of the Color_X parameter
func (p *physicalStrip) SetColorX(val float64) { func (p *PhysicalStrip) SetColorX(val float64) {
p.setter_float("Color_x", val) p.setter_float("Color_x", val)
} }
// ColorY returns the value of the Color_Y parameter // ColorY returns the value of the Color_Y parameter
func (p *physicalStrip) ColorY() float64 { func (p *PhysicalStrip) ColorY() float64 {
return p.getter_float("Color_y") return p.getter_float("Color_y")
} }
// SetColorY sets the value of the Color_Y parameter // SetColorY sets the value of the Color_Y parameter
func (p *physicalStrip) SetColorY(val float64) { func (p *PhysicalStrip) SetColorY(val float64) {
p.setter_float("Color_y", val) p.setter_float("Color_y", val)
} }
// FxX returns the value of the Color_X parameter // FxX returns the value of the Color_X parameter
func (p *physicalStrip) FxX() float64 { func (p *PhysicalStrip) FxX() float64 {
return p.getter_float("fx_x") return p.getter_float("fx_x")
} }
// SetFxX sets the value of the Color_X parameter // SetFxX sets the value of the Color_X parameter
func (p *physicalStrip) SetFxX(val float64) { func (p *PhysicalStrip) SetFxX(val float64) {
p.setter_float("fx_x", val) p.setter_float("fx_x", val)
} }
// FxY returns the value of the Color_Y parameter // FxY returns the value of the Color_Y parameter
func (p *physicalStrip) FxY() float64 { func (p *PhysicalStrip) FxY() float64 {
return p.getter_float("fx_y") return p.getter_float("fx_y")
} }
// SetFxY sets the value of the Color_Y parameter // SetFxY sets the value of the Color_Y parameter
func (p *physicalStrip) SetFxY(val float64) { func (p *PhysicalStrip) SetFxY(val float64) {
p.setter_float("fx_y", val) p.setter_float("fx_y", val)
} }
// virtualStrip represents a single virtual strip // VirtualStrip represents a single virtual strip
type virtualStrip struct { type VirtualStrip struct {
strip strip
} }
// newVirtualStrip returns a virtualStrip type cast to an iStrip // newVirtualStrip returns a VirtualStrip type
func newVirtualStrip(i int, k *kind) iStrip { func newVirtualStrip(i int, k *kind) iStrip {
o := newOutputs(fmt.Sprintf("strip[%d]", i), i) o := newOutputs(fmt.Sprintf("strip[%d]", i), i)
e := newEq(fmt.Sprintf("strip[%d].EQ", i), i) e := newEq(fmt.Sprintf("strip[%d].EQ", i), i)
c := newComp(i) c := newComp(i)
g := newGate(i) g := newGate(i)
d := newDenoiser(i)
gl := make([]gainLayer, 8) gl := make([]gainLayer, 8)
for j := 0; j < 8; j++ { for j := 0; j < 8; j++ {
gl[j] = newGainLayer(i, j) gl[j] = newGainLayer(i, j)
} }
l := newStripLevels(i, k) l := newStripLevels(i, k)
vs := virtualStrip{strip{iRemote{fmt.Sprintf("strip[%d]", i), i}, o, e, c, g, gl, l}} vs := VirtualStrip{strip{iRemote{fmt.Sprintf("strip[%d]", i), i}, o, e, c, g, d, gl, l}}
return &vs return &vs
} }
// String implements fmt.stringer interface // String implements fmt.stringer interface
func (v *virtualStrip) String() string { func (v *VirtualStrip) String() string {
return fmt.Sprintf("VirtualStrip%d", v.index) return fmt.Sprintf("VirtualStrip%d", v.index)
} }
// Comp returns the comp field // Comp returns the comp field
func (v *virtualStrip) Comp() *comp { func (v *VirtualStrip) Comp() *comp {
return v.comp return v.comp
} }
// Gate returns the gate field // Gate returns the gate field
func (v *virtualStrip) Gate() *gate { func (v *VirtualStrip) Gate() *gate {
return v.gate return v.gate
} }
// Denoiser returns the denoiser field
func (v *VirtualStrip) Denoiser() *denoiser {
return v.denoiser
}
// Mc returns the value of the MC parameter // Mc returns the value of the MC parameter
func (v *virtualStrip) Mc() bool { func (v *VirtualStrip) Mc() bool {
return v.getter_bool("MC") return v.getter_bool("MC")
} }
// SetMc sets the value of the MC parameter // SetMc sets the value of the MC parameter
func (v *virtualStrip) SetMc(val bool) { func (v *VirtualStrip) SetMc(val bool) {
v.setter_bool("MC", val) v.setter_bool("MC", val)
} }
// ColorX logs a warning reason invalid parameter // ColorX logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (v *virtualStrip) ColorX() float64 { func (v *VirtualStrip) ColorX() float64 {
log.Warn("invalid parameter ColorX for virtualStrip") log.Warn("invalid parameter ColorX for virtualStrip")
return 0 return 0
} }
// SetColorX logs a warning reason invalid parameter // SetColorX logs a warning reason invalid parameter
func (v *virtualStrip) SetColorX(val float64) { func (v *VirtualStrip) SetColorX(val float64) {
log.Warn("invalid parameter ColorX for virtualStrip") log.Warn("invalid parameter ColorX for virtualStrip")
} }
// ColorY logs a warning reason invalid parameter // ColorY logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (v *virtualStrip) ColorY() float64 { func (v *VirtualStrip) ColorY() float64 {
log.Warn("invalid parameter ColorY for virtualStrip") log.Warn("invalid parameter ColorY for virtualStrip")
return 0 return 0
} }
// SetColorY logs a warning reason invalid parameter // SetColorY logs a warning reason invalid parameter
func (v *virtualStrip) SetColorY(val float64) { func (v *VirtualStrip) SetColorY(val float64) {
log.Warn("invalid parameter ColorY for virtualStrip") log.Warn("invalid parameter ColorY for virtualStrip")
} }
// FxX logs a warning reason invalid parameter // FxX logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (v *virtualStrip) FxX() float64 { func (v *VirtualStrip) FxX() float64 {
log.Warn("invalid parameter FxX for virtualStrip") log.Warn("invalid parameter FxX for virtualStrip")
return 0 return 0
} }
// SetFxX logs a warning reason invalid parameter // SetFxX logs a warning reason invalid parameter
func (v *virtualStrip) SetFxX(val float64) { func (v *VirtualStrip) SetFxX(val float64) {
log.Warn("invalid parameter SetFxX for virtualStrip") log.Warn("invalid parameter SetFxX for virtualStrip")
} }
// FxY logs a warning reason invalid parameter // FxY logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (v *virtualStrip) FxY() float64 { func (v *VirtualStrip) FxY() float64 {
log.Warn("invalid parameter FxY for virtualStrip") log.Warn("invalid parameter FxY for virtualStrip")
return 0 return 0
} }
// SetFxY logs a warning reason invalid parameter // SetFxY logs a warning reason invalid parameter
func (v *virtualStrip) SetFxY(val float64) { func (v *VirtualStrip) SetFxY(val float64) {
log.Warn("invalid parameter SetFxY for virtualStrip") log.Warn("invalid parameter SetFxY for virtualStrip")
} }
// Audibility logs a warning reason invalid parameter // Audibility logs a warning reason invalid parameter
// it always returns zero value // it always returns zero value
func (v *virtualStrip) Audibility() float64 { func (v *VirtualStrip) Audibility() float64 {
log.Warn("invalid parameter Audibility for virtualStrip") log.Warn("invalid parameter Audibility for virtualStrip")
return 0 return 0
} }
// SetAudibility logs a warning reason invalid parameter // SetAudibility logs a warning reason invalid parameter
func (v *virtualStrip) SetAudibility(val float64) { func (v *VirtualStrip) SetAudibility(val float64) {
log.Warn("invalid parameter Audibility for virtualStrip") log.Warn("invalid parameter Audibility for virtualStrip")
} }
@ -398,6 +400,22 @@ func (v *strip) AppMute(name string, val bool) {
v.setter_string("AppMute", fmt.Sprintf("(\"%s\", %f)", name, float64(value))) v.setter_string("AppMute", fmt.Sprintf("(\"%s\", %f)", name, float64(value)))
} }
type denoiser struct {
iRemote
}
func newDenoiser(i int) *denoiser {
return &denoiser{iRemote{fmt.Sprintf("strip[%d].denoiser", i), i}}
}
func (d *denoiser) Knob() float64 {
return d.getter_float("")
}
func (d *denoiser) SetKnob(val float64) {
d.setter_float("", val)
}
type comp struct { type comp struct {
iRemote iRemote
} }
@ -510,12 +528,12 @@ func (g *gate) SetDamping(val float64) {
g.setter_float("Damping", val) g.setter_float("Damping", val)
} }
func (g *gate) BPSidechain() float64 { func (g *gate) BPSidechain() int {
return g.getter_float("BPSidechain") return g.getter_int("BPSidechain")
} }
func (g *gate) SetBPSidechain(val float64) { func (g *gate) SetBPSidechain(val int) {
g.setter_float("BPSidechain", val) g.setter_int("BPSidechain", val)
} }
func (g *gate) Attack() float64 { func (g *gate) Attack() float64 {

56
vban.go
View File

@ -28,72 +28,72 @@ type iVban interface {
SetRoute(val int) SetRoute(val int)
} }
type vbanStream struct { type stream struct {
iRemote iRemote
} }
// On returns the value of the On parameter // On returns the value of the On parameter
func (v *vbanStream) On() bool { func (v *stream) On() bool {
return v.getter_bool("On") return v.getter_bool("On")
} }
// SetOn sets the value of the On parameter // SetOn sets the value of the On parameter
func (v *vbanStream) SetOn(val bool) { func (v *stream) SetOn(val bool) {
v.setter_bool("On", val) v.setter_bool("On", val)
} }
// Name returns the value of the Name parameter // Name returns the value of the Name parameter
func (v *vbanStream) Name() string { func (v *stream) Name() string {
return v.getter_string("Name") return v.getter_string("Name")
} }
// SetLabel sets the value of the Name parameter // SetLabel sets the value of the Name parameter
func (v *vbanStream) SetName(val string) { func (v *stream) SetName(val string) {
v.setter_string("Name", val) v.setter_string("Name", val)
} }
// Ip returns the value of the Ip parameter // Ip returns the value of the Ip parameter
func (v *vbanStream) Ip() string { func (v *stream) Ip() string {
return v.getter_string("Ip") return v.getter_string("Ip")
} }
// SetIp sets the value of the Ip parameter // SetIp sets the value of the Ip parameter
func (v *vbanStream) SetIp(val string) { func (v *stream) SetIp(val string) {
v.setter_string("Ip", val) v.setter_string("Ip", val)
} }
// Port returns the value of the Port parameter // Port returns the value of the Port parameter
func (v *vbanStream) Port() int { func (v *stream) Port() int {
return v.getter_int("Port") return v.getter_int("Port")
} }
// SetPort sets the value of the Port parameter // SetPort sets the value of the Port parameter
func (v *vbanStream) SetPort(val int) { func (v *stream) SetPort(val int) {
v.setter_int("Port", val) v.setter_int("Port", val)
} }
// Sr returns the value of the Sr parameter // Sr returns the value of the Sr parameter
func (v *vbanStream) Sr() int { func (v *stream) Sr() int {
return v.getter_int("Sr") return v.getter_int("Sr")
} }
// SetSr sets the value of the Sr parameter // SetSr sets the value of the Sr parameter
func (v *vbanStream) SetSr(val int) { func (v *stream) SetSr(val int) {
v.setter_int("Sr", val) v.setter_int("Sr", val)
} }
// Channel returns the value of the Channel parameter // Channel returns the value of the Channel parameter
func (v *vbanStream) Channel() int { func (v *stream) Channel() int {
return v.getter_int("Channel") return v.getter_int("Channel")
} }
// SetChannel sets the value of the Channel parameter // SetChannel sets the value of the Channel parameter
func (v *vbanStream) SetChannel(val int) { func (v *stream) SetChannel(val int) {
v.setter_int("Channel", val) v.setter_int("Channel", val)
} }
// Bit returns the value of the Bit parameter // Bit returns the value of the Bit parameter
func (v *vbanStream) Bit() int { func (v *stream) Bit() int {
val := v.getter_int("Bit") val := v.getter_int("Bit")
if val == 1 { if val == 1 {
return 16 return 16
@ -102,7 +102,7 @@ func (v *vbanStream) Bit() int {
} }
// SetBit sets the value of the Bit parameter // SetBit sets the value of the Bit parameter
func (v *vbanStream) SetBit(val int) { func (v *stream) SetBit(val int) {
switch val { switch val {
case 16: case 16:
val = 1 val = 1
@ -116,55 +116,55 @@ func (v *vbanStream) SetBit(val int) {
} }
// Quality returns the value of the Quality parameter // Quality returns the value of the Quality parameter
func (v *vbanStream) Quality() int { func (v *stream) Quality() int {
return v.getter_int("Quality") return v.getter_int("Quality")
} }
// SetQuality sets the value of the Quality parameter // SetQuality sets the value of the Quality parameter
func (v *vbanStream) SetQuality(val int) { func (v *stream) SetQuality(val int) {
v.setter_int("Quality", val) v.setter_int("Quality", val)
} }
// Route returns the value of the Route parameter // Route returns the value of the Route parameter
func (v *vbanStream) Route() int { func (v *stream) Route() int {
return v.getter_int("Route") return v.getter_int("Route")
} }
// SetRoute sets the value of the Route parameter // SetRoute sets the value of the Route parameter
func (v *vbanStream) SetRoute(val int) { func (v *stream) SetRoute(val int) {
v.setter_int("Route", val) v.setter_int("Route", val)
} }
type vbanInStream struct { type VbanInstream struct {
vbanStream stream
} }
func newVbanInStream(i int) iVban { func newVbanInStream(i int) iVban {
vbi := vbanInStream{vbanStream{iRemote{fmt.Sprintf("vban.instream[%d]", i), i}}} vbi := VbanInstream{stream{iRemote{fmt.Sprintf("vban.instream[%d]", i), i}}}
return &vbi return &vbi
} }
// SetSr logs a warning reason read only // SetSr logs a warning reason read only
func (vbi *vbanInStream) SetSr(val int) { func (vbi *VbanInstream) SetSr(val int) {
log.Warn("SR is readonly for vban instreams") log.Warn("SR is readonly for vban instreams")
} }
// SetChannel logs a warning reason read only // SetChannel logs a warning reason read only
func (vbi *vbanInStream) SetChannel(val int) { func (vbi *VbanInstream) SetChannel(val int) {
log.Warn("channel is readonly for vban instreams") log.Warn("channel is readonly for vban instreams")
} }
// SetBit logs a warning reason read only // SetBit logs a warning reason read only
func (vbi *vbanInStream) SetBit(val int) { func (vbi *VbanInstream) SetBit(val int) {
log.Warn("bit is readonly for vban instreams") log.Warn("bit is readonly for vban instreams")
} }
type vbanOutStream struct { type VbanOutStream struct {
vbanStream stream
} }
func newVbanOutStream(i int) iVban { func newVbanOutStream(i int) iVban {
vbo := vbanOutStream{vbanStream{iRemote{fmt.Sprintf("vban.outstream[%d]", i), i}}} vbo := VbanOutStream{stream{iRemote{fmt.Sprintf("vban.outstream[%d]", i), i}}}
return &vbo return &vbo
} }