/usr/local/bin/hdmi
#!/bin/bash
lock=/run/lock/hdmi.lock
cecas() { for (( t=s=0 ; t++<12 && s<4;)) ; do {
cec-ctl -sd0 -t0 --playback --active-source phys-addr=$1.0.0.0
sleep 1 ; cec-ctl -sd0 -t0 --playback --image-view-on ;} |
grep -q Error && echo -n E || (( s++ )) ; sleep 1 ; done ;}
! [ -d $(dirname "$lock") ] && cecas ${1:-1} ||
(
# Wait for lock on fd 9 for 1 second
flock -x -w 1 9 || { echo hdmi in use; exit 9; }
cecas ${1:-1}
) 9>$lock
rm -f $lock
/usr/local/bin/tvoff
#!/bin/bash
lock=/run/lock/hdmi.lock
tvoff() { for (( t=s=0 ; t++<9 && s<4;)) ; do
cec-ctl -sd0 -t0 --playback --standby |
grep -q Error && echo -n E || (( s++ )) ; sleep 2 ; done ;}
! [ -d $(dirname "$lock") ] && tvoff ||
(
# Wait for lock on fd 9 for 1 second
flock -x -w 1 9 || { echo hdmi in use; exit 9; }
tvoff
) 9>$lock
rm -f $lock