#!/bin/sh
# rcrsn51 2013-10-06
# based on greengeek's randomizer

export TEXTDOMAIN=peasymp3
export OUTPUT_CHARSET=UTF-8

export PIDFILE="/tmp/autoplay.pid"  	#for Quit
export PIDFILE2="/tmp/autoplay.pid2"	#for Pause
export TMPFOLDER="/tmp/autoplaytmp"	#for Randomizing
export MODEFILE="/tmp/peasymp3.mode"    #for Repeat
export SOURCE

DOPLAY () {
  while [ 1 ]; do
   if [ $SOURCE = "/tmp/peasycdtmp" ]; then
    peasymp3 $SOURCE -b
   else 
    rm -rf $TMPFOLDER
    mkdir $TMPFOLDER
    find -L "$SOURCE" -not -type d | while read TRACK; do
      ln -s "$TRACK" $TMPFOLDER/$RANDOM"-""$(basename "$TRACK")"
    done
    peasymp3 $TMPFOLDER -b
   fi
  done
}
export -f DOPLAY

PLAY () {
  [ -f $PIDFILE ] && exit
  DOPLAY &
  echo $! > $PIDFILE
}
export -f PLAY

PAUSE () {
  PID=$(pidof aplay)
  [ -z "$PID" ] && PID=$(pidof ffplay| awk '{print $NF}')
  if [ -n "$PID" ]; then
    kill -STOP $PID
    echo $PID > $PIDFILE2
  fi
}
export -f PAUSE

RESUME () {
  if [ -f $PIDFILE2 ]; then
    kill -CONT $(cat $PIDFILE2) 2>/dev/null
    rm $PIDFILE2
  fi
}
export -f RESUME

SKIP () {		#skip a track
  RESUME
  echo "regular" > $MODEFILE
  sync
  killall lame aplay ffplay timidity
}
export -f SKIP

REPEAT () {
  echo "repeat" > $MODEFILE
  sync
}
export -f REPEAT

##########################

if [ -n "$(pidof peasymp3)" ]; then
  Xdialog --title " " --msgbox "$(gettext 'PeasyMP3 is already running!')" 0 0
  exit
fi

if [ $# -gt 0 -a -d "$1" ]; then
  SOURCE=$1
else
  exit
fi

export PROG="
<window title=\"PeasyMP3 AutoPlay\">
<vbox>
  <hbox>
    <button>
      <label>$(gettext 'Pause')</label>
      <action>PAUSE</action>
    </button>
    <button>
      <label>$(gettext 'Resume')</label>
      <action>RESUME</action>
    </button>
    <button>
      <label>$(gettext 'Skip')</label>
      <action>SKIP</action>
    </button>
    <button>
      <label>$(gettext 'Repeat')</label>
      <action>REPEAT</action>
    </button>
    <button>
      <label>$(gettext 'Volume')</label>
      <action>rxvt -e alsamixer &</action>
    </button>
    <button>
      <label>$(gettext 'Quit')</label>
    </button>
  </hbox>
 </vbox>
</window>
"

rm $PIDFILE
PLAY
gtkdialog3 --program PROG

RESUME
kill $(cat $PIDFILE)
rm $PIDFILE
killall peasymp3 lame aplay ffplay timidity
rm -rf $TMPFOLDER 
