1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-09 07:47:05 +01:00

18520: add a bunch of old new completions (had all been left unfinished awhile)

This commit is contained in:
Oliver Kiddle 2003-05-12 10:37:47 +00:00
parent 68dc356896
commit 860764b30a
4 changed files with 542 additions and 0 deletions

View file

@ -1,5 +1,15 @@
2003-05-12 Oliver Kiddle <opk@zsh.org>
* 18520, 13691 (Mario Lang), 13701 (Sven):
Completion/Unix/Command/_ecasound: completion for ecasound
* 18520, 15822/15838 (Bruno Bonfils): Completion/Unix/Command/_gpg:
new completion for gpg
* 18520 based on 16380, 16541 (Bruno Bonfils) and users/6013
(GoTaR <gotar@poczta.onet.pl>): Completion/X/Command/_mplayer:
new completion for mplayer
* 18519: Completion/Unix/Command/_init_d: was broken due to
changes in option parsing for the read builtin

View file

@ -0,0 +1,210 @@
#compdef ecasound
local curcontext="$curcontext" state line expl
typeset -A opt_args
_arguments \
'-c[start in interactive mode]' \
'(-q)-d\:-[debug level]:debug level' \
'-D[print all debug information to stderr]' \
'(-d)-q[quiet mode, no output]' \
'(-)--help[show usage information]' \
'(-)--version[show version information]' \
'-n\:-[set the name of chainsetup]:chainsetup name' \
'-s\:-[create a new chainsetup from file]:chainsetup file:_files' \
'-sr\:-[set internal sampling rate]:Internal sampling rate:(8000 11025 22050 44100 48000)' \
'*-a\:-[select active signal chains]:chain name' \
'-b\:-[set the size of buffer in samples]:buffer size:->b' \
'-m\:-[force use of specified mix mode]:Mix mode:((auto\:Automatic simple\:Only\ one\ input/cain/output normal\:Normal\ single-threaded\ mode))' \
'-r[use realtime scheduling policy (SCHED_FIFO)]' \
'-r\:-[use realtime scheduling policy (SCHED_FIFO)]:sched_priority' \
'-x[truncate outputs]' \
'*-z\:-[enable feature]:feature:->z' \
'-t\:-[set processing time in seconds]:seconds (int/float)' \
'-tl[enable looping]' \
'*-f\:-[set sampling parameters for the following input/output files]: :->f' \
'*-y\:-[set starting position for last specified input/output]:seconds' \
'*-i\:-[specifies a new input source]:input source:->io' \
'*-o\:-[specifies a new output source]:output source:->io' \
'*-Md\:-[set the active MIDI-device]:device name:_files' \
'*-Mms\:-[send MMC start/stop to MIDI device-id]:device id' \
'*-mss[sends MIDI-sync to the selected MIDI-device]' \
'*-pf\:-[use the first preset found from file as chain operator]:preset file:_files -g *.epp' \
'*-pn\:-[find preset from global preset database]:preset name:->pn' \
'*-ev[analyze sample data to find max apm value without clipping]' \
'*-ezf[find the optimal value for DC-adjusting]' \
'*-eS\:-[audio stamp]:stamp-id (int)' \
'*-ea\:-[amplify signal]:amplification value (percent)' \
'*-eac\:-[amplify signal of channel]: :->eac' \
'*-eaw\:-[amplify singal (clipping)]: :->eaw' \
'*-eal\:-[limits audio level]:limit (percent)' \
'*-ec\:-[compressor (a simple one)]: :->ec' \
'*-eca\:-[a more advanced compressor]: :->eca' \
'*-enm\:-[noise gate. (each channel is processes separately)]: :->enm' \
'*-ei\:-[pitch shifter (modifies audio pitch by altering its length)]:pitch-shift (percent)' \
'*-epp\:-[normal pan effect]:panning (0=left, 50=center, 100=right)' \
'*-ezx\:-[adjusts the signal DC (use -ezf to find optimal values)]: :->ezx' \
'*-eem-[envelope modulation]: :->emod' \
'*-ef-[apply filter effects]: :->filters' \
'*-erc\:-[copy channel]: :->erc' \
'*-erm\:-[mix all channels to one channel]:to channel' \
'*-et-[time based effects]: :->teffects' \
'*-el\:-[LADSPA Plugin]: :->el' \
'*-eli\:-[LADSPA Plugin]: :->el' \
'*-gc\:-[time crop gate]: :->gc' \
'*-ge\:-[threshold gate]: :->ge' \
&& return 0
case $state in
filters)
_values -S : 'filter effect' \
'1[resonant bandpass filter]: :->ef1' \
'3[resonant lowpass filter]: :->ef3' \
'4[resonant lowpass filter (3rd-order, 36dB)]: :->ef4' \
'a[allpass filter]: :->efa' \
'c[comb filter]: :->efc' \
'b[bandpass filter]: :->efb' \
'h[highpass filter]:cutoff frequency' \
'i[inverse comb filter]: :->efi' \
'l[lowpass filter]:cutoff frequency' \
'r[bandreject filter]: :->efr' \
's[resonator (resonating bandpass filter)]: :->efs'
;;
teffects)
_values -S : 'time based effect' \
'c[chorus]: :->etc' \
'd[delay effect]: :->etd' \
'e[a more advanced reverb effect]: :->ete' \
'f[fake-stereo effect]:delay time (msec)' \
'l[flanger]: :->etl' \
'm[multitap delay]: :->etm' \
'p[phaser]: :->etp' \
'r[reverb effect]: :->etr'
;;
emod)
_values -S : 'envelopme modulation' \
'b[pulse gate]: :->eemb' \
'p[pulse gate (hz)]: :->eemp' \
't[tremolo effect]: :->eemt'
;;
esac
case $state in
b)
_wanted -V sizes expl 'buffer size' compadd \
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
;;
f)
if compset -P '*,*,*,'; then
_values 'interleaving' \
'i[interleaved stream format]' \
'n[noninterleaved]'
elif compset -P '*,*,'; then
_message 'sampling rate'
elif compset -P '*,'; then
_message 'channels'
else
_values 'sampling parameters' \
'u8[unsigned 8-bit]' \
's16_le[signed 16-bit little endian]' \
's16_be[signed 16-bit big endian]' \
's24_le[signed 24-bit little endian]' \
's24_be[signed 24-bit big endian]' \
's32_le[signed 32-bit little endian]' \
's32_be[signed 32-bit big endian]' \
'f32_le[32-bit float (little endian)]' \
'f32_be[32-bit float (big endian)]'
fi
;;
z)
_values -s , feature \
'(nodb)db[enable double-buffering]' \
'(db)nodb[disable double-buffering]' \
'dbsize[set db buffer size]:buffer size in sample frames:(0 1 2 4 8 16)' \
'(nointbuf)intbuf[use extra internal buffering for realtime devices]' \
'(intbuf)nointbuf[prevent extra internal buffering for realtime devices]' \
'xruns[processing will be halted when a under/overrun occurs]' \
'psr[enable the precise-sample-rates]'
;;
io)
if compset -P 'alsa,'; then
if [[ -e /proc/asound ]]; then
eval `grep "^[[:digit:]]" < /proc/asound/cards|awk 'BEGIN {print "_values '\''ALSA device'\''" }; {print "'\''" $1 "[" $6, $7, $8, $9 "]'\''"}'||echo _message Wrong`
else
_message 'ALSA information bot found in proc filesystem'
fi
else
_alternative \
'files:input/output file:_files -g "*.(aif|aiff|mid|wav|ewf|mp3|mp2)"' \
'streams:stream:(stdin stdout)' \
'devices:realtime device:((/dev/dsp alsa\:alsa\ device null\:null\ device))'
fi
;;
pn)
_wanted presets expl preset compadd \
${${(M)${(f)"$(</usr/share/ecasound/effect_presets)"}:#[a-z]*}%% *}
;;
etd)
if compset -P 3 '*,'; then
_message 'mix (wet) (percent)'
elif compset -P 2 '*,'; then
_message 'number of delays'
elif compset -P '*,'; then
_values -s , 'surround mode' \
'0[normal]' \
'1[surround]' \
'2[stereo-spread]'
else
_message 'delay time (msec)'
fi
;;
ge)
if compset -P 2 '*,'; then
_values 'volume mode'
'rms'
elif compset -P '*,'; then
_message 'close threshold (percent)'
else
_message 'open threshold (percent)'
fi
;;
*)
# all the rest are comma separated lists for which we use a message prompt
typeset -A msgs
local str
msgs=(
eac 'amplification value (percent):channel'
eaw 'amplification value (percent):channel:max-clipped-samples'
ec 'compression rate (decibels):threshold (0.0-1.0)'
eca 'peak-level:release-time (seconds):fast compression rate (0.0-1.0):compression rate'
enm 'threshold-level:pre-hold-time (msec):attack-time (msec):post-hold-time (msec):release-time (msec)'
ezx 'left DC fix value:right CD fix value'
eemb 'pulse frequency (beats per minute):on time (msec)'
eemp 'pulse frequency (hz):on time (percent)'
eemt 'tremolo speed (beats per second):depth (percent)'
ef1 'center frequency:width (Hz)'
ef3 'cutoff frequency:resonance:gain'
ef4 'cutoff:resonance'
efa 'delay (samples):feedback (percent)'
efc 'delay (samples):radius (0-1.0)'
efb 'center frequency:width (Hz)'
efi 'delay (samples):radius (0-1.0)'
efr 'center frequency:width (Hz)'
efs 'center frequency:width (Hz)'
erc 'from channel:to channel'
etc 'delay time (msec):variance time (samples):feedback (percent):lfo frequency'
ete 'room size (metres):feedback level (percent):amount of reverbed signal added to the original (wet) (percent)'
etl 'delay time (msec):variance time (samples):feedback (percent):lfo frequency'
etm 'delay time (msec):number of delays:mix (wet) (percent)'
etp 'delay time (msec):variance time (samples):feedback (percent):lfo frequency'
etr 'delay time (msec):surround mode:feedback (percent)'
el 'unique LADSPA name/number'
gc 'start time (seconds):length (seconds)'
)
str=$msgs[$state]
while compset -P 1 '*,'; do
str="${str#*:}"
done
_message "${str%%:*}"
;;
esac

View file

@ -0,0 +1,157 @@
#compdef gpg gpgv
local curcontext="$curcontext" state line expl
typeset -A opt_args
_arguments -C -s -S -A "-*" \
'(-s --sign)'{-s,--sign}'[make a signature]' \
'--clearsign[make a clear text signature]' \
'(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]' \
'(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined with --sign]' \
'(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' \
'--store[store only]' \
'--decrypt[decrypt file or stdin]' \
'--verify[verify a signature]:file attachment:_files' \
'--verify-files[verify a list of files]:_files attachment_files' \
'(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' \
'--decrypt-files[decrypt files]' \
'--list-keys[list all keys]' \
'--list-public-keys[list all public keys]' \
'--list-secret-keys[list all secret keys]' \
'--list-sigs[lists keys and signatures]:key attachment:_pub-keys-list' \
'--check-sigs[lists key, signatures and check them]:key attachment:_pub-keys-list' \
'--fingerprint[list all keys with their fingerprints]:key attachment:_pub-keys-list' \
'--list-packets[list only the sequence of packets]' \
'--gen-key[generate a new pair key]' \
'--edit-key[a menu for edit yours keys]:key attachment:_pub-keys-list' \
'--sign-key[sign a key]:key attachment:_pub-keys-list '\
'--lsign-key[sign a key but mark as non-exportable]:key attachment:_pub-keys-list' \
'--nrsign-key[sign a key non-revocably]' \
'--delete-key[remove key from public keyring]:key attachment:_pub-keys-list' \
'--delete-secret-key[remove key from public & private keyring]:key attachment:_sec-keys-list' \
'--delete-secret-and-public-key:key attachment:_sec-keys-list' \
'--gen-revoke[generate a revocation certificate]' \
'--desig-revoke[generate a designated revocation certificate]' \
'--export[export all key from all keyrings]' \
'--send-keys[send keys to a keyserver]:key attachment:_pub-keys-list' \
'--export-all[export all key and not OpenPGP compatible keys]' \
'--export-secret-keys:key attachment:_sec-keys-list' \
'--export-secret-subkeys:key attachment:_sec-keys-list' \
'--import[import a gpg key from a file]:_files attachment:_files' \
'--fast-import[import a file without build trustdb]:_files attachment:_files' \
'--recv-keys[receive a list of keys from a keyserver]:key attachment:_pub-keys-list' \
'--refresh-keys[update all keys from a keyserver]' \
'--search-keys[search for keys on a key server]' \
'--update-trustdb[update the trust database]' \
'--check-trustdb[unattended trust database update]' \
'--fix-trustdb[fix a corrupted trust database]' \
'--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files' \
'--import-ownertrust[update the trustdb with a file]:file:_files' \
'--dearmor[de-Armor a file or stdin]' \
'--enarmor[en-Armor a file or stdin]' \
'--print-md[print message digests]:algorithm:->ciphers::file:_files' \
'--print-mds[print message digests]::file:_files' \
'--gen-random:count' --gen-prime \
'--version[print info on program version and supported algorithms]' \
'--warranty[print warranty info]' \
'(-h --help)'{-h,--help}'[display usage information]' \
'(-a --armor)'{-a,--armor}'[create ASCII armored output]' \
'(-o --output)'{-o+,--output}'[write output to file]:output file:_files' \
'(-u --local-user)'{-u+,--local-user}'[use name as the user ID to sign]:user attachment:_users'\
'--default-key[specify default user-id for signatures]:key:->secret-key' \
'*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-key' \
'--default-recipient[specify default recipient]:recipient:->public-key' \
'--default-recipient-self[use default key as default recipient]' \
'--no-default-recipient[reset default recipient]' \
'*--encrypt-to[specify recipient]:->public-key' \
'(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]' \
'(-q --quiet)*'{-v,--verbose}'[increase amount of output]' \
'(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]' \
'(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))' \
'(-t --textmode)'{-t,--textmode}'[use canonical text mode]' \
'(-n --dry-run)'{-n,--dry-run}"[don't make any changes]" \
'(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]' \
'(-i --interactive --no-batch)--batch[use batch mode]' \
'--no-tty[never output to tty]' \
'(--batch)--no-batch[disable batch mode]' \
'(--no)--yes[assume "yes" on most questions]' \
'(--yes)--no[assume "no" on most questions]' \
'--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))' \
'--trusted-key[assume that the specified key is trustworthy]:long key id' \
'--always-trust[skip key validation]' \
'--keyserver[specify key server to use]:key server:_hosts' \
'--keyserver-options[specify keyserver options]:options' \
'--import-options[specify options for importing keys]:options' \
'--export-options[specify options for exporting keys]:options' \
--show-photos --no-show-photos '--photo-viewer:command:_command_names -e'\
--exec-path:path:_dir_list' \
--show-keyring[display keyring name when listing keys]' \
'--keyring[add specified file to list of keyrings]:file' \
'--secret-keyring[add specified file to list of secret keyrings]:file' \
--homedir:directory:_directories \
'--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)' \
'--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]' \
'(--no-options)--options[specify file to read options from]:options file:_files' \
"(--options)--no-options[don't read options file]" \
--{status,logger,attribute,passphrase,command}-fd:file\ descriptor:_file_descriptors \
'--sk-comments[include secret key comments when exporting keys]' \
'(--emit-version)--no-version[omit version string in clear text signatures]' \
'(--no-version)--emit-version[force writing of version string in clear text signatures]' \
'(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value' \
'(--no-show-notation)--show-notation[show key signature notations]' \
"(--show-notation)--no-show-notation[don't show key signature notations]" \
'--set-policy-url:policy url' \
'(--no-show-policy-url)--show-policy-url' \
"(--show-policy-url)--no-show-policy-url" \
'--set-filename[specify file which is stored in messages]:file:_files' \
'(--for-your-eyes-only)--for-your-eyes-only' \
"(--for-your-eyes-only)--no-for-your-eyes-only" \
--completes-needed:number --marginals-needed:number --max-cert-depth:number \
--{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers' \
--s2k-mode:value --simple-sk-checksum \
'--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))' \
--no-sig-cache --no-sig-create-check --{,no-}auto-check-trustdb --throw-keyid \
--not-dash-escaped --escape-from-lines --use-agent \
--rfc1991 --{,no-}pgp2 --{,no}pgp6 --{,no}pgp7 --openpgp \
--{,no-}force-v3-sigs --{,no}force-v4-certs --force-mdc --disable-mdc \
--{,no-}allow-non-selfsigned-uid --allow-freeform-uid \
--ignore-time-conflict --ignore-valid-from \
--ignore-crc-error --ignore-mdc-error --lock-once --lock-multiple --lock-never \
--no-random-seed-file --no-verbose --no-greeting --no-secmem-warning \
--no-permission-warning --no-mdc-warning --no-armor --no-default-keyring \
--skip-verify --with-colons --with-key-data --with-fingerprint \
--fast-list-mode --fixed-list-mode --list-only --no-literal --set-filesize \
--emulate-md-encode-bug --show-session-key --override-session-key:string \
--{,no-}ask-sig-expire --{,no}ask-cert-expire --{,no}expert \
--merge-only --allow-secret-key-import --try-all-secrets \
--enable-special-filenames --no-expensive-trust-checks --group:name=value \
--preserve-permissions --personal-{cipher,digest,compress}-preferences:string \
--default-preference-list:string \
'*:args:->args' && return
if [[ $state = args ]]; then
if (( ${+opt_args[--export]} || ${+opt_args[--list-keys]} )); then
state=public-key
elif (( ${+opt_args[--list-secret-keys]} )); then
state=secret-key
else
_files && return
fi
fi
case "$state" in
public-key)
_wanted public-keys expl 'public key' \
compadd ${${(Mo)$(gpg --list-keys 2>/dev/null):%<*>}//(<|>)/} && return
;;
secret-key)
_wanted secretkeys expl 'secret key' compadd \
${${(Mo)$(gpg --list-secret-keys 2>/dev/null):%<*>}//(<|>)/} && return
;;
ciphers)
_wanted ciphers expl cipher compadd \
${${(s.,.)${(M)${(f)"$(gpg --version)"}:#Cipher*}#*:}# } && return
;;
esac
return 1

View file

@ -0,0 +1,165 @@
#compdef mplayer gmplayer
local suf ret=1 curcontext="$curcontext"
local -a vals state line
_x_arguments -C -s \
'!-abs:buffer size' \
'-ac[force usage of a specific audio codec]:audio codec attachment:->audio-codecs' \
'-af[activate audio filters]:filter' -af-adv:option \
'-afm[force usage of a specific audio codec family]:audio codec family:->audio-codec-families' \
'-aid:audio channel id' \
'-alang[select the DVD audio language]:country code' \
'(-nosound)-ao[specify audio driver]:audio-driver attachment:->audio-drivers' \
'-aofile:file:_files' \
'(-nosound)*-aop[specify audio output filter]:audio output filter:->audio-plugins' \
'-aspect:ratio' \
'-audiofile:audio file:_files -g "(#i)*.(wav|mp3|ogg)"' \
-autoq:quality -autosync:factor \
-bandwidth:bandwidth\ value -benchmark -bpp:depth \
'(-nocache)-cache:cache size (kb)' \
'-cdda:audio CD options:(spped paranoia generic-dev sector-size overlap toc-bias toc-offset skip noskip)' \
'-cdrom-device:cdrom device:_files -g "*(-%b)"' \
'-channels:playback channels:((2\:stereo 4\:surround 6\:full\ 5.1))' \
'-chapter:chapter' -contract:value \
'-csslib:libcss.so location:_files' \
-cuefile -delay:delay -demuxer:number -dfbopts:value \
'(-nodouble)-double[enable double buffering]' \
'-dr[enable direct rendering]' \
-dxr2:option -dumpaudio -dumpstream -dumpvideo \
'-dumpfile:output file:_files' \
-dumpmicrodvdsub -dumpmpsub -dumpsrtsub -dumpjacosub -dumpsami -dumpsub \
'-dvd:title id' '-dvdauth:DVD device' \
'-dvd-device:dvd device:_files -g "*(-%b)"' \
'-dvdangle:angle id' '-dvdkey:key' \
'-edl:edl file:_files' '-edlout:edl file:_files' -enqueue \
'-fbmode:video mode' '-fbmodeconfig:config file:_files' \
'-fb[specify framebuffer device to use]:device:_files -g "*(-%b)"' \
'-ffactor:factor:(0 0.75 1 10)' \
-flip '-font:font.desc file:_files' -forceidx -forcexv -format:format \
'-fps[force frame rate]:frame-rate' \
'-framedrop' \
'-frames:frame number' \
'-fs[fullscreen]' -fstype:type \
-gui -{,gui}'wid:X window:_x_window' \
{-h,-help,--help}'[display help info]' \
-hardframedrop \-hr-mp3-seek \
'-hue:video signal hue adjustment' \
'(-rootwin)-icelayer:icewm layer:((0\:Desktop 2\:Below 4\:Normal 6\:OnTop 8\:Dock 10\:AboveDock 12\:Menu))' \
'(-use-stdin)-idx[rebuild index of the avi]' \
'-ifo:ifo file:_files' '-include:config-file:_files' \
'-input:command:(conf ar-delay ar-rate keylist cmdlist js-dev file)' \
'-jpeg:option' -lavdopts:option \
'-lircconf:lirc config file:_files' '-loop:repetitions' \
'-mc[specify max sync correction]:max sync correction' \
'-mf[specify option when decoding multiple PNG or JPEG files]:option' \
'-mixer:mixer device:_files -g "*(-%b)"' \
'-monitoraspect:ratio' -monitor_dotclock -monitor_{h,v}freq:frequency \
'-ni[force usage of non-interlaced avi parser]' \
-noaspect -noautosub -overlapsub -nooverlapsub -nowaveheader \
'(-cache)-nocache' -nobps \
'(-double)-nodouble' -nodshow -noextbased -noframedrop \
-nograbpointer -nokeepaspect -noslices -nojoystick -nolirc -nortc \
'(-ao -aop)-nosound' \
'-osdlevel:osd-level:((0\:subtitles\ only 1\:volume\ +\ seek 2\:volume\ +\ seek\ +\ timer\ +\ percentage 3\:volume\ +\ seek\ +\ timer\ +\ percentage\ +\ total\ time))' \
-panscan:value \
'-passwd[specify password for http authentication]:password' \
'-playlist:file:_files' \
'-pp[apply postprocess filter]:filter attachment' -pphelp \
-quiet -really-quiet -rootwin \
-rawaudio:option -rawvideo:option \
'-rtsp-stream-over-tcp' -saturation:value \
'-sb[seek to byte position]:byte' \
-screen{w,h}:pixels \
'-sdp[input file is a SDP file]' -shuffle \
'-skin[skin directory]:skin directory:_directories' \
-skipopening -slave \
'-sid[turn on DVD subtitles]:language id' \
'-speed[set playback speed rate]:playback speed rate' \
'-srate[specify frequency of audio playback]:frequency (Hz)' \
'-ss[seek to given time position]:position (hh:mm\[:ss\])' \
'-sstep[specify time between displayed frames]:time (seconds)' \
-ssf:mode -stop_xscreensaver \
'-stereo:mode:((0\:stereo 1\:left\ channel 2\:right\ channel))' \
'-sub[use specified subtitle file]:subtitle file:_files' \
-subfps:rate -sub-bg-alpha:value -sub-bg-color:value -subcc -subcp:codepage -subdelay:seconds \
-subpos:vertical\ position -s{ub,pu}'align:alignment:((0\:top 1\:center 2\:bottom))' \
'-subfont-autoscale:mode:((0\:no\ autoscale 1\:proportional\ to\ height 2\:proportional\ to\ width 3\:proportional\ to\ diagonal))' \
-subfont-blur:radius -subfont-encoding:encoding -subfont-osd-scale:coefficient -subfont-outline:thickness -subfont-text-scale:coefficient \
-sub-no-text-pp -spuaa:mode -spugauss:gauss -sws:scalar\ type \
'-tv[TV grabbing]:option' \
-unicode -utf8 \
'-user[specify username for http authentication]' \
'(-idx)-use-stdin' \
'-vcd[play video cd track]:track' \
'-vc[force usage of a specific video codec]:video-codec attachment:->video-codecs' \
'-v[enable verbose output]' \
'*-vf[video output filters]:video output filters:->video-output-plugins' \
'-vfm[force usage of a specific video codec family]:video-codec-family:(1 2 3 4 5)' \
'-vid[select video channel]:video-channel' \
'-vm[try to change to a better video mode]' \
'-vo[specify video driver]:video-driver attachment:->video-drivers' \
'-vop[specify video output filters]:video output filters:->video-output-plugins' \
-vobsub:vobsub\ file -vobsubid:id -vsync \
'-x[scale image to x width if driver supports]:width' \
-xineramascreeen:screen -xvidopts:option \
'-xy[scale image by factor if driver supports]:factor' \
'-y[scale image to y height if driver supports]:height' \
'-z[specify compression level for png output]:compression-level:((0\:no\ compression 1 2 3 4 5 6\:default\ compression 7 8 9\:max\ compression))' \
'-zoom[use software scaling, where available (use with -nofs)]' \
-zrbw -zrcrop -zrdev -zrfd -zrhelp -zrnorm -zrquality -zr{h,v}dec -zr{x,y}doff \
'(-use-stdin)*:video file:->mfiles'
case "$state" in
mfiles)
_tags files urls
while _tags; do
_requested files expl 'video file' _files -g \
"*.(#i)(avi|mp3|mpg|mpe|mpeg|m1v|mov|asf|vob|mjpg|wma|wmv|asx|qt|rm)" && ret=0
if _requested urls; then
while _next_label urls expl url; do
_urls "$expl[@]" && ret=0
compadd -S '' "$expl[@]" {dvd,vcd,cdda,cddb,tv}:// && ret=0
done
fi
(( ret )) || return 0
done
;;
audio-codecs)
vals=( help ${${${(f)"$(_call_program audio-codecs $words[1] -ac help -quiet 2>/dev/null)"}[(r)ac:*,-1]}[2,-1]/ ##[^ ]# #[^ ]# #/:} )
_describe -t audio-codecs 'audio codec' vals && ret=0
;;
audio-drivers)
vals=( help ${${${(f)"$(_call_program audio-drivers mplayer -ao help 2>/dev/null)"}[(r) *,-1]#?}/ /:} )
_describe -t audio-drivers 'audio drivers' vals && ret=0
;;
audio-codec-families)
compset -P '*,'
compset -S ',*'
vals=( help ${${${(f)"$(_call_program audio-codec-families mplayer -afm help 2>/dev/null)"}[(r) [^:]#,-1]## ##}/ ##/:} )
_describe -t audio-codec-families 'audio drivers' vals && ret=0
;;
audio-plugins)
_values -s : 'audio output plugin' \
'list[specify list of plugins]:plugin:(resample surround format volume extrastereo volnorm delay)' \
'format[output format]:format' \
'fout[output frequency]:frequency (Hz)' \
'volume[volume level]:volume <0-255>' \
'mul[stereo coefficient]:coefficient' \
'softclip[compressor]' && ret=0
;;
video-codecs)
vals=( help ${${${(f)"$(_call_program audio-codecs $words[1] -vc help -quiet 2>/dev/null)"}[(r)vc:*,-1]}[2,-1]/ ##[^ ]# #[^ ]# #/:} )
_describe -t video-codecs 'video codec' vals && ret=0
;;
video-drivers)
vals=( help ${${${(f)"$(_call_program video-drivers mplayer -vo help 2>/dev/null)"}[(r) *,-1]#?}/ /:} )
_describe -t video-drivers 'video drivers' vals && ret=0
;;
video-output-plugins)
vals=( help ${${${${(f)"$(_call_program video-output-plugins mplayer -vop help 2>/dev/null)"}[(r) *,-1]}/ /}/ #: /:} )
_describe -t video-output-plugins 'video output plugin' vals && ret=0
;;
esac
return ret