2009-04-02 00:27:47 +03:00
|
|
|
# mplayer(1) completion
|
|
|
|
|
|
|
|
have mplayer && {
|
|
|
|
_mplayer_options_list()
|
|
|
|
{
|
2009-10-04 19:42:50 +02:00
|
|
|
cur=${cur%\\}
|
|
|
|
COMPREPLY=( $( compgen -W "$( $1 $2 help 2>/dev/null | \
|
|
|
|
sed -e '1,/^Available/d' | awk '{print $1}' | \
|
|
|
|
sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//' )" -- "$cur" ) )
|
2009-04-02 00:27:47 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
_mplayer()
|
|
|
|
{
|
2009-10-04 19:42:50 +02:00
|
|
|
local cmd cur prev skinsdir IFS=$' \t\n' i j k=0
|
2009-04-02 00:27:47 +03:00
|
|
|
|
2009-10-04 19:42:50 +02:00
|
|
|
COMPREPLY=()
|
|
|
|
cmd=${COMP_WORDS[0]}
|
|
|
|
cur=`_get_cword`
|
|
|
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
2009-04-02 00:27:47 +03:00
|
|
|
|
2009-10-04 19:42:50 +02:00
|
|
|
case "$prev" in
|
|
|
|
-@([av][cfo]|[av]fm|vop|fstype|demuxer|o[av]c|of|profile))
|
|
|
|
_mplayer_options_list $cmd $prev
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-audiofile)
|
|
|
|
_filedir '@(mp3|MP3|mpg|MPG|ogg|OGG|w?(a)v|W?(A)V|mid|MID|flac|FLAC|mka|MKA|ape|APE)'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-font)
|
|
|
|
_filedir '@(desc|ttf)'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-sub)
|
|
|
|
_filedir '@(srt|SRT|sub|SUB|txt|TXT|utf|UTF|rar|RAR|mpsub|smi|js|ssa|SSA|ass|ASS)'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-vobsub)
|
|
|
|
_filedir '@(idx|IDX|ifo|IFO|sub|SUB)'
|
|
|
|
IFS=$'\t\n'
|
|
|
|
COMPREPLY=( $( for i in "${COMPREPLY[@]}"; do
|
|
|
|
if [ -f $i -a -r $i ]; then
|
|
|
|
echo ${i%.*}
|
|
|
|
else
|
|
|
|
echo $i
|
|
|
|
fi
|
|
|
|
done ) )
|
|
|
|
IFS=$' \t\n'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-ifo)
|
|
|
|
_filedir '@(ifo|IFO)'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-cuefile)
|
|
|
|
_filedir '@(bin|BIN|cue|CUE)'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-skin)
|
|
|
|
# if you don't have installed mplayer in /usr you
|
|
|
|
# may want to set the MPLAYER_SKINS_DIR global variable
|
|
|
|
if [ -n "$MPLAYER_SKINS_DIR" ]; then
|
|
|
|
skinsdir=$MPLAYER_SKINS_DIR
|
|
|
|
else
|
|
|
|
skinsdir=/usr/share/mplayer/Skin
|
|
|
|
fi
|
2009-04-02 00:27:47 +03:00
|
|
|
|
2009-10-04 19:42:50 +02:00
|
|
|
IFS=$'\t\n'
|
|
|
|
for i in ~/.mplayer/Skin $skinsdir; do
|
|
|
|
if [ -d $i -a -r $i ]; then
|
|
|
|
for j in $( compgen -d $i/$cur ); do
|
|
|
|
COMPREPLY[$k]=${j#$i/}
|
|
|
|
k=$((++k))
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
IFS=$' \t\n'
|
|
|
|
return 0
|
|
|
|
;;
|
2009-11-04 23:12:44 +02:00
|
|
|
-cdrom-device)
|
|
|
|
_cd_devices
|
|
|
|
_dvd_devices
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-dvd-device)
|
|
|
|
_dvd_devices
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-@(mixer|dvdauth|fb|zrdev))
|
2009-10-04 19:42:50 +02:00
|
|
|
cur=${cur:=/dev/}
|
|
|
|
_filedir
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-@(edl?(out)|lircconf|menu-cfg|playlist|csslib|dumpfile)| \
|
|
|
|
-@(subfile|vobsub|aofile|fbmodeconfig|include|o|dvdkey)| \
|
|
|
|
-passlogfile)
|
|
|
|
_filedir
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-@(auto@(q|sync)|loop|menu-root|speed|sstep|aid|alang)| \
|
|
|
|
-@(?(@(audio|sub)-)demuxer|bandwidth|cache|chapter)| \
|
|
|
|
-@(dvd?(angle)|fps|frames|mc|passwd|user|sb|srate|ss|vcd)| \
|
|
|
|
-@(vi?(d|vo)|ffactor|sid|slang|spu@(align|aa|gauss))| \
|
|
|
|
-@(vobsubid|delay|bpp|brightness|contrast|dfbopts|display)| \
|
|
|
|
-@(fbmode|geometry|guiwid|hue|icelayer|screen[wh]|wid)| \
|
|
|
|
-@(monitor@(aspect|-@(dotclock|[hv]freq))|panscan|saturation)| \
|
|
|
|
-@(xineramascreen|zr@(crop|norm|quality|[xy]doff|[vh]dec))| \
|
|
|
|
-@(aspect|pp|x|y|xy|z|stereo|audio-@(density|delay|preload))| \
|
|
|
|
-@(endpos|osdlevel|ffourcc|sws|channels|skiplimit|format)| \
|
|
|
|
-@(ofps|aa@(driver|@(osd|sub)color)|vobsubout?(i@(ndex|d)))| \
|
|
|
|
-sub@(-bg-@(alpha|color)|cp|delay|fps|pos|align|width)| \
|
|
|
|
-sub@(font-@(blur|outline|autoscale|encoding|@(osd|text)-scale)))
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-lavdopts)
|
|
|
|
COMPREPLY=( $( compgen -W 'ec er= bug= idct= gray' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-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" ) )
|
2009-10-19 22:34:46 +03:00
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-ssf)
|
|
|
|
COMPREPLY=( $( compgen -W 'lgb= cgb= ls= cs= chs= cvs=' \
|
|
|
|
-- "$cur" ) )
|
2009-10-04 19:42:50 +02:00
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-jpeg)
|
|
|
|
COMPREPLY=( $( compgen -W 'noprogressive progressive nobaseline \
|
|
|
|
baseline optimize= smooth= quality= outdir=' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-xvidopts)
|
|
|
|
COMPREPLY=( $( compgen -W 'dr2 nodr2' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-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 0
|
|
|
|
;;
|
|
|
|
-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 0
|
|
|
|
;;
|
|
|
|
-info)
|
|
|
|
COMPREPLY=( $( compgen -W 'name= artist= genre= subject= \
|
|
|
|
copyright= srcform= comment= help' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-lameopts)
|
|
|
|
COMPREPLY=( $( compgen -W 'vbr= abr cbr br= q= aq= ratio= vol= \
|
|
|
|
mode= padding= fast preset= help' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-rawaudio)
|
|
|
|
COMPREPLY=( $( compgen -W 'on channels= rate= samplesize= format=' \
|
|
|
|
-- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-rawvideo)
|
|
|
|
COMPREPLY=( $( compgen -W 'on fps= sqcif qcif cif 4cif pal ntsc w= \
|
|
|
|
h= y420 yv12 yuy2 y8 format= size=' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-aop)
|
|
|
|
COMPREPLY=( $( compgen -W 'list= delay= format= fout= volume= mul= \
|
|
|
|
softclip' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-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 0
|
|
|
|
;;
|
|
|
|
-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 0
|
|
|
|
;;
|
|
|
|
-mf)
|
|
|
|
COMPREPLY=( $( compgen -W 'on w= h= fps= type=' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-cdda)
|
|
|
|
COMPREPLY=( $( compgen -W 'speed= paranoia= generic-dev= \
|
|
|
|
sector-size= overlap= toc-bias toc-offset= skip noskip' \
|
|
|
|
-- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-input)
|
|
|
|
COMPREPLY=( $( compgen -W 'conf= ar-delay ar-rate keylist cmdlist \
|
|
|
|
js-dev file' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-af)
|
|
|
|
COMPREPLY=( $( compgen -W 'resample resample= channels channels= \
|
|
|
|
format format= volume volume= delay delay= pan pan= sub sub= \
|
|
|
|
surround surround=' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-af-adv)
|
|
|
|
COMPREPLY=( $( compgen -W 'force= list=' -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
2009-04-02 00:27:47 +03:00
|
|
|
|
2009-10-04 19:42:50 +02:00
|
|
|
case "$cur" in
|
|
|
|
-*)
|
|
|
|
COMPREPLY=( $( compgen -W '$( $cmd -list-options 2>/dev/null | \
|
|
|
|
sed -ne '1,/^[[:space:]]*Name/d' \
|
|
|
|
-e "s/^[[:space:]]*/-/" -e "s/[[:space:]:].*//" \
|
|
|
|
-e "/^-\(Total\|.*\*\)\?$/!p" )' -- "$cur" ) )
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
_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)'
|
|
|
|
;;
|
|
|
|
esac
|
2009-04-02 00:27:47 +03:00
|
|
|
|
2009-10-04 19:42:50 +02:00
|
|
|
return 0
|
2009-04-02 00:27:47 +03:00
|
|
|
}
|
2009-10-22 12:04:29 +03:00
|
|
|
complete -o filenames -F _mplayer mplayer mencoder gmplayer kplayer
|
2009-04-02 00:27:47 +03:00
|
|
|
}
|
2009-10-01 20:54:51 +03:00
|
|
|
|
|
|
|
# Local variables:
|
|
|
|
# mode: shell-script
|
2009-10-04 19:42:50 +02:00
|
|
|
# sh-basic-offset: 4
|
2009-10-01 20:54:51 +03:00
|
|
|
# sh-indent-comment: t
|
2009-10-04 19:42:50 +02:00
|
|
|
# indent-tabs-mode: nil
|
2009-10-01 20:54:51 +03:00
|
|
|
# End:
|
2009-10-04 19:42:50 +02:00
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|