set log level to info in examples

add verbose flag to vm-cli example

update readme for vm-cli example
This commit is contained in:
onyx-and-iris
2022-09-29 18:05:21 +01:00
parent 3ab5daa61c
commit 6605d6e62d
9 changed files with 86 additions and 31 deletions

View File

@@ -6,18 +6,19 @@ A simple voicemeeter-cli program. Offers ability to toggle, get and set paramete
Toggle with `!` prefix, get by excluding `=` and set by including `=`. Mix and match arguments.
You may pass an optional flag -kind to set the kind of Voicemeeter. Defaults to banana.
You may pass the following optional flags:
You may pass an optional flag -delay to set a delay on the getters. Defaults to 20ms.
- -v: (-verbose) to toggle console output. Defaults to false.
- -k: (-kind) to set the kind of Voicemeeter. Defaults to banana.
- -d: (-delay) to set a delay on the getters. Defaults to 20ms.
for example:
`go run .\main.go -kind=potato -delay=18 strip[0].mute=0 strip[0].mute !strip[0].mute strip[0].mute bus[0].gain=-8.8 command.lock=1`
`go run .\main.go -v -k=potato -d=25 strip[0].mute=0 strip[0].mute !strip[0].mute strip[0].mute bus[0].gain=-8.8 command.lock=1`
Expected output:
```
Logged into Voicemeeter potato
Running command strip[0].mute=0
Value of strip[0].mute is: 0
Toggling strip[0].mute

View File

@@ -3,31 +3,42 @@ package main
import (
"flag"
"fmt"
"log"
"strings"
log "github.com/sirupsen/logrus"
"github.com/onyx-and-iris/voicemeeter"
)
var (
kind string
delay int
verbose bool
)
func main() {
kindId := flag.String("kind", "banana", "kind of voicemeeter")
delay := flag.Int("delay", 20, "delay between commands")
flag.StringVar(&kind, "kind", "banana", "kind of voicemeeter")
flag.StringVar(&kind, "k", "banana", "kind of voicemeeter (shorthand)")
flag.IntVar(&delay, "delay", 20, "delay between commands")
flag.IntVar(&delay, "d", 20, "delay between commands (shorthand)")
flag.BoolVar(&verbose, "verbose", false, "toggle console output")
flag.BoolVar(&verbose, "v", false, "toggle console output (shorthand)")
flag.Parse()
vm, err := vmConnect(kindId, delay)
vm, err := vmConnect(kind, delay)
if err != nil {
log.Fatal(err)
}
defer vm.Logout()
err = runCommands(vm)
err = runCommands(vm, verbose)
if err != nil {
fmt.Println(err)
}
}
func vmConnect(kindId *string, delay *int) (*voicemeeter.Remote, error) {
vm, err := voicemeeter.NewRemote(*kindId, *delay)
func vmConnect(kind string, delay int) (*voicemeeter.Remote, error) {
vm, err := voicemeeter.NewRemote(kind, delay)
if err != nil {
return nil, err
}
@@ -40,7 +51,7 @@ func vmConnect(kindId *string, delay *int) (*voicemeeter.Remote, error) {
return vm, nil
}
func runCommands(vm *voicemeeter.Remote) error {
func runCommands(vm *voicemeeter.Remote, verbose bool) error {
for _, arg := range flag.Args() {
if arg[0] == '!' {
val, err := vm.GetFloat(arg[1:])
@@ -49,10 +60,14 @@ func runCommands(vm *voicemeeter.Remote) error {
return err
}
vm.SetFloat(arg[1:], 1-val)
fmt.Println("Toggling", arg[1:])
if verbose {
fmt.Println("Toggling", arg[1:])
}
} else {
if strings.Contains(arg, "=") {
fmt.Println("Running command", arg)
if verbose {
fmt.Println("Running command", arg)
}
err := vm.SendText(arg)
if err != nil {
err = fmt.Errorf("unable to set %s", arg)
@@ -66,9 +81,13 @@ func runCommands(vm *voicemeeter.Remote) error {
err = fmt.Errorf("unable to get %s", arg)
return err
}
fmt.Println("Value of", arg, "is:", valS)
if verbose {
fmt.Println("Value of", arg, "is:", valS)
}
} else {
fmt.Println("Value of", arg, "is:", valF)
if verbose {
fmt.Println("Value of", arg, "is:", valF)
}
}
}
}