#!/bin/sh

# script to run a menu prompt when having more than 2 players since
# playerctl is bad at managing more than one player at the same time

source $HOME/.config/dmenu/config

command="$@"
[ -z "$command" ] && exit
instances=$(playerctl -l | wc -l)

slock=$(ps -C slock | sed -n '1!p' | awk '{ print $4 }' | sed 's/slock/running/')

if [ "$instances" = "0" ]; then
    exit
elif [ "$instances" -lt "2" ]; then
    playerctl $command
elif [ "$slock" == "running" ]; then
    if [ "$command" == "play-pause" ]; then
        if playerctl status -a | grep -i "Playing" > /dev/null; then
            playerctl pause -a
        else
            playerctl -p mpd $command
        fi
        exit
    fi

    players=$(paste <(playerctl -l) <(playerctl status -a) | grep -v -i mpd | awk '{print $1}')
    if [ ! -z "$players" ]; then
        for player in $players; do
            playerctl -p $player pause
        done
    fi

    playerctl -p mpd $command
else
    choice=$(playerctl -l | $DMENU -p 'Manage:')
    [ -z "$choice" ] && exit
    playerctl -p $choice $command
fi