]> git.wh0rd.org - home.git/blob - .bin/vlc-rc
handle playlist seeking
[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 vol$*
35 ;;
36 seek)
37 if [[ -n $2 && -z ${2//[-+]} ]] ; then
38 off=( 0 5 15 30 60 )
39 off=${off[${#2}]}
40 send get_time
41 curr=$(recv)
42 set -- seek $(( curr ${2:0:1} off ))
43 send "$@"
44 else
45 shell "$@"
46 fi
47 ;;
48 strack)
49 if [[ $2 == "n" ]] ; then
50 set -f
51 send strack
52 e="+----[ end of Subtitles Track ]"
53 while l=$(recv) ; do
54 set -- $l
55 if [[ $l == "$e" ]] ; then
56 break
57 elif [[ $l == "| "* ]] ; then
58 [[ -z $s ]] && s=$2
59 if [[ $l == *" *" ]] ; then
60 l=$(recv)
61 if [[ $l != "$e" ]] ; then
62 set -- $l
63 s=$2
64 fi
65 break
66 fi
67 fi
68 done
69 kdialog --msgbox "$l" &
70 set -- strack $s
71 send "$@"
72 else
73 shell "$@"
74 fi
75 ;;
76 *)
77 shell "$@"
78 ;;
79 esac
80
81 exit 0