]> Sergey Matveev's repositories - vors.git/blobdiff - cmd/client/main.go
vors-vad automatically starts rec
[vors.git] / cmd / client / main.go
index 511c2c0e0d262afd4e6038ada55348cc8e3ce08a98b253bf5384116adf63d9da..44e5f63ee0a873ed6f6c3761249fc87c9a64d0cc88dc1a96cb9d585fbc2aaeec 100644 (file)
@@ -68,14 +68,6 @@ func parseSID(s string) byte {
        return byte(n)
 }
 
-func makeCmd(cmd string) *exec.Cmd {
-       args := strings.Fields(cmd)
-       if len(args) == 1 {
-               return exec.Command(args[0])
-       }
-       return exec.Command(args[0], args[1:]...)
-}
-
 func incr(data []byte) {
        for i := len(data) - 1; i >= 0; i-- {
                data[i]++
@@ -86,14 +78,12 @@ func incr(data []byte) {
        panic("overflow")
 }
 
-const soxParams = "--no-show-progress --buffer 1920 --channels 1 --endian little --encoding signed --rate 48000 --bits 16 --type raw -"
-
 func main() {
        srvAddr := flag.String("srv", "vors.home.arpa:"+strconv.Itoa(vors.DefaultPort),
                "host:TCP/UDP port to connect to")
        srvPubB64 := flag.String("pub", "", "server's public key, Base64")
-       recCmd := flag.String("rec", "rec "+soxParams, "rec command")
-       playCmd := flag.String("play", "play "+soxParams, "play command")
+       recCmd := flag.String("rec", "rec "+vors.SoxParams, "rec command")
+       playCmd := flag.String("play", "play "+vors.SoxParams, "play command")
        vadRaw := flag.Uint("vad", 0, "VAD threshold")
        passwd := flag.String("passwd", "", "protected room's password")
        muteToggle := flag.String("mute-toggle", "", "path to FIFO to toggle mute")
@@ -143,7 +133,7 @@ func main() {
        opusEnc := newOpusEnc()
        var mic io.ReadCloser
        if *recCmd != "" {
-               cmd := makeCmd(*recCmd)
+               cmd := vors.MakeCmd(*recCmd)
                mic, err = cmd.StdoutPipe()
                if err != nil {
                        log.Fatal(err)
@@ -377,7 +367,7 @@ func main() {
                                        playerTx := make(chan []byte, 5)
                                        var cmd *exec.Cmd
                                        if *playCmd != "" {
-                                               cmd = makeCmd(*playCmd)
+                                               cmd = vors.MakeCmd(*playCmd)
                                                player, err = cmd.StdinPipe()
                                                if err != nil {
                                                        log.Fatal(err)