mirror of
https://github.com/onyx-and-iris/voicemeeter.git
synced 2026-04-18 13:33:30 +00:00
obs example now reads conn info from toml.
vm, obs connect logic moved into separate functions. README added for obs example.
This commit is contained in:
@@ -4,11 +4,14 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
"os"
|
||||
|
||||
"github.com/onyx-and-iris/voicemeeter-api-go"
|
||||
|
||||
"github.com/andreykaipov/goobs"
|
||||
"github.com/andreykaipov/goobs/api/events"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
)
|
||||
|
||||
func onStart(vm *voicemeeter.Remote) {
|
||||
@@ -39,18 +42,13 @@ func onEnd(vm *voicemeeter.Remote) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
vm, err := voicemeeter.NewRemote("potato", 0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = vm.Login()
|
||||
vm, err := vmConnect()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer vm.Logout()
|
||||
|
||||
obs, err := goobs.New("localhost:4455", goobs.WithPassword("mystrongpass"))
|
||||
obs, err := obsConnect()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -79,3 +77,49 @@ func main() {
|
||||
|
||||
time.Sleep(30 * time.Second)
|
||||
}
|
||||
|
||||
func vmConnect() (*voicemeeter.Remote, error) {
|
||||
vm, err := voicemeeter.NewRemote("potato", 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = vm.Login()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return vm, nil
|
||||
}
|
||||
|
||||
func obsConnect() (*goobs.Client, error) {
|
||||
type (
|
||||
connection struct {
|
||||
Host string
|
||||
Port int
|
||||
Password string
|
||||
}
|
||||
|
||||
config struct {
|
||||
Connection map[string]connection
|
||||
}
|
||||
)
|
||||
|
||||
f := "config.toml"
|
||||
if _, err := os.Stat(f); err != nil {
|
||||
f = "./config.toml"
|
||||
}
|
||||
|
||||
var c config
|
||||
_, err := toml.DecodeFile(f, &c.Connection)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
conn := c.Connection["connection"]
|
||||
|
||||
obs, err := goobs.New(fmt.Sprintf("%s:%d", conn.Host, conn.Port), goobs.WithPassword(conn.Password))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return obs, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user