From 25f40dc9e03d750e720ba594a06db0e0f51d2eac Mon Sep 17 00:00:00 2001 From: Harvey Tindall Date: Tue, 25 Aug 2020 14:40:56 +0100 Subject: ignore playerctld playerctld displays and controls other players, so including it is pointless. --- main.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 8b7a3ab..77b5da2 100644 --- a/main.go +++ b/main.go @@ -3,14 +3,15 @@ package main import ( "encoding/json" "fmt" - "github.com/godbus/dbus/v5" - flag "github.com/spf13/pflag" "io/ioutil" "log" "net" "os" "sort" "strings" + + "github.com/godbus/dbus/v5" + flag "github.com/spf13/pflag" ) var knownPlayers = map[string]string{ @@ -225,7 +226,6 @@ func (ls List) Swap(i, j int) { ls[i], ls[j] = ls[j], ls[i] } -// Doesn't retain order since sorting if constantly done anyway func (pl *PlayerList) Remove(fullName string) { currentName := pl.list[pl.current].fullName var i int @@ -265,7 +265,8 @@ func (pl *PlayerList) Reload() error { return err } for _, name := range buses { - if strings.HasPrefix(name, INTERFACE) { + // Don't add playerctld, it just duplicates other players + if strings.HasPrefix(name, INTERFACE) && !strings.Contains(name, "playerctld") { pl.New(name) } } @@ -401,7 +402,8 @@ func main() { case string: var pid uint32 conn.BusObject().Call("org.freedesktop.DBus.GetConnectionUnixProcessID", 0, name).Store(&pid) - if strings.Contains(name, INTERFACE) { + // Ignore playerctld again + if strings.Contains(name, INTERFACE) && !strings.Contains(name, "playerctld") { if pid == 0 { // fmt.Println("Removing", name) players.Remove(name) -- cgit v1.2.3