#!/bin/sh ### BEGIN INIT INFO # Provides: radio_ctl # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Connect GPIO to vlc playlist # Description: Connect GPIO to vlc playlist ### END INIT INFO daemon_NAME="radio_ctl" export PIDFILE=/tmp/radio_ctl PATH="/sbin:/bin:/usr/sbin:/usr/bin" filename="/home/pi/webradio_station/station.txt" #install #--------- #sudo cp radio_ctl /etc/init.d/. && sudo chmod a+x /etc/init.d/radio_ctl #sudo update-rc.d radio_ctl defaults #to uninstall #--------- #sudo update-rc.d -f radio_ctl remove . /lib/lsb/init-functions d_start () { #On attend la connection WIFI avant de se lancer while [ true ] do ping -t1 -w1 -c1 192.168.1.1 > /dev/null if [ $? = "0" ]; then break fi sleep 10 done V=1 FM=0 VOLD=0 FMOLD=-1 echo 23 > /sys/class/gpio/export echo 24 > /sys/class/gpio/export echo 25 > /sys/class/gpio/export echo 12 > /sys/class/gpio/export echo 13 > /sys/class/gpio/export echo 26 > /sys/class/gpio/export while [ true ] do [ `cat /sys/class/gpio/gpio23/value` = "1" ] && V=1 [ `cat /sys/class/gpio/gpio24/value` = "1" ] && V=2 [ `cat /sys/class/gpio/gpio25/value` = "1" ] && V=3 [ `cat /sys/class/gpio/gpio12/value` = "1" ] && V=4 [ `cat /sys/class/gpio/gpio13/value` = "1" ] && V=5 [ `cat /sys/class/gpio/gpio26/value` = "1" ] && FM=1 [ `cat /sys/class/gpio/gpio26/value` = "0" ] && FM=0 if [ $VOLD != $V -o $FMOLD != $FM ]; then VOLD=$V FMOLD=$FM if [ $FM = 0 ]; then [ $VOLD = 1 ] && echo "station 1" && LINE=`sed -n 1p $filename` [ $VOLD = 2 ] && echo "station 2" && LINE=`sed -n 2p $filename` [ $VOLD = 3 ] && echo "station 3" && LINE=`sed -n 3p $filename` [ $VOLD = 4 ] && echo "station 4" && LINE=`sed -n 4p $filename` [ $VOLD = 5 ] && echo "station 5" && LINE=`sed -n 5p $filename` else [ $VOLD = 1 ] && echo "station 6" && LINE=`sed -n 6p $filename` [ $VOLD = 2 ] && echo "station 7" && LINE=`sed -n 7p $filename` [ $VOLD = 3 ] && echo "station 8" && LINE=`sed -n 8p $filename` [ $VOLD = 4 ] && echo "station 9" && LINE=`sed -n 9p $filename` [ $VOLD = 5 ] && echo "station 10" && LINE=`sed -n 10p $filename` fi echo $LINE killall vlc /usr/bin/vlc --intf dummy $LINE & sleep 10 fi sleep 0.1 done } d_stop () { if [ -e $PIDFILE ]; then kill `cat $PIDFILE` rm -f $PIDFILE fi } case "$1" in start) if [ -e $PIDFILE ]; then log_daemon_msg "Daemon $daemon_NAME already running" log_end_msg $? else log_daemon_msg "Starting system $daemon_NAME Daemon" log_end_msg $? d_start & echo $! > $PIDFILE fi ;; stop) if [ -e $PIDFILE ]; then log_daemon_msg "Stopping system $daemon_NAME Daemon" log_end_msg $? d_stop fi ;; restart|reload|force-reload) d_stop d_start ;; force-stop) d_stop killall -q $daemon_NAME || true sleep 2 killall -q -9 $daemon_NAME || true ;; status) status_of_proc "$daemon_NAME" && exit 0 || exit $? ;; *) echo "Usage: /etc/init.d/$daemon_NAME {start|stop|force-stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0