]> git.wh0rd.org Git - home.git/blob - .bin/vlc-rc
expand vlc-rc 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)
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