mirror of
https://github.com/onyx-and-iris/xair-cli.git
synced 2026-04-08 18:03:37 +00:00
add persistent flag --kind
use it to configure the client
This commit is contained in:
@@ -7,3 +7,12 @@ var xairAddressMap = map[string]string{
|
||||
var x32AddressMap = map[string]string{
|
||||
"bus": "/bus/%02d",
|
||||
}
|
||||
|
||||
func addressMapForMixerKind(kind MixerKind) map[string]string {
|
||||
switch kind {
|
||||
case KindX32:
|
||||
return x32AddressMap
|
||||
default:
|
||||
return xairAddressMap
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ type parser interface {
|
||||
}
|
||||
|
||||
type engine struct {
|
||||
Kind string
|
||||
Kind MixerKind
|
||||
conn *net.UDPConn
|
||||
mixerAddr *net.UDPAddr
|
||||
|
||||
@@ -54,12 +54,13 @@ func NewClient(mixerIP string, mixerPort int, opts ...Option) (*Client, error) {
|
||||
log.Debugf("Local UDP connection: %s ", conn.LocalAddr().String())
|
||||
|
||||
e := &engine{
|
||||
Kind: "xair",
|
||||
conn: conn,
|
||||
mixerAddr: mixerAddr,
|
||||
parser: newParser(),
|
||||
done: make(chan bool),
|
||||
respChan: make(chan *osc.Message, 100),
|
||||
Kind: KindXAir,
|
||||
conn: conn,
|
||||
mixerAddr: mixerAddr,
|
||||
parser: newParser(),
|
||||
addressMap: addressMapForMixerKind(KindXAir),
|
||||
done: make(chan bool),
|
||||
respChan: make(chan *osc.Message, 100),
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
|
||||
19
internal/xair/kinds.go
Normal file
19
internal/xair/kinds.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package xair
|
||||
|
||||
type MixerKind string
|
||||
|
||||
const (
|
||||
KindXAir MixerKind = "xair"
|
||||
KindX32 MixerKind = "x32"
|
||||
)
|
||||
|
||||
func NewMixerKind(kind string) MixerKind {
|
||||
switch kind {
|
||||
case "xair":
|
||||
return KindXAir
|
||||
case "x32":
|
||||
return KindX32
|
||||
default:
|
||||
return KindXAir
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,10 @@
|
||||
package xair
|
||||
|
||||
import "strings"
|
||||
|
||||
type Option func(*engine)
|
||||
|
||||
func WithKind(kind string) Option {
|
||||
if strings.EqualFold(kind, "x32") {
|
||||
return func(c *engine) {
|
||||
c.Kind = kind
|
||||
c.addressMap = x32AddressMap
|
||||
}
|
||||
}
|
||||
return func(c *engine) {
|
||||
c.Kind = "xair"
|
||||
c.addressMap = xairAddressMap
|
||||
return func(e *engine) {
|
||||
e.Kind = MixerKind(kind)
|
||||
e.addressMap = addressMapForMixerKind(e.Kind)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user