add Run() to Remote type. Launches Voicemeeter GUI

pooler no longer defined as singleton
This commit is contained in:
onyx-and-iris 2022-12-15 00:00:20 +00:00
parent 68e9654502
commit 2a9b925623
2 changed files with 24 additions and 15 deletions

View File

@ -75,22 +75,20 @@ type pooler struct {
}
func newPooler(k *kind) *pooler {
if p == nil {
p = &pooler{
k: k,
run: true,
event: newEvent(),
pdirtyDone: make(chan bool),
mdirtyDone: make(chan bool),
midiDone: make(chan bool),
ldirtyDone: make(chan bool),
}
go p.done()
go p.parameters()
go p.macrobuttons()
go p.midi()
go p.levels()
p = &pooler{
k: k,
run: true,
event: newEvent(),
pdirtyDone: make(chan bool),
mdirtyDone: make(chan bool),
midiDone: make(chan bool),
ldirtyDone: make(chan bool),
}
go p.done()
go p.parameters()
go p.macrobuttons()
go p.midi()
go p.levels()
return p
}

View File

@ -55,6 +55,17 @@ func (r *Remote) InitPooler() {
r.pooler = newPooler(r.Kind)
}
// Run launches the Voicemeeter GUI for a kind.
func (r *Remote) Run(kindId string) error {
err := runVoicemeeter(kindId)
if err != nil {
return err
}
time.Sleep(time.Second)
clear()
return nil
}
// Type returns the type of Voicemeeter (basic, banana, potato)
func (r *Remote) Type() string {
val, err := getVMType()