341 lines
10 KiB
Bash
341 lines
10 KiB
Bash
#-*- mode: shell-script;-*-
|
|
|
|
# mplayer(1) bash completion support
|
|
# this file is maintained within mplayer package
|
|
|
|
if type mplayer &> /dev/null ; then
|
|
|
|
_mplayer_options_list()
|
|
{
|
|
cur=${cur%\\}
|
|
COMPREPLY=( $( $1 $2 help 2> /dev/null | \
|
|
sed -e '1,/^Available/d' | awk '{print $1}' | \
|
|
sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//' | \
|
|
grep "^$cur" ) )
|
|
}
|
|
|
|
_mplayer()
|
|
{
|
|
local cmd cur prev skinsdir IFS=$' \t\n' i j k=0
|
|
|
|
COMPREPLY=()
|
|
cmd=${COMP_WORDS[0]}
|
|
cur=${COMP_WORDS[COMP_CWORD]}
|
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
|
|
case "$prev" in
|
|
-@(ac|afm|vc|vfm|ao|vo|vop|fstype))
|
|
_mplayer_options_list mplayer $prev
|
|
return 0
|
|
;;
|
|
-@(oac|ovc|of))
|
|
_mplayer_options_list mencoder $prev
|
|
return 0
|
|
;;
|
|
-audiofile)
|
|
_filedir '@(mp3|MP3|mpg|MPG|ogg|OGG|wav|WAV|mid|MID)'
|
|
return 0
|
|
;;
|
|
-font)
|
|
_filedir '@(desc|ttf)'
|
|
return 0
|
|
;;
|
|
-sub)
|
|
_filedir '@(srt|SRT|sub|SUB|txt|TXT|utf|UTF|rar|RAR|mpsub|smi|js|ass|ASS|ssa|SSA)'
|
|
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/local 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/skins
|
|
fi
|
|
|
|
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
|
|
;;
|
|
-@(mixer|@(cdrom|dvd)-device|dvdauth|fb|zrdev))
|
|
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 ) )
|
|
return 0
|
|
;;
|
|
-ssf)
|
|
COMPREPLY=( $( compgen -W 'lgb= cgb= ls= cs= chs= \
|
|
cvs=' -- $cur ) )
|
|
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
|
|
|
|
case "$cur" in
|
|
-*)
|
|
COMPREPLY=( $( compgen -W '-aid -alang -audio-demuxer \
|
|
-audiofile -cdrom-device -cache -nocache -cdda \
|
|
-channels -chapter -csslib -demuxer \
|
|
-dvd -dvd-device -dvdangle -dvdauth \
|
|
-dvdkey -dvdnav -forceidx -fps -frames \
|
|
-hr-mp3-seek -idx -mc -mf -ni -nobps \
|
|
-passwd -rawaudio -rtsp-stream-over-tcp\
|
|
-skipopening -sb -srate -ss -tv -user \
|
|
-vcd -vid -vivo -ifo -ffactor -font \
|
|
-noautosub -nooverlapsub -sid -slang \
|
|
-sub -subcc -subcp -sub-demuxer \
|
|
-subdelay -subfont-autoscale \
|
|
-subfont-blur -subfont-encoding \
|
|
-subfont-osd-scale -subfont-outline \
|
|
-subfont-text-scale -subfps -subfile \
|
|
-subpos -unicode -utf8 -vobsub \
|
|
-vobsubid -ac -afm -aspect -flip \
|
|
-lavdopts -noaspect -nosound -pp -ssf \
|
|
-stereo -sws -vc -vfm -vop -xvidopts\
|
|
-xy -zoom -bandwidth -cuefile \
|
|
-noextbased -rawvideo -overlapsub \
|
|
-sub-bg-alpha -sub-bg-color -subalign \
|
|
-subwidth -sub-no-text-pp -spualign \
|
|
-spuaa -spugauss -pphelp -verbose -v \
|
|
-noni -noidx -nohr-mp3-seek -extbased \
|
|
-bps -oldpp -nozoom -noflip -nounicode \
|
|
-noutf8' -- $cur ) )
|
|
# add mplayer specific options
|
|
[[ "$cmd" == @(?(g)mplayer) ]] && COMPREPLY=( ${COMPREPLY[@]} \
|
|
$(compgen -W '-autoq -autosync -benchmark \
|
|
-framedrop -h -help -hardframedrop \
|
|
-identify -input -lircconf -loop \
|
|
-nojoystick -nolirc -nortc -playlist \
|
|
-quiet -really-quiet -rnd -sdp -skin \
|
|
-slave -softsleep -speed -sstep \
|
|
-use-stdin -dumpaudio -dumpfile \
|
|
-dumpstream -dumpvideo -dumpmicrodvdsub\
|
|
-dumpmpsub -dumpsrtsub -dumpjacosub \
|
|
-dumpsami -dumpsub -osdlevel -af \
|
|
-af-adv -ao -aofile -aop -delay -mixer -mixer-channel \
|
|
-nowaveheader -bpp -brightness \
|
|
-contrast -display -double -dr -dxr2 \
|
|
-fb -fbmode -fbmodeconfig -forcexv -fs \
|
|
-geometry -hue -icelayer -jpeg \
|
|
-monitor-dotclock -monitor-hfreq \
|
|
-monitor-vfreq -monitoraspect \
|
|
-nograbpointer -noslices -panscan \
|
|
-rootwin -saturation -screenw -screenh \
|
|
-stop-xscreensaver -vm -vo -vsync -wid \
|
|
-xineramascreen -z -zrbw -zrcrop \
|
|
-zrdev -zrfd -zrhelp -zrnorm -zrquality \
|
|
-zrvdec -zrhdec -zrxdoff -zrydoff -y \
|
|
-edl -edlout -enqueue -fixed-vo \
|
|
-menu -menu-root -menu-cfg -shuffle \
|
|
-format -aahelp -dfbopts -fstype \
|
|
-guiwid -nokeepaspect -x --help \
|
|
-aaosdcolor -aasubcolor -aadriver \
|
|
-aaextended -aaeight' -- $cur) )
|
|
# add mencoder specific options
|
|
[[ "$cmd" = mencoder ]] && COMPREPLY=( ${COMPREPLY[@]} \
|
|
$(compgen -W '-audio-density -audio-delay \
|
|
-audio-preload -divx4opts -endpos \
|
|
-ffourcc -include -info -lameopts \
|
|
-lavcopts -noskip -o -oac -ofps -ovc \
|
|
-passlogfile -skiplimit -vobsubout \
|
|
-vobsuboutindex -vobsuboutid \
|
|
-xvidencopts -of --verbose' -- $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|fli|FLI|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[34]|MP[34]|og[gmv]|OG[GMV]|wav|WAV|dump|DUMP|mkv|MKV|m4a|M4A|aac|AAC|ape|APE|m2v|M2V|m2p|M2Pdv|DV|rmvb|RMVB|mid|MID|ts|TS|3gp|mpc|MPC|flac|FLAC|264|26l|26L|302|3g2|3G2|ac3|AC3|amv|AMV|asx|ASX|avs|AVS|cif|CIF|dif|DIF|dts|DTS|fla|FLA|flc|FLC|flv|FLV|gxf|GXF|h261|H261|h263|H263|h264|H264|h26l|H26L|it|IT|m2a|M2A|m3u|M3U|m4v|M4V|midi|MIDI|mjpeg|MJPEG|mjpg|MJPG|mod|MOD|mp2|MP2|mpe|MPE|mxf|MXF|nsa|NSA|nsv|NSV|nut|NUT|pls|PLS|qcif|QCIF|s3m|S3M|shn|SHN|smil|SMIL|swf|SWF|tta|TTA|vivo|VIVO|vqf|VQF|xm|XM|y4m|Y4M|yuv4|YUV4)'
|
|
;;
|
|
esac
|
|
|
|
return 0
|
|
}
|
|
complete $filenames -F _mplayer mplayer mencoder gmplayer kplayer
|
|
|
|
fi
|
|
|
|
### Local Variables:
|
|
### mode: shell-script
|
|
### End:
|