1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
| | #compdef dtas-ctl
# To the extent possible under law, James Rowe has waived all copyright and
# related or neighboring rights to this example.
_arguments \
':dtas-ctl command:((
cd\:"change the current working directory of the player"
clear\:"clear current queue"
cue\:"display the index/offsets of the embedded CUE sheet"
current\:"output information about the current track/command in YAML"
enq\:"enqueue the given FILENAME for playback"
enq-cmd\:"run the following command for playback"
env\:"set/unset environment variables"
format\:"configure the format between source and sink"
pause\:"pause playback"
play\:"restart playback from pause"
play_pause\:"toggle the play/pause state"
queue\ cat\:"dump the contents of the queue as YAML"
restart\:"restarts all processes in the current pipeline"
rg\:"configure ReplayGain support"
seek\:"seek the current track to a specified time"
skip\:"abort current track/command"
sink\:"control sinks"
source\:"control sources"
state\ dump\:"immediately dump the state of the player"
tl\:"control tracklist"
trim\:"limits playback of all tracks in the tracklist"
watch\:"adds the client to the passive watch list for notifications"
))' \
"*::subcmd:->subcmd" && return 0
case "$words[1]" in
(cd)
_arguments \
":select dir:_path_files -/"
;;
(cue)
_arguments \
':dtas-ctl command:((
next\:"skip to the next cue sheet offset"
prev\:"skip to the previous cue sheet offset"
goto\:"go to the cue index"
seek\:"seek within the current cue index"
))'
;;
(enq)
_arguments \
"*:select file:_files"
;;
(format)
_arguments \
'*:dtas-ctl format command:((
channels\:"number of channels to use internally"
endian\:"change endianess"
bits\:"sample precision"
rate\:"sample rate of audio"
type\:"change the raw PCM format"
))'
;;
(seek)
_arguments \
":select track:_guard '[0-9]#' 'track number'"
;;
(sink)
_arguments \
':sink subcommand:((
ls\:"list names of current sinks"
cat\:"dump SINKNAME config in YAML"
rm\:"remove SINKNAME"
ed\:"create/edit SINKNAME"
))'
;;
(source)
_arguments \
':source subcommand:((
cat\:"dump the current source command and env in YAML"
ed\:"edit the source parameters"
ls\:"dump the names of sources sorted by tryorder"
restart\:"restart the current source command"
))'
;;
(state dump)
_arguments \
":select file:_files"
;;
(tl)
_arguments \
':tl subcommand:((
add\:"add files to the tracklist"
clear\:"clear current tracklist"
consume\:"show/or change consume status of the tracklist"
current\:"display the pathname to the currently playing track"
current-id\:"display the TRACKID of the currently playing track"
remove\:"remove the track with the given TRACKID from the track list"
get\:"returns a list of TRACKIDS mapped to shell-escaped filenames"
goto\:"plays the given TRACKID"
max\:"sets or gets the maximum number of tracks allowed in the tracklist"
next\:"jump to the next track in the tracklist"
prev\:"jump to the previous track in the tracklist"
repeat\:"show/or change repeat status of the tracklist"
shuffle\:"show/or change the current shuffle status of the tracklist"
swap\:"swaps the positions of two tracks"
tracks\:"returns a list of all TRACKIDS in the tracklist"
))'
;;
(trim)
_arguments \
":select beginning" \
":select end"
;;
(*)
;;
esac
|