#compdef ogg123 # this still needs fixing with the --device-option code local expl _arguments \ '--audio-buffer[size of output buffer]:kilobytes:' \ {'(-@)--list','(--list)-@'}'[playlist to play from]:playlist:_files' \ {'(-b)--buffer','(--buffer)-b'}'[size of input buffer]:kilobytes:' \ {'(-p)--prebuffer','(--prebuffer)-p'}'[prebuffer percentage]:percent:' \ {'(-d)--device','(--device)-d'}'[output device]:device:((null\:"discards all data" oss\:"Open Sound System" sun\:"Sun Audio" alsa\:"Advanced Linux Sound Architecture" irix\:"IRIX audio" arts\:"aRts Sound Daemon" esd\:"Enlightened Sound Daemon" au\:"Sun audio file" raw\:"Raw sample" wav\:"WAV file"))' \ {'(-f)--file','(--file)-f'}'[output file for file devices]:file:_files' \ {'(-h)--help','(--help)-h'}'[show help]' \ {'(-k)--skip','(--skip)-k'}'[skip into file]:seconds:' \ {'*--device-option','*-o'}'[assign device option values]:devopts:->devopts' \ {'(--verbose -v -q)--quiet','(--verbose -v --quiet)-q'}'[quiet mode]' \ {'(-V)--version','(--version)-V'}'[display version information]' \ {'(--quiet -q)*--verbose','(--quiet -q)*-v'}'[increase verbosity]' \ {'(-x)--nth','(--nth)-x'}'[block decode interval]:number:' \ {'(-y)--ntimes','(--ntimes)-y'}'[block repeat count]:number:' \ {'(-z)--shuffle','(--shuffle)-z'}'[play input audio in random order]' \ '*:files:->files' && return 0 case "$state" in files) _description files expl 'ogg vorbis file' _files "$expl[@]" -g '*.ogg' ;; devopts) _setup devopts _tags devopts _description devopts expl 'device options' compadd "$expl[@]" -S : - dsp dev card buf_size host byteorder ;; esac