]> git.wh0rd.org - home.git/blob - .bin/vlc-rc
git-repack: new repack helper
[home.git] / .bin / vlc-rc
1 #!/bin/bash
2
3 exec 3<> /dev/tcp/vapier/8001
4 send() { echo "$*" 1>&3 ; }
5 recv() { local l; read l <&3; echo ${l%$'\r'} | sed 's:\r$::' ; }
6
7 shell() {
8 cat <&3 &
9 trap "kill $!" 0
10 send "${*:-help}"
11 sleep 1
12 while read -p "vlc$ " -e l ; do
13 [[ -z $l ]] && continue
14 case $l in
15 "?") l="help" ;;
16 esac
17 send "$l"
18 case $l in
19 quit) break ;;
20 esac
21 sleep 1
22 done
23 }
24
25 case $1 in
26 f|fullscreen)
27 send f $2
28 ;;
29 pause|quit|next|prev)
30 send $1
31 ;;
32 vol)
33 shift
34 send volume
35 curr=$(recv)
36 lvl=${2:-10}
37 case ${curr} in
38 # status change: ( audio volume: 115 )
39 "status change"*"audio volume"*)
40 vol=$(echo "${curr}" | awk '{ print $(NF-1) }')
41 case $1 in
42 up) : $(( vol += lvl )) ;;
43 down) : $(( vol -= lvl )) ;;
44 esac
45 send volume ${vol}
46 ;;
47 esac
48 ;;
49 seek)
50 if [[ -n $2 && -z ${2//[-+]} ]] ; then
51 off=( 0 5 15 30 60 )
52 off=${off[${#2}]}
53 send get_time
54 curr=$(recv)
55 set -- seek $(( curr ${2:0:1} off ))
56 send "$@"
57 else
58 shell "$@"
59 fi
60 ;;
61 strack)
62 if [[ $2 == "n" ]] ; then
63 set -f
64 send strack
65 e="+----[ end of Subtitles Track ]"
66 while l=$(recv) ; do
67 set -- $l
68 if [[ $l == "$e" ]] ; then
69 break
70 elif [[ $l == "| "* ]] ; then
71 [[ -z $s ]] && s=$2
72 if [[ $l == *" *" ]] ; then
73 l=$(recv)
74 if [[ $l != "$e" ]] ; then
75 set -- $l
76 s=$2
77 fi
78 break
79 fi
80 fi
81 done
82 kdialog --msgbox "$l" &
83 set -- strack $s
84 send "$@"
85 else
86 shell "$@"
87 fi
88 ;;
89 *)
90 shell "$@"
91 ;;
92 esac
93
94 exit 0