diff options
Diffstat (limited to 'abs/core')
| -rwxr-xr-x | abs/core/LinHES-system/PKGBUILD | 4 | ||||
| -rwxr-xr-x | abs/core/LinHES-system/change_channel.sh | 205 | 
2 files changed, 152 insertions, 57 deletions
| diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD index dc31936..ef6bf08 100755 --- a/abs/core/LinHES-system/PKGBUILD +++ b/abs/core/LinHES-system/PKGBUILD @@ -1,6 +1,6 @@  pkgname=LinHES-system  pkgver=2 -pkgrel=117 +pkgrel=118  arch=('i686' 'x86_64')  MVDIR=$startdir/pkg/usr/LH  BINDIR=$startdir/pkg/usr/bin @@ -110,7 +110,7 @@ md5sums=('5bd4938cf41b63787aa4cdfd76423e09'           '45f46d1f9193c8dde18e56369ec29a1e'           'a8edbe7bc37e9932e8749d9f5f89c16f'           '116b0f62ed4e8dd6e437930deeb6e49e' -         'd173f98728e436a5180f56e888c2bf91' +         '0ca244610ab1f68f70a8af0ddefee277'           'bacc813b48bafcc6fe906e5969930501'           'eb879fee9603a05d5420d4ce8ed9e450'           'f1870a9522c79e6b248fcbf81dec3280' diff --git a/abs/core/LinHES-system/change_channel.sh b/abs/core/LinHES-system/change_channel.sh index 819076a..3337785 100755 --- a/abs/core/LinHES-system/change_channel.sh +++ b/abs/core/LinHES-system/change_channel.sh @@ -1,71 +1,166 @@ -#!/bin/sh +#!/bin/bash  # Maintained by CommandIR Support mini at commandir.com - Comments / Suggestions Welcome.  # Modified for LinHES specifics -echo $@ > /tmp/change_channel.log -if [ $# -lt 2 ] -then -  echo "IR Control Script for LIRC V2.0 -Includes support for CommandIR transmitter selection and lockfile. -The remote codes will be specific to the transmitter number  and matched via /etc/systemconfig -Usage: -$0 TRANSMITTER_NUM (CHANNEL_NUMBER | IR_COMMAND) [DELAY] - -Sends an IR command or sequence of numbers using REMOTE_NAME via emitter -TRANSMITTER_NUM.  DELAY (in seconds) is waited between sending IR commands. - -Example:  Change to channel 123 using emitter 2 with a 0.3s pause between digits: -$0 1 123 .3 - -" -  exit 1 -fi - -if [ $# -eq 3 ] -then - DELAY=$3 -else - DELAY=.2 -fi +echo $@ > /tmp/change_channel.log  . /etc/systemconfig - -  LOCKFILE=/tmp/lirclock  export PATH=/bin:/usr/bin:/usr/local/bin -TRANSMITTER=$1 -#get remote name from system config -tname="HostTransmitproto_$TRANSMITTER" -REMOTE_NAME=${!tname} -if [ x$REMOTE_NAME = "xnone" ] -then -  echo "Please define Transmitters in /etc/systemconfig" -  exit 1 -fi -cmd="$2" +function change_channel() { +    touch $LOCKFILE +    irsend SET_TRANSMITTERS $TRANSMITTER +    sleep .15 +    case $cmd in +        [0-9]*) +            for digit in $(echo $cmd | sed -e 's/./& /g') +            do +                irsend SEND_ONCE $REMOTE_NAME $digit +                sleep $DELAY +            done +            if [ x$SENDKEY != "x" ] +            then +                irsend SEND_ONCE $REMOTE_NAME $SENDKEY +            fi + +        ;; + +        *) +            irsend SEND_ONCE $REMOTE_NAME $cmd +            ;; +    esac +} + +function showhelp(){ +        echo "IR Control Script for LIRC +        Includes support for CommandIR transmitter selection and lockfile. +        The remote codes will be specific to the transmitter number  and matched via /etc/systemconfig +        Usage: +        $0 -d delay -c channel -n transmitter_number -s Enter + +        -d delay in tenths of a seconds - +        -c channel or cmd +        -n transmitter_number +        -s Key to send after executing change channel command (optional) + +        Sends an IR command or sequence of numbers using via emitter TRANSMITTER_NUM. +        DELAY ( in 10th of seconds) is waited between sending IR commands. + +        Example:  Change to channel 123 using emitter 2 with a 0.3s pause between digits: +        $0 -n1 -c123 -d3 + +        " +        exit 1 + + +} + +function testvars() { +    if [ x$DELAY = "x" ] +    then +        tdelay="HostTransmitDelay_$TRANSMITTER" +        d=${!tdelay} +        DELAY=$(echo "scale=2; $d / 10" | bc) +    fi + + +    if [ x$cmd = "x" ] +    then +        echo "-c is mandatory" +        exit 1 +    fi + + +    if [ x$TRANSMITTER = "x" ] +    then +        echo "-n is mandatory" +        exit 1 +    fi +      echo "delay is $DELAY" + + +#     echo "channel or button name is $cmd" +#     echo "Using transmitter $TRANSMITTER" +#     echo "Remote name is $REMOTE_NAME" +#     echo "Will send key $SENDKEY after numbers" +} + + +#-----------------------------Main Program----------------------- + +while getopts ":d:c:n:hs:" opt; do +  case $opt in +    h) showhelp +      ;; +    d) DELAY=$(echo "scale=2; $OPTARG / 10" | bc) +      ;; + +    c) cmd=$OPTARG +      ;; + +    n) TRANSMITTER=$OPTARG +       tname="HostTransmitproto_$TRANSMITTER" +       REMOTE_NAME=${!tname} +       if [ x$REMOTE_NAME = "xnone" ] +       then +            echo "Please define Transmitters in /etc/systemconfig" +            exit 1 +       fi +       if [ x$REMOTE_NAME = "x" ] +       then +        echo "Please define Transmitters in /etc/systemconfig" +        exit 1 +       fi + +      ;; + +    s) SENDKEY=$OPTARG +      ;; + +    \?) +      echo +      echo "Invalid option: -$OPTARG" >&2 +      exit 1 +      ;; +    :) +      echo +      echo "Option -$OPTARG requires an argument." >&2 +      exit 1 +      ;; +  esac +done + +testvars  while [ -f $LOCKFILE ]  do -  echo "Waiting for change channel lock file..." -  sleep .1 +   echo "Waiting for change channel lock file..." +   sleep .1  done -touch $LOCKFILE +change_channel +rm -f /tmp/lirclock + + + + + + + + + + + + + + + + + + + + -irsend SET_TRANSMITTERS $TRANSMITTER -sleep .15 -case $cmd in -    [0-9]*) -    for digit in $(echo $2 | sed -e 's/./& /g'); do -        irsend SEND_ONCE $REMOTE_NAME $digit -        sleep $DELAY -    done -    ;; -    *) -        irsend SEND_ONCE $REMOTE_NAME $cmd -        ;; -esac -rm -f /tmp/lirclock
\ No newline at end of file | 
