diff options
Diffstat (limited to 'abs/core/runit-scripts/runitscripts/services/remotes')
-rwxr-xr-x | abs/core/runit-scripts/runitscripts/services/remotes/run | 138 |
1 files changed, 109 insertions, 29 deletions
diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run index 2248322..4040d7e 100755 --- a/abs/core/runit-scripts/runitscripts/services/remotes/run +++ b/abs/core/runit-scripts/runitscripts/services/remotes/run @@ -1,8 +1,6 @@ #!/bin/bash - exec 2>&1 export TERM=linux - . /etc/rc.conf . /etc/rc.d/functions . /usr/MythVantage/bin/install_functions.sh @@ -16,8 +14,6 @@ fi echo "`date` --- run started" >> $LOG - - #What is done in this file may not be enough to start your specific remote. #If that is true of your remote place your remote startup commands in: # /etc/runit/lirc.sh @@ -32,30 +28,30 @@ then else . /etc/systemconfig stat_runit "Starting remotes" - + [ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime [ -e /var/run/lirc ] || mkdir -p /var/run/lirc - + num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l ` num_lirc=$((num_lirc-1)) - + serial_port="" - - if [ x$ReceiverType = xSerial ] + + if [ x$ReceiverType = xserial ] then serial_port=$ReceiverSerialport - elif [ x$HostBlasterType = xSerial ] + elif [ x$HostBlasterType = xserial ] then serial_port=$HostSerialPort_blasterlirc fi - + if [ -n "$serial_port" ] then #/dev/ttyS0 (COM1), port 0x3f8, irq 4 #/dev/ttyS1 (COM2), port 0x2f8, irq 3 #/dev/ttyS2 (COM3), port 0x3e8, irq 4 #/dev/ttyS3 (COM4), port 0x2e8, irq 3 - + case $serial_port in ttyS0) FLAGS="io=0x3f8 irq=4" @@ -75,13 +71,14 @@ else /sbin/modprobe lirc_serial $FLAGS sleep 0.5 fi - + if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] then CMD="/usr/sbin/lircd -r -n --driver=commandir" printhl " Using commandir" echo $CMD >>$LOG $CMD >>$LOG 2>>$LOG + elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] then sv start igdaemon @@ -89,6 +86,7 @@ else printhl " Using iguanaIR usb" echo $CMD >>$LOG $CMD >>$LOG 2>>$LOG + elif [ x$ReceiverType = "xSiliconDust_HDHR" ] then # if using the SiliconDust_HDHR as an I/R Receiver @@ -96,34 +94,116 @@ else printhl " Using SiliconDust on port 5000" echo $CMD >>$LOG $CMD >>$LOG 2>>$LOG + else - LASTCMD="" - - for i in `seq 1 $num_lirc` - do - CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" - printhl " Device $i" - echo $CMD >>$LOG - $CMD >>$LOG 2>>$LOG - LASTCMD="--connect=localhost:876$i $LASTCMD " - done - - echo $LASTCMD >>$LOG - if [ -f /etc/remote.run ] then #program must not terminate. - stat_runit "Starting remotes from /etc/remote.run" - LCMD="/etc/remote.run $LASTCMD" + LCMD="/etc/remote.run" echo "Starting remotes from $LCMD" >>$LOG exec $LCMD >>$LOG 2>>$LOG else + #/etc/remote.run not found, carry one with normal init + LASTCMD="" + USE_BLASTER="False" + DEFINED_RECEIVER="False" + + case x$ReceiverType in + xmce) + IRNODE=/dev/remotes/mce_lirc + DEFINED_RECEIVER="True" + LASTCMD="--connect=localhost:8761" + ;; + xserial) + IRNODE=/dev/remotes/serial_lirc + DEFINED_RECEIVER="True" + LASTCMD="--connect=localhost:8761" + ;; + xNone) + IRNODE='None' + DEFINED_RECEIVER="False" + ;; + xstreamzap) + IRNODE=/dev/remotes/streamzap_lirc + DEFINED_RECEIVER="True" + LASTCMD="--connect=localhost:8761" + ;; + xhd_pvr) + IRNODE=/dev/remotes/hdpvr_lirc + DEFINED_RECEIVER="True" + LASTCMD="--connect=localhost:8761" + ;; + + Default|*) + DEFINED_RECEIVER="False" + for i in `seq 1 $num_lirc` + do + CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" + printhl " Device $i" + echo $CMD >>$LOG + $CMD >>$LOG 2>>$LOG + LASTCMD="--connect=localhost:876$i $LASTCMD " + done + ;; + esac + + #find valid blaster device and make it the LCMD + # Receiver, Serial, MCE, NONE + case x$HostBlasterType in + xmce) + BLASTERNODE=/dev/remotes/mce_lirc + USE_BLASTER="True" + ;; + xserial) + BLASTERNODE=/dev/remotes/serial_lirc + USE_BLASTER="True" + ;; + xNone) + BLASTERNODE='None' + USE_BLASTER="False" + ;; + xReceiver) + BLASTERNODE=$IRNODE + USE_BLASTER="True" + DEFINED_RECEIVER="False" + ;; + xhd_pvr) + BLASTERNODE=/dev/remotes/hdpvr_lirc + USE_BLASTER="True" + esac + + + if [ x$USE_BLASTER = xTrue -a x$DEFINED_RECEIVER = xTrue ] + then + #start receiver + #start blaster chain + CMD="/usr/sbin/lircd -r -d $IRNODE --output=/var/run/lirc/lircd1 --pidfile=/var/run/lircd1.pid --listen=8761" + LCMD="/usr/sbin/lircd -r -n -d $BLASTERNODE --output /var/run/lirc/lircd $LASTCMD" + echo $CMD >>$LOG + $CMD >>$LOG 2>>$LOG + + elif [ x$USE_BLASTER = xTrue ] + then + #start only the blaster + LCMD="/usr/sbin/lircd -r -n -d $BLASTERNODE --output /var/run/lirc/lircd $LASTCMD" + + elif [ x$DEFINED_RECEIVER = xTrue ] + then + #start reciever + LCMD="/usr/sbin/lircd -r -n -d $IRNODE --output /var/run/lirc/lircd" + + else + #default case of /dev/lirc0 + LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" + fi + + echo $LASTCMD >>$LOG echo "Disable in kernel remote driver" >>$LOG in_kernel_support "disable" - LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" echo "Starting remotes from $LCMD" >>$LOG exec $LCMD >>$LOG 2>>$LOG + fi fi fi |