Skip to content

Commit

Permalink
code cleanup
Browse files Browse the repository at this point in the history
Signed-off-by: Tomkoid <[email protected]>
  • Loading branch information
tomkoid committed May 7, 2024
1 parent 734fe91 commit bd7f9d6
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 45 deletions.
58 changes: 58 additions & 0 deletions internal/audio/monitor.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package audio

import (
"log"

"mrogalski.eu/go/pulseaudio"

"codeberg.org/tomkoid/audstopper/internal/config"
)

func AudioMonitor(c *pulseaudio.Client, config *config.Config) {
outputs, activeIndex, err := c.Outputs()
if err != nil {
c.Close()
log.Fatal(err)
}

// Get the default sink (audio source)
var defaultSink pulseaudio.Output = outputs[activeIndex]

var initialSinkName string = defaultSink.CardID

updateChan, err := c.Updates()
if err != nil {
c.Close()
log.Fatal(err)
}

log.Println("Starting audio monitoring.")

// Monitor the default sink for changes
for {
<-updateChan

// Get the new default sink
outputs, activeIndex, err := c.Outputs()
if err != nil {
c.Close()
log.Fatal(err)
}

defaultSink = outputs[activeIndex]

// Check if the sink name has changed
if defaultSink.CardID != initialSinkName {
log.Printf(
"Audio source changed from %s to %s\n",
initialSinkName,
defaultSink.CardID,
)

// stop audio if mpc or playerctl is running
stopAudio(config)

initialSinkName = defaultSink.CardID
}
}
}
2 changes: 1 addition & 1 deletion internal/audio/stop.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"codeberg.org/tomkoid/audstopper/internal/tools"
)

func StopAudio(config *config.Config) {
func stopAudio(config *config.Config) {
log.Println("Stopping audio.")
// if mpc binary exists on system
if _, err := exec.LookPath("mpc"); err == nil && config.Mpc {
Expand Down
47 changes: 3 additions & 44 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,49 +22,8 @@ func main() {
// Handle program termination
go tools.HandleCleanup(c)

defer c.Close()

outputs, activeIndex, err := c.Outputs()
if err != nil {
log.Fatal(err)
}
// Start audio monitoring
audio.AudioMonitor(c, &config)

// Get the default sink (audio source)
var defaultSink pulseaudio.Output = outputs[activeIndex]

var initialSinkName string = defaultSink.CardID

updateChan, err := c.Updates()
if err != nil {
log.Fatal(err)
}

log.Println("Starting audio monitoring.")

// Monitor the default sink for changes
for {
<-updateChan

// Get the new default sink
outputs, activeIndex, err := c.Outputs()
if err != nil {
log.Fatal(err)
}

defaultSink = outputs[activeIndex]

// Check if the sink name has changed
if defaultSink.CardID != initialSinkName {
log.Printf(
"Audio source changed from %s to %s\n",
initialSinkName,
defaultSink.CardID,
)

// stop audio if mpc or playerctl is running
audio.StopAudio(&config)

initialSinkName = defaultSink.CardID
}
}
defer c.Close()
}

0 comments on commit bd7f9d6

Please sign in to comment.