33 lines
687 B
Go
33 lines
687 B
Go
package pulsectl
|
|
|
|
import (
|
|
"os/exec"
|
|
"fmt"
|
|
"path"
|
|
)
|
|
|
|
|
|
type PipeSourceConfig struct {
|
|
PipeName string
|
|
PipeDir string
|
|
Encoding string
|
|
Bitrate int
|
|
Channels int
|
|
}
|
|
|
|
func LoadPipeSource(config PipeSourceConfig) error {
|
|
cmd := exec.Command("pactl", "load-module", "module-pipe-source",
|
|
fmt.Sprintf("source_name=%s", config.PipeName),
|
|
fmt.Sprintf("file=%s", path.Join(config.PipeDir, config.PipeName)),
|
|
fmt.Sprintf("format=%s", config.Encoding),
|
|
fmt.Sprintf("rate=%d", config.Bitrate),
|
|
fmt.Sprintf("channels=%d", config.Channels),
|
|
)
|
|
return cmd.Run()
|
|
}
|
|
|
|
func UnloadPipeSource() error {
|
|
cmd := exec.Command("pactl", "unload-module", "module-pipe-source")
|
|
return cmd.Run()
|
|
}
|