hdhwx42 wrote: 
> Hello,
> 
> to start the player after "hard boot" I modified the "squeezelite_initd"
> file.
> 
> Before - you have to setup following settings (over your piCorePlayer
> WEB interface):
> a) NAME of your piCorePlayer
> b) ServerIP of your SqueezeServer
> c) MAC address of your piCorePlayer
> 
> After all don't forget to backup your squeezelite_initd with:
> "*filetool.sh -b*"
> 
> For me it works. 
> 
> Best regards
> 
> 
> --->
> 
> #!/bin/sh
> 
> #If no config file is provided, the options can be given here, like:
> #OUTPUT='-o default:CARD=ALSA'  
> #NAME='-n SqueezelitePlayerName'
> #ETC...
> 
> #Read from config file..
> #. /mnt/mmcblk0p1/tce/OliWeb-master/ivySox/picocgi/Config.cfg
> . /usr/local/sbin/config.cfg
> 
> # SQUEEZEBOX SERVER PORT FOR SENDING PLAY AND POWER OFF COMMANDS
> SB_SERVER_CLI_PORT=\"9090\"
> 
> 
> #Check if variable is present and then add the correct option in front
> if [[ X"" = X"$NAME" ]]; then NAME=""; else *SL_NAME="$NAME";* NAME="-n
> $NAME"; fi
> if [[ X"" = X"$OUTPUT" ]]; then OUTPUT=""; else OUTPUT="-o $OUTPUT"; fi
> if [[ X"" = X"$ALSA_PARAMS" ]]; then ALSA_PARAMS=""; else
> ALSA_PARAMS="-a $ALSA_PARAMS"; fi
> if [[ X"" = X"$BUFFER_SIZE" ]]; then BUFFER_SIZE=""; else
> BUFFER_SIZE="-b $BUFFER_SIZE"; fi
> if [[ X"" = X"$_CODEC" ]]; then _CODEC=""; else _CODEC="-c $_CODEC"; fi
> if [[ X"" = X"$PRIORITY" ]]; then PRIORITY=""; else PRIORITY="-p
> $PRIORITY"; fi
> if [[ X"" = X"$MAX_RATE" ]]; then MAX_RATE=""; else MAX_RATE="-r
> $MAX_RATE"; fi
> if [[ X"" = X"$UPSAMPLE" ]]; then UPSAMPLE=""; else UPSAMPLE="-R
> $UPSAMPLE"; fi
> if [[ X"" = X"$MAC_ADDRESS" ]]; then MAC_ADDRESS=""; else
> *SL_MAC_ADDRESS="$MAC_ADDRESS";* MAC_ADDRESS="-m $MAC_ADDRESS"; fi
> if [[ X"" = X"$SERVER_IP" ]]; then SERVER_IP=""; else
> *SB_SERVER_IP="$SERVER_IP";* SERVER_IP="-s $SERVER_IP"; fi
> if [[ X"" = X"$LOGLEVEL" ]]; then LOGLEVEL=""; else LOGLEVEL="-d
> $LOGLEVEL"; fi
> if [[ X"" = X"$DSDOUT" ]]; then DSDOUT=""; else DSDOUT="-D $DSDOUT"; fi
> if [[ X"" = X"$VISULIZER" ]]; then VISULIZER=""; else VISULIZER="-V
> $VISULIZER"; fi
> if [[ X"" = X"$OTHER" ]]; then OTHER=""; else OTHER="$OTHER"; fi
> if [[ X"" = X"$LOGFILE" ]]; then LOGFILE=""; else LOGFILE="-f
> /mnt/sda1/$LOGFILE"; fi
> 
> #echo "strings er:" $NAME $OUTPUT $ALSA_PARAMS $BUFFER_SIZE $PRIORITY
> $MAX_RATE $UPSAMPLE $MAC_ADDRESS $SERVER_IP $LOGLEVEL $LOGFILE $DSDOUT
> $VISULIZER $OTHER
> 
> #
> # Function that starts the daemon/service
> #
> do_start()
> {
> start-stop-daemon --start --quiet -b -m -p/var/run/squeezelitehf.pid
> --exec /mnt/mmcblk0p2/tce/squeezelite-armv6hf -- $NAME $OUTPUT
> $ALSA_PARAMS $BUFFER_SIZE $_CODEC $PRIORITY $MAX_RATE $UPSAMPLE
> $MAC_ADDRESS $SERVER_IP $LOGLEVEL $LOGFILE $OTHER $VISULIZER $DSDOUT 
> 
> # next commands can only be done if Squeezebox server IP is set
> if  [ ! -z "$SB_SERVER_IP" ]; then
> echo "Wait until player is connected to Squeezebox server before
> sending play command"
> for i in $(seq 1 10)
> do
> PLAYERCONNECTED=$(printf "$SL_NAME connected ?\nexit\n" | nc
> $SB_SERVER_IP $SB_SERVER_CLI_PORT  | tr -s ' '| cut -d ' ' -f3)
> if [ "$PLAYERCONNECTED" == "1" ]
> then
> echo "Player connected to Squeezebox server after $i seconds"
> break
> fi
> echo "Not connected after $i seconds..."
> sleep 1
> done
> 
> if [ "$PLAYERCONNECTED" == "1" ]
> then
> # connected
> 
> # First send power-on command to squeezebox server
> echo "Sending power on command for player ${SL_NAME}
> (${SL_MAC_ADDRESS}) to Squeezebox server (${SB_SERVER_IP}
> ${SB_SERVER_CLI_PORT})"
> printf "$SL_MAC_ADDRESS power 1\nexit\n" | nc $SB_SERVER_IP
> $SB_SERVER_CLI_PORT > /dev/null
> 
> # start do_play
> do_play
> else
> echo "Could not send play command to player $SL_NAME on
> Squeezebox server $SB_SERVER_IP"
> fi
> 
> fi
> }
> 
> #
> # Function for telling the player to start playing at a certain volume
> (optional)
> #
> # cronjob:
> #0 7 * * 1-5 sudo /etc/init.d/squeezelite play 40
> #
> do_play()
> {
> VOLUME=$1
> # This function only works if the Squeezebox server IP is set
> if  [ ! -z "$SB_SERVER_IP" ]; then
> echo "Sending play command to Squeezebox server"
> printf "$SL_NAME play\nexit\n" | nc $SB_SERVER_IP
> $SB_SERVER_CLI_PORT > /dev/null
> if  [ ! -z "$1" ]; then
> # volume has to be set
> do_set_volume "$VOLUME"
> fi
> else
> echo "The IP address of the Squeezebox server is not set
> (variable: SB_SERVER_IP should be set)."
> echo " This is needed for the do_play function."
> fi
> }
> 
> #
> # Function to set the volume
> #
> # cronjob:
> #0 7 * * 1-5 sudo /etc/init.d/squeezelite set_volume 40
> #
> do_set_volume()
> {
> VOLUME=$1
> # This function only works if the Squeezebox server IP is set
> if  [ ! -z "$SB_SERVER_IP" ]; then
> if  [ ! -z "$1" ]; then
> # volume has to be set
> printf "$SL_NAME mixer volume ${VOLUME}\nexit\n" | nc
> $SB_SERVER_IP $SB_SERVER_CLI_PORT
> else
> echo "ERROR: set_volume needs a volume as a parameter, for
> example: /etc/init.d/squeezelite set_volume 40"
> fi
> else
> echo "The IP address of the Squeezebox server is not set
> (variable: SB_SERVER_IP should be set)."
> echo "This is needed for the do_set_volume function."
> fi
> }
> 
> 
> 
> #
> # main
> #
> case "$1" in
> start)
> echo "Starting Squeezelite"
> do_start
> ;;
> stop)
> echo "Stopping Squeezelite"
> start-stop-daemon --stop --quiet --pidfile
> /var/run/squeezelitehf.pid
> sudo rm -f /var/run/squeezelitehf.pid
> ;;
> *)
> echo "Usage: /usr/local/etc/init.d/squeezelitehf {start|stop}"
> exit 1
> ;;
> esac
> exit 0
> 
> 
> <---

Thanks hdhwx42,

This gives me something to work with.

BTW: We don't use squeezelite_initd in later version of piCorePlayer.

regards
Greg


------------------------------------------------------------------------
Greg Erskine's Profile: http://forums.slimdevices.com/member.php?userid=7403
View this thread: http://forums.slimdevices.com/showthread.php?t=97803

_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix

Reply via email to