char **tracks;
int ntracks, n;
struct tracksort_data *tsd;
+ char *id;
if(dcgi_client) {
if((track = cgi_get("track"))) {
- disorder_play(dcgi_client, track);
+ disorder_play(dcgi_client, track, &id);
} else if((dir = cgi_get("dir"))) {
if(disorder_files(dcgi_client, dir, 0, &tracks, &ntracks))
ntracks = 0;
tsd = tracksort_init(ntracks, tracks, "track");
for(n = 0; n < ntracks; ++n)
- disorder_play(dcgi_client, tsd[n].track);
+ disorder_play(dcgi_client, tsd[n].track, &id);
}
}
redirect(0);
}
static void cf_play(char **argv) {
+ char *id;
while(*argv)
- if(disorder_play(getclient(), *argv++)) exit(EXIT_FAILURE);
+ if(disorder_play(getclient(), *argv++, &id)) exit(EXIT_FAILURE);
}
static void cf_remove(char **argv) {
return disorder_simple(c, 0, "pause", (char *)0);
}
+int disorder_play(disorder_client *c, const char *track, char **idp) {
+ return dequote(disorder_simple(c, idp, "play", track, (char *)0), idp);
+}
+
int disorder_playlist_delete(disorder_client *c, const char *playlist) {
return disorder_simple(c, 0, "playlist-delete", playlist, (char *)0);
}
*/
int disorder_pause(disorder_client *c);
+/** @brief Play a track
+ *
+ * Requires the 'play' right.
+ *
+ * @param track Track to play
+ * @param idp Queue ID of new track
+ * @return 0 on success, non-0 on error
+ */
+int disorder_play(disorder_client *c, const char *track, char **idp);
+
/** @brief Delete a playlist
*
* Requires the 'play' right and permission to modify the playlist.
return ret;
}
-/** @brief Play a track
- * @param c Client
- * @param track Track to play (UTF-8)
- * @return 0 on success, non-0 on error
- */
-int disorder_play(disorder_client *c, const char *track) {
- return disorder_simple(c, 0, "play", track, (char *)0);
-}
-
/** @brief Move a track
* @param c Client
* @param track Track to move (UTF-8)
const char *cookie);
int disorder_close(disorder_client *c);
int disorder_version(disorder_client *c, char **versionp);
-int disorder_play(disorder_client *c, const char *track);
int disorder_remove(disorder_client *c, const char *track);
int disorder_move(disorder_client *c, const char *track, int delta);
int disorder_enable(disorder_client *c);
"Requires the 'pause' right.",
[]);
+string("play",
+ "Play a track",
+ "Requires the 'play' right.",
+ [["track", "Track to play"]],
+ ["id", "Queue ID of new track"]);
+
# TODO playafter
# TODO playing