From 2a9b925623654739befa0d00d48395f88e77d03e Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Thu, 15 Dec 2022 00:00:20 +0000 Subject: [PATCH] add Run() to Remote type. Launches Voicemeeter GUI pooler no longer defined as singleton --- publisher.go | 28 +++++++++++++--------------- remote.go | 11 +++++++++++ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/publisher.go b/publisher.go index de20080..80dd50e 100644 --- a/publisher.go +++ b/publisher.go @@ -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 } diff --git a/remote.go b/remote.go index 0a24cf3..cf6c9d1 100644 --- a/remote.go +++ b/remote.go @@ -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()