# boolean True or false. "yes" or "no" on the wire.
# list In commands: a list of strings in the command.
# In returns: a list of lines in the response.
+# pair-list In returns: a list of key-value pairs in a response body.
# body In commands: a list of strings as a command body.
# In returns: a list of strings as a response body.
# queue In returns: a list of queue entries in a response body.
} elsif($type eq 'list' or $type eq 'body') {
return ("char ***${name}p",
"int *n${name}p");
+ } elsif($type eq 'pair-list') {
+ return ("struct kvp **${name}p");
} elsif($type eq 'queue' or $type eq 'queue-one') {
return ("struct queue_entry **${name}p");
} elsif($type eq 'user') {
} elsif($type eq 'list' or $type eq 'body') {
return (" * \@param ${name}p $descr\n",
" * \@param n${name}p Number of elements in ${name}p\n");
+ } elsif($type eq 'pair-list') {
+ return (" * \@param ${name}p $descr\n");
} elsif($type eq 'queue' or $type eq 'queue-one') {
return (" * \@param ${name}p $descr\n");
} elsif($type eq 'user') {
push(@c, " return somequeue(c, \"$cmd\", $return->[1]p);\n");
} elsif($return->[0] eq 'queue-one') {
push(@c, " return onequeue(c, \"$cmd\", $return->[1]p);\n");
+ } elsif($return->[0] eq 'pair-list') {
+ push(@c, " return pairlist(c, $return->[1]p, \"$cmd\"",
+ map(", $_->[1]", @$args), ", (char *)0);\n");
} else {
die "$0: C API: unknown type '$return->[0]' for '$cmd'\n";
}
[],
["body", "playlists", "Playlist names"]);
-# TODO prefs
+simple("prefs",
+ "Get all the preferences for a track",
+ "",
+ [["string", "track", "Track name"]],
+ ["pair-list", "prefs", "Track preferences"]);
simple("queue",
"List the queue",
"Users can always delete their own scheduled events; with the admin right you can delete any event.",
[["string", "event", "ID of event to delete"]]);
-# TODO schedule-get
+simple("schedule-get",
+ "Get the details of scheduled event",
+ "",
+ [["string", "id", "Event ID"]],
+ ["pair-list", "actiondata", "Details of event"]);
simple("schedule-list",
"List scheduled events",