/bash_completion.d/mplayer

http://github.com/brinkman83/bashrc · #! · 242 lines · 234 code · 8 blank · 0 comment · 0 complexity · 8772538b950fc3f579763a3567b13515 MD5 · raw file

  1. # mplayer(1) completion
  2. have mplayer && {
  3. _mplayer_options_list()
  4. {
  5. cur=${cur%\\}
  6. COMPREPLY=( $( compgen -W "$( $1 $2 help 2>/dev/null | \
  7. sed -e '1,/^Available/d' | awk '{print $1}' | \
  8. sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//' )" -- "$cur" ) )
  9. }
  10. _mplayer()
  11. {
  12. local cmd cur prev skinsdir IFS=$' \t\n' i j k=0
  13. COMPREPLY=()
  14. cmd=${COMP_WORDS[0]}
  15. cur=`_get_cword`
  16. prev=${COMP_WORDS[COMP_CWORD-1]}
  17. case "$prev" in
  18. -@([av][cfo]|[av]fm|vop|fstype|demuxer|o[av]c|of|profile))
  19. _mplayer_options_list $cmd $prev
  20. return 0
  21. ;;
  22. -audiofile)
  23. _filedir '@(mp3|MP3|mpg|MPG|ogg|OGG|w?(a)v|W?(A)V|mid|MID|flac|FLAC|mka|MKA|ape|APE)'
  24. return 0
  25. ;;
  26. -font)
  27. _filedir '@(desc|ttf)'
  28. return 0
  29. ;;
  30. -sub)
  31. _filedir '@(srt|SRT|sub|SUB|txt|TXT|utf|UTF|rar|RAR|mpsub|smi|js|ssa|SSA|ass|ASS)'
  32. return 0
  33. ;;
  34. -vobsub)
  35. _filedir '@(idx|IDX|ifo|IFO|sub|SUB)'
  36. IFS=$'\t\n'
  37. COMPREPLY=( $( for i in "${COMPREPLY[@]}"; do
  38. if [ -f $i -a -r $i ]; then
  39. echo ${i%.*}
  40. else
  41. echo $i
  42. fi
  43. done ) )
  44. IFS=$' \t\n'
  45. return 0
  46. ;;
  47. -ifo)
  48. _filedir '@(ifo|IFO)'
  49. return 0
  50. ;;
  51. -cuefile)
  52. _filedir '@(bin|BIN|cue|CUE)'
  53. return 0
  54. ;;
  55. -skin)
  56. # if you don't have installed mplayer in /usr you
  57. # may want to set the MPLAYER_SKINS_DIR global variable
  58. if [ -n "$MPLAYER_SKINS_DIR" ]; then
  59. skinsdir=$MPLAYER_SKINS_DIR
  60. else
  61. skinsdir=/usr/share/mplayer/Skin
  62. fi
  63. IFS=$'\t\n'
  64. for i in ~/.mplayer/Skin $skinsdir; do
  65. if [ -d $i -a -r $i ]; then
  66. for j in $( compgen -d $i/$cur ); do
  67. COMPREPLY[$k]=${j#$i/}
  68. k=$((++k))
  69. done
  70. fi
  71. done
  72. IFS=$' \t\n'
  73. return 0
  74. ;;
  75. -@(mixer|@(cdrom|dvd)-device|dvdauth|fb|zrdev))
  76. cur=${cur:=/dev/}
  77. _filedir
  78. return 0
  79. ;;
  80. -@(edl?(out)|lircconf|menu-cfg|playlist|csslib|dumpfile)| \
  81. -@(subfile|vobsub|aofile|fbmodeconfig|include|o|dvdkey)| \
  82. -passlogfile)
  83. _filedir
  84. return 0
  85. ;;
  86. -@(auto@(q|sync)|loop|menu-root|speed|sstep|aid|alang)| \
  87. -@(?(@(audio|sub)-)demuxer|bandwidth|cache|chapter)| \
  88. -@(dvd?(angle)|fps|frames|mc|passwd|user|sb|srate|ss|vcd)| \
  89. -@(vi?(d|vo)|ffactor|sid|slang|spu@(align|aa|gauss))| \
  90. -@(vobsubid|delay|bpp|brightness|contrast|dfbopts|display)| \
  91. -@(fbmode|geometry|guiwid|hue|icelayer|screen[wh]|wid)| \
  92. -@(monitor@(aspect|-@(dotclock|[hv]freq))|panscan|saturation)| \
  93. -@(xineramascreen|zr@(crop|norm|quality|[xy]doff|[vh]dec))| \
  94. -@(aspect|pp|x|y|xy|z|stereo|audio-@(density|delay|preload))| \
  95. -@(endpos|osdlevel|ffourcc|sws|channels|skiplimit|format)| \
  96. -@(ofps|aa@(driver|@(osd|sub)color)|vobsubout?(i@(ndex|d)))| \
  97. -sub@(-bg-@(alpha|color)|cp|delay|fps|pos|align|width)| \
  98. -sub@(font-@(blur|outline|autoscale|encoding|@(osd|text)-scale)))
  99. return 0
  100. ;;
  101. -lavdopts)
  102. COMPREPLY=( $( compgen -W 'ec er= bug= idct= gray' -- "$cur" ) )
  103. return 0
  104. ;;
  105. -lavcopts)
  106. COMPREPLY=( $( compgen -W 'vcodec= vqmin= vqscale= vqmax= mbqmin= \
  107. mbqmax= vqdiff= vmax_b_frames= vme= vhq v4mv keyint= \
  108. vb_strategy= vpass= aspect= vbitrate= vratetol= vrc_maxrate= \
  109. vrc_minrate= vrc_buf_size= vb_qfactor= vi_qfactor= vb_qoffset= \
  110. vi_qoffset= vqblur= vqcomp= vrc_eq= vrc_override= \
  111. vrc_init_cplx= vqsquish= vlelim= vcelim= vstrict= vdpart \
  112. vpsize= gray vfdct= idct= lumi_mask= dark_mask= tcplx_mask= \
  113. scplx_mask= naq ildct format= pred qpel precmp= cmp= subcmp= \
  114. predia= dia= trell last_pred= preme= subq= psnr mpeg_quant aic \
  115. umv' -- "$cur" ) )
  116. return 0
  117. ;;
  118. -ssf)
  119. COMPREPLY=( $( compgen -W 'lgb= cgb= ls= cs= chs= cvs=' -- "$cur" ) )
  120. return 0
  121. ;;
  122. -jpeg)
  123. COMPREPLY=( $( compgen -W 'noprogressive progressive nobaseline \
  124. baseline optimize= smooth= quality= outdir=' -- "$cur" ) )
  125. return 0
  126. ;;
  127. -xvidopts)
  128. COMPREPLY=( $( compgen -W 'dr2 nodr2' -- "$cur" ) )
  129. return 0
  130. ;;
  131. -xvidencopts)
  132. COMPREPLY=( $( compgen -W 'pass= bitrate= fixed_quant= me_quality= \
  133. 4mv rc_reaction_delay_factor= rc_averaging_period= rc_buffer= \
  134. quant_range= min_key_interval= max_key_interval= mpeg_quant \
  135. mod_quant lumi_mask hintedme hintfile debug keyframe_boost= \
  136. kfthreshold= kfreduction=' -- "$cur" ) )
  137. return 0
  138. ;;
  139. -divx4opts)
  140. COMPREPLY=( $( compgen -W 'br= key= deinterlace q= min_quant= \
  141. max_quant= rc_period= rc_reaction_period= crispness= \
  142. rc_reaction_ratio= pass= vbrpass= help' -- "$cur" ) )
  143. return 0
  144. ;;
  145. -info)
  146. COMPREPLY=( $( compgen -W 'name= artist= genre= subject= \
  147. copyright= srcform= comment= help' -- "$cur" ) )
  148. return 0
  149. ;;
  150. -lameopts)
  151. COMPREPLY=( $( compgen -W 'vbr= abr cbr br= q= aq= ratio= vol= \
  152. mode= padding= fast preset= help' -- "$cur" ) )
  153. return 0
  154. ;;
  155. -rawaudio)
  156. COMPREPLY=( $( compgen -W 'on channels= rate= samplesize= format=' \
  157. -- "$cur" ) )
  158. return 0
  159. ;;
  160. -rawvideo)
  161. COMPREPLY=( $( compgen -W 'on fps= sqcif qcif cif 4cif pal ntsc w= \
  162. h= y420 yv12 yuy2 y8 format= size=' -- "$cur" ) )
  163. return 0
  164. ;;
  165. -aop)
  166. COMPREPLY=( $( compgen -W 'list= delay= format= fout= volume= mul= \
  167. softclip' -- "$cur" ) )
  168. return 0
  169. ;;
  170. -dxr2)
  171. COMPREPLY=( $( compgen -W 'ar-mode= iec958-encoded iec958-decoded \
  172. mute ucode= 75ire bw color interlaced macrovision= norm= \
  173. square-pixel ccir601-pixel cr-left= cr-right= cr-top= cr-bot= \
  174. ck-rmin= ck-gmin= ck-bmin= ck-rmax= ck-gmax= ck-bmax= ck-r= \
  175. ck-g= ck-b= ignore-cache= ol-osd= olh-cor= olw-cor= olx-cor= \
  176. oly-cor= overlay overlay-ratio= update-cache' -- "$cur" ))
  177. return 0
  178. ;;
  179. -tv)
  180. COMPREPLY=( $( compgen -W 'on noaudio driver= device= input= freq= \
  181. outfmt= width= height= buffersize= norm= channel= chanlist= \
  182. audiorate= forceaudio alsa amode= forcechan= adevice= audioid= \
  183. volume= bass= treble= balance= fps= channels= immediatemode=' \
  184. -- "$cur" ) )
  185. return 0
  186. ;;
  187. -mf)
  188. COMPREPLY=( $( compgen -W 'on w= h= fps= type=' -- "$cur" ) )
  189. return 0
  190. ;;
  191. -cdda)
  192. COMPREPLY=( $( compgen -W 'speed= paranoia= generic-dev= \
  193. sector-size= overlap= toc-bias toc-offset= skip noskip' \
  194. -- "$cur" ) )
  195. return 0
  196. ;;
  197. -input)
  198. COMPREPLY=( $( compgen -W 'conf= ar-delay ar-rate keylist cmdlist \
  199. js-dev file' -- "$cur" ) )
  200. return 0
  201. ;;
  202. -af)
  203. COMPREPLY=( $( compgen -W 'resample resample= channels channels= \
  204. format format= volume volume= delay delay= pan pan= sub sub= \
  205. surround surround=' -- "$cur" ) )
  206. return 0
  207. ;;
  208. -af-adv)
  209. COMPREPLY=( $( compgen -W 'force= list=' -- "$cur" ) )
  210. return 0
  211. ;;
  212. esac
  213. case "$cur" in
  214. -*)
  215. COMPREPLY=( $( compgen -W '$( $cmd -list-options 2>/dev/null | \
  216. sed -ne '1,/^[[:space:]]*Name/d' \
  217. -e "s/^[[:space:]]*/-/" -e "s/[[:space:]:].*//" \
  218. -e "/^-\(Total\|.*\*\)\?$/!p" )' -- "$cur" ) )
  219. ;;
  220. *)
  221. _filedir '@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fl[iv]|FL[IV]|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[234]|MP[234]|m4[av]|M4[AV]|og[gmavx]|OG[GMAVX]|w?(a)v|W?(A)V|dump|DUMP|mk[av]|MK[AV]|m4a|M4A|aac|AAC|m[24]v|M[24]V|dv|DV|rmvb|RMVB|mid|MID|ts|TS|3g[p2]|mpc|MPC|flac|FLAC|vro|VRO|divx|DIVX|aif?(f)|AIF?(F)|m2ts|M2TS|vdr|VDR|xvid|XVID|ape|APE)'
  222. ;;
  223. esac
  224. return 0
  225. }
  226. complete $filenames -F _mplayer mplayer mencoder gmplayer kplayer
  227. }
  228. # Local variables:
  229. # mode: shell-script
  230. # sh-basic-offset: 4
  231. # sh-indent-comment: t
  232. # indent-tabs-mode: nil
  233. # End:
  234. # ex: ts=4 sw=4 et filetype=sh