|
|
|
@ -8,6 +8,7 @@ import (
|
|
|
|
|
"log"
|
|
|
|
|
"os"
|
|
|
|
|
"syscall"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"github.com/aarzilli/nucular/font"
|
|
|
|
|
|
|
|
|
@ -66,19 +67,54 @@ func main() {
|
|
|
|
|
go updateCheck(&ui)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
paClient, err := pulseaudio.NewClient()
|
|
|
|
|
defer paClient.Close()
|
|
|
|
|
go paConnectionWatchdog(&ui)
|
|
|
|
|
|
|
|
|
|
ui.paClient = paClient
|
|
|
|
|
wnd := nucular.NewMasterWindowSize(0, "NoiseTorch", image.Point{550, 300}, func(w *nucular.Window) {
|
|
|
|
|
updatefn(w, &ui)
|
|
|
|
|
})
|
|
|
|
|
ui.masterWindow = &wnd
|
|
|
|
|
style := style.FromTheme(style.DarkTheme, 2.0)
|
|
|
|
|
style.Font = font.DefaultFont(16, 1)
|
|
|
|
|
wnd.SetStyle(style)
|
|
|
|
|
wnd.Main()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func dumpLib() string {
|
|
|
|
|
f, err := ioutil.TempFile("", "librnnoise-*.so")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("Couldn't open temp file for librnnoise\n")
|
|
|
|
|
}
|
|
|
|
|
f.Write(libRNNoise)
|
|
|
|
|
log.Printf("Wrote temp librnnoise to: %s\n", f.Name())
|
|
|
|
|
return f.Name()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func removeLib(file string) {
|
|
|
|
|
err := os.Remove(file)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Printf("Couldn't delete temp librnnoise: %v\n", err)
|
|
|
|
|
}
|
|
|
|
|
log.Printf("Deleted temp librnnoise: %s\n", file)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func paConnectionWatchdog(ui *uistate) {
|
|
|
|
|
for {
|
|
|
|
|
if ui.paClient.Connected() {
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
paClient, err := pulseaudio.NewClient()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("Couldn't create pulseaudio client: %v\n", err)
|
|
|
|
|
log.Printf("Couldn't create pulseaudio client: %v\n", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ui.paClient = paClient
|
|
|
|
|
go updateNoiseSupressorLoaded(paClient, &ui.noiseSupressorState)
|
|
|
|
|
|
|
|
|
|
sources, err := paClient.Sources()
|
|
|
|
|
sources, err := ui.paClient.Sources()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("Couldn't fetch sources from pulseaudio\n")
|
|
|
|
|
log.Printf("Couldn't fetch sources from pulseaudio\n")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inputs := make([]input, 0)
|
|
|
|
@ -103,31 +139,6 @@ func main() {
|
|
|
|
|
|
|
|
|
|
ui.inputList = inputs
|
|
|
|
|
|
|
|
|
|
wnd := nucular.NewMasterWindowSize(0, "NoiseTorch", image.Point{550, 300}, func(w *nucular.Window) {
|
|
|
|
|
updatefn(w, &ui)
|
|
|
|
|
})
|
|
|
|
|
ui.masterWindow = &wnd
|
|
|
|
|
style := style.FromTheme(style.DarkTheme, 2.0)
|
|
|
|
|
style.Font = font.DefaultFont(16, 1)
|
|
|
|
|
wnd.SetStyle(style)
|
|
|
|
|
wnd.Main()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func dumpLib() string {
|
|
|
|
|
f, err := ioutil.TempFile("", "librnnoise-*.so")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("Couldn't open temp file for librnnoise\n")
|
|
|
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
|
}
|
|
|
|
|
f.Write(libRNNoise)
|
|
|
|
|
log.Printf("Wrote temp librnnoise to: %s\n", f.Name())
|
|
|
|
|
return f.Name()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func removeLib(file string) {
|
|
|
|
|
err := os.Remove(file)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Printf("Couldn't delete temp librnnoise: %v\n", err)
|
|
|
|
|
}
|
|
|
|
|
log.Printf("Deleted temp librnnoise: %s\n", file)
|
|
|
|
|
}
|
|
|
|
|