move bus commands into bus struct

update the cli
This commit is contained in:
2026-01-31 20:55:36 +00:00
parent 19779ae4c1
commit 615a95d9da
3 changed files with 75 additions and 62 deletions

View File

@@ -16,6 +16,7 @@ type parser interface {
type Client struct {
engine
Strip *Strip
Bus *Bus
}
// NewClient creates a new XAirClient instance
@@ -56,6 +57,7 @@ func NewClient(mixerIP string, mixerPort int, opts ...Option) (*Client, error) {
engine: *e,
}
c.Strip = NewStrip(*c)
c.Bus = NewBus(*c)
return c, nil
}
@@ -106,61 +108,6 @@ func (c *Client) RequestStatus() error {
return c.SendMessage("/status")
}
/* BUS METHODS */
// BusMute requests the current mute status for a bus
func (c *Client) BusMute(bus int) (bool, error) {
formatter := c.addressMap["bus"]
address := fmt.Sprintf(formatter, bus) + "/mix/on"
err := c.SendMessage(address)
if err != nil {
return false, err
}
resp := <-c.respChan
val, ok := resp.Arguments[0].(int32)
if !ok {
return false, fmt.Errorf("unexpected argument type for bus mute value")
}
return val == 0, nil
}
// SetBusMute sets the mute status for a specific bus (1-based indexing)
func (c *Client) SetBusMute(bus int, muted bool) error {
formatter := c.addressMap["bus"]
address := fmt.Sprintf(formatter, bus) + "/mix/on"
var value int32
if !muted {
value = 1
}
return c.SendMessage(address, value)
}
// BusFader requests the current fader level for a bus
func (c *Client) BusFader(bus int) (float64, error) {
formatter := c.addressMap["bus"]
address := fmt.Sprintf(formatter, bus) + "/mix/fader"
err := c.SendMessage(address)
if err != nil {
return 0, err
}
resp := <-c.respChan
val, ok := resp.Arguments[0].(float32)
if !ok {
return 0, fmt.Errorf("unexpected argument type for bus fader value")
}
return mustDbFrom(float64(val)), nil
}
// SetBusFader sets the fader level for a specific bus (1-based indexing)
func (c *Client) SetBusFader(bus int, level float64) error {
formatter := c.addressMap["bus"]
address := fmt.Sprintf(formatter, bus) + "/mix/fader"
return c.SendMessage(address, float32(mustDbInto(level)))
}
/* MAIN LR METHODS */
// MainLRFader requests the current main L/R fader level