summaryrefslogtreecommitdiffstats
path: root/completions/mplayer
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--completions/mplayer287
1 files changed, 287 insertions, 0 deletions
diff --git a/completions/mplayer b/completions/mplayer
new file mode 100644
index 0000000..d71ebb8
--- /dev/null
+++ b/completions/mplayer
@@ -0,0 +1,287 @@
+# mplayer(1) completion -*- shell-script -*-
+
+_mplayer_options_list()
+{
+ cur=${cur%\\}
+ COMPREPLY=($(compgen -W "$($1 -noconfig all $2 help 2>/dev/null |
+ command sed -e '/^Available/,/^$/!d' -e '/^Available/d' | awk '{print $1}' |
+ command sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//')" -- "$cur"))
+}
+
+_mplayer()
+{
+ local cur prev words cword
+ _init_completion -n : || return
+
+ local cmd=${words[0]} i j k=0
+
+ case $prev in
+ -[av][cfo] | -[av]fm | -vop | -fstype | -demuxer | -o[av]c | -of | -profile | \
+ -audio-demuxer | -sub-demuxer)
+ _mplayer_options_list $cmd $prev
+ return
+ ;;
+ -show-profile)
+ _mplayer_options_list $cmd -profile
+ return
+ ;;
+ -audiofile | -audio-file)
+ _filedir '@(mp3|mpg|og[ag]|w?(a)v|mid|flac|mka|ac3|ape)'
+ return
+ ;;
+ -font | -subfont)
+ if [[ $prev == -font ]]; then
+ _filedir '@(desc|ttf)'
+ else
+ _filedir ttf
+ fi
+ local IFS=$'\n'
+ COMPREPLY+=($(compgen -W '$(fc-list 2>/dev/null)' -- "$cur"))
+ return
+ ;;
+ -sub | -sub-file)
+ _filedir '@(srt|sub|txt|utf|rar|mpsub|smi|js|ssa|ass)'
+ return
+ ;;
+ -vobsub)
+ _filedir '@(idx|ifo|sub)'
+ local IFS=$'\n'
+ COMPREPLY=($(for i in "${COMPREPLY[@]}"; do
+ if [[ -f $i && -r $i ]]; then
+ printf '%s\n' ${i%.*}
+ else
+ printf '%s\n' $i
+ fi
+ done))
+ return
+ ;;
+ -subcp | -msgcharset)
+ local cp
+ cp=($(iconv --list 2>/dev/null | command sed -e "s@//@@;" 2>/dev/null))
+ if [[ $cur == "${cur,,}" ]]; then
+ COMPREPLY=($(compgen -W '${cp[@],,}' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W '${cp[@]^^}' -- "$cur"))
+ fi
+ return
+ ;;
+ -ifo)
+ _filedir ifo
+ return
+ ;;
+ -cuefile)
+ _filedir '@(bin|cue)'
+ return
+ ;;
+ -skin)
+ # if you don't have installed mplayer in /usr you
+ # may want to set the MPLAYER_SKINS_DIR global variable
+ local -a dirs
+ if [[ -n $MPLAYER_SKINS_DIR ]]; then
+ dirs=($MPLAYER_SKINS_DIR)
+ else
+ dirs=(/usr/share/mplayer/skins /usr/local/share/mplayer/skins)
+ fi
+
+ local IFS=$'\n'
+ for i in ~/.mplayer/skins "${dirs[@]}"; do
+ if [[ -d $i && -r $i ]]; then
+ for j in $(compgen -d -- $i/$cur); do
+ COMPREPLY[k++]=${j#$i/}
+ done
+ fi
+ done
+ return
+ ;;
+ -cdrom-device)
+ _cd_devices
+ _dvd_devices
+ return
+ ;;
+ -dvd-device)
+ _dvd_devices
+ _filedir iso
+ return
+ ;;
+ -bluray-device)
+ _filedir -d
+ return
+ ;;
+ -mixer | -dvdauth | -fb | -zrdev)
+ cur=${cur:=/dev/}
+ _filedir
+ return
+ ;;
+ -edl | -edlout | -lircconf | -menu-cfg | -playlist | -csslib | -dumpfile | \
+ -subfile | -aofile | -fbmodeconfig | -include | -o | -dvdkey | -passlogfile)
+ _filedir
+ return
+ ;;
+ -autoq | -autosync | -loop | -menu-root | -speed | -sstep | -aid | -alang | \
+ -bandwidth | -bluray-angle | -bluray-chapter | -cache | -chapter | -dvd-speed | \
+ -dvdangle | -fps | -frames | -mc | -passwd | -user | -sb | -srate | -ss | -vcd | \
+ -vi | -vid | -vivo | -ffactor | -sid | -slang | -spualign | -spuaa | -spugauss | \
+ -vobsubid | -delay | -bpp | -brightness | -contrast | -dfbopts | -display | \
+ -fbmode | -geometry | -guiwid | -hue | -icelayer | -screen[wh] | -wid | \
+ -monitor-dotclock | -monitor-[hv]freq | -panscan | \
+ -saturation | -xineramascreen | -zrcrop | -zrnorm | -zrquality | \
+ -zr[xy]doff | -zr[vh]dec | -pp | -x | -y | -xy | -z | -stereo | \
+ -audio-density | -audio-delay | -audio-preload | -endpos | -osdlevel | \
+ -ffourcc | -sws | -skiplimit | -format | -ofps | -aadriver | \
+ -aaosdcolor | -aasubcolor | -vobsubout | -vobsuboutid | -vobsuboutindex | \
+ -sub-bg-alpha | -sub-bg-color | -subdelay | -subfps | -subpos | \
+ -subalign | -subwidth | -subfont-blur | -subfont-outline | \
+ -subfont-autoscale | -subfont-encoding | -subfont-osd-scale | \
+ -subfont-text-scale)
+ return
+ ;;
+ -channels)
+ COMPREPLY=($(compgen -W '2 4 6 8' -- "$cur"))
+ return
+ ;;
+ -aspect | -monitoraspect)
+ COMPREPLY=($(compgen -W '1:1 3:2 4:3 5:4 14:9 14:10 16:9 16:10
+ 2.35:1' -- "$cur"))
+ __ltrim_colon_completions "$cur"
+ return
+ ;;
+ -lavdopts)
+ COMPREPLY=($(compgen -W 'bitexact bug= debug= ec= er= fast gray
+ idct= lowres= sb= st= skiploopfilter= skipidct= skipframe=
+ threads= vismv= vstats' -- "$cur"))
+ return
+ ;;
+ -lavcopts)
+ COMPREPLY=($(compgen -W 'vcodec= vqmin= vqscale= vqmax= mbqmin=
+ mbqmax= vqdiff= vmax_b_frames= vme= vhq v4mv keyint=
+ vb_strategy= vpass= aspect= vbitrate= vratetol= vrc_maxrate=
+ vrc_minrate= vrc_buf_size= vb_qfactor= vi_qfactor= vb_qoffset=
+ vi_qoffset= vqblur= vqcomp= vrc_eq= vrc_override=
+ vrc_init_cplx= vqsquish= vlelim= vcelim= vstrict= vdpart
+ vpsize= gray vfdct= idct= lumi_mask= dark_mask= tcplx_mask=
+ scplx_mask= naq ildct format= pred qpel precmp= cmp= subcmp=
+ predia= dia= trell last_pred= preme= subq= psnr mpeg_quant aic
+ umv' -- "$cur"))
+ return
+ ;;
+ -ssf)
+ COMPREPLY=($(compgen -W 'lgb= cgb= ls= cs= chs= cvs=' -- "$cur"))
+ return
+ ;;
+ -jpeg)
+ COMPREPLY=($(compgen -W 'noprogressive progressive nobaseline
+ baseline optimize= smooth= quality= outdir=' -- "$cur"))
+ return
+ ;;
+ -xvidopts)
+ COMPREPLY=($(compgen -W 'dr2 nodr2' -- "$cur"))
+ return
+ ;;
+ -xvidencopts)
+ COMPREPLY=($(compgen -W 'pass= bitrate= fixed_quant= me_quality=
+ 4mv rc_reaction_delay_factor= rc_averaging_period= rc_buffer=
+ quant_range= min_key_interval= max_key_interval= mpeg_quant
+ mod_quant lumi_mask hintedme hintfile debug keyframe_boost=
+ kfthreshold= kfreduction=' -- "$cur"))
+ return
+ ;;
+ -divx4opts)
+ COMPREPLY=($(compgen -W 'br= key= deinterlace q= min_quant=
+ max_quant= rc_period= rc_reaction_period= crispness=
+ rc_reaction_ratio= pass= vbrpass= help' -- "$cur"))
+ return
+ ;;
+ -info)
+ COMPREPLY=($(compgen -W 'name= artist= genre= subject=
+ copyright= srcform= comment= help' -- "$cur"))
+ return
+ ;;
+ -lameopts)
+ COMPREPLY=($(compgen -W 'vbr= abr cbr br= q= aq= ratio= vol=
+ mode= padding= fast preset= help' -- "$cur"))
+ return
+ ;;
+ -rawaudio)
+ COMPREPLY=($(compgen -W 'on channels= rate= samplesize= format=' \
+ -- "$cur"))
+ return
+ ;;
+ -rawvideo)
+ COMPREPLY=($(compgen -W 'on fps= sqcif qcif cif 4cif pal ntsc w=
+ h= y420 yv12 yuy2 y8 format= size=' -- "$cur"))
+ return
+ ;;
+ -aop)
+ COMPREPLY=($(compgen -W 'list= delay= format= fout= volume= mul=
+ softclip' -- "$cur"))
+ return
+ ;;
+ -dxr2)
+ COMPREPLY=($(compgen -W 'ar-mode= iec958-encoded iec958-decoded
+ mute ucode= 75ire bw color interlaced macrovision= norm=
+ square-pixel ccir601-pixel cr-left= cr-right= cr-top= cr-bot=
+ ck-rmin= ck-gmin= ck-bmin= ck-rmax= ck-gmax= ck-bmax= ck-r=
+ ck-g= ck-b= ignore-cache= ol-osd= olh-cor= olw-cor= olx-cor=
+ oly-cor= overlay overlay-ratio= update-cache' -- "$cur"))
+ return
+ ;;
+ -tv)
+ COMPREPLY=($(compgen -W 'on noaudio driver= device= input= freq=
+ outfmt= width= height= buffersize= norm= channel= chanlist=
+ audiorate= forceaudio alsa amode= forcechan= adevice= audioid=
+ volume= bass= treble= balance= fps= channels= immediatemode=' \
+ -- "$cur"))
+ return
+ ;;
+ -mf)
+ COMPREPLY=($(compgen -W 'on w= h= fps= type=' -- "$cur"))
+ return
+ ;;
+ -cdda)
+ COMPREPLY=($(compgen -W 'speed= paranoia= generic-dev=
+ sector-size= overlap= toc-bias toc-offset= skip noskip' \
+ -- "$cur"))
+ return
+ ;;
+ -input)
+ COMPREPLY=($(compgen -W 'conf= ar-delay ar-rate keylist cmdlist
+ js-dev file' -- "$cur"))
+ return
+ ;;
+ -af-adv)
+ COMPREPLY=($(compgen -W 'force= list=' -- "$cur"))
+ return
+ ;;
+ -noconfig)
+ COMPREPLY=($(compgen -W 'all gui system user' -- "$cur"))
+ return
+ ;;
+ -*)
+ # Assume arg is required for everything else except options
+ # for which -list-options says Type is Flag or Print.
+ $cmd -noconfig all -list-options 2>/dev/null |
+ while read -r i j k; do
+ if [[ $i == "${prev#-}" ]]; then
+ [[ ${j,,} != @(flag|print) ]] && return 1
+ break
+ fi
+ done || return
+ ;;
+ esac
+
+ case $cur in
+ -*)
+ COMPREPLY=($(compgen -W '$($cmd -noconfig all -list-options 2>/dev/null | \
+ command sed -ne "1,/^[[:space:]]*Name/d" \
+ -e "s/^[[:space:]]*/-/" -e "s/[[:space:]:].*//" \
+ -e "/^-\(Total\|.*\*\)\{0,1\}$/!p")' -- "$cur"))
+ ;;
+ *)
+ _filedir '@(m?(j)p?(e)g|M?(J)P?(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]|fxm|FXM|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|og[gmavx]|OG[GMAVX]|w?(a)v|W?(A)V|dump|DUMP|mk[av]|MK[AV]|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|t[ps]|T[PS]|3g[p2]|3gpp?(2)|mpc|MPC|flac|FLAC|vro|VRO|divx|DIVX|aif?(f)|AIF?(F)|m2t?(s)|M2T?(S)|mts|MTS|vdr|VDR|xvid|XVID|ape|APE|gif|GIF|nut|NUT|bik|BIK|web[am]|WEB[AM]|amr|AMR|awb|AWB|iso|ISO|opus|OPUS|m[eo]d|M[EO]D|xm|XM|it|IT|s[t3]m|S[T3]M|mtm|MTM|w64|W64)?(.@(crdownload|part))'
+ ;;
+ esac
+
+} &&
+ complete -F _mplayer mplayer mplayer2 mencoder gmplayer kplayer
+
+# ex: filetype=sh