dtas.git  about / heads / tags
duct tape audio suite for *nix
blob d82533bfc9efad10809d42c2e33796d63ecbb237 4004 bytes (raw)
$ git show v0.18.0:examples/zsh-completion/_dtas-ctl	# shows this blob on the CLI

  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

git clone git://80x24.org/dtas.git
git clone https://80x24.org/dtas.git