From 6a5964b75c1c24eb7d757da0479b5cefa607b402 Mon Sep 17 00:00:00 2001 Message-Id: <6a5964b75c1c24eb7d757da0479b5cefa607b402.1715182342.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sat, 1 Nov 2008 12:39:43 +0000 Subject: [PATCH] Obsolete playing_isscratch. The constant still exists as a transition measure (and will probably do so for some time to come). Organization: Straylight/Edgeware From: Richard Kettlewell --- cgi/actions.c | 29 ++++++++++++----------------- lib/queue.h | 5 +++-- server/play.c | 1 - server/server-queue.c | 3 +++ 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/cgi/actions.c b/cgi/actions.c index b5c516c..d752660 100644 --- a/cgi/actions.c +++ b/cgi/actions.c @@ -80,7 +80,7 @@ static void act_playing(void) { if(now + refresh > fin) refresh = fin - now; } - if(dcgi_queue && dcgi_queue->state == playing_isscratch) { + if(dcgi_queue && dcgi_queue->origin == origin_scratch) { /* next track is a scratch, don't leave more than the inter-track gap */ if(refresh > config->gap) refresh = config->gap; @@ -179,24 +179,19 @@ static void act_remove(void) { error(0, "missing 'id' argument"); else if(!(q = dcgi_findtrack(id))) error(0, "unknown queue id %s", id); - else switch(q->state) { - case playing_isscratch: - case playing_failed: - case playing_no_player: - case playing_ok: - case playing_quitting: - case playing_scratched: - error(0, "does not make sense to scratch %s", id); - break; - case playing_paused: /* started but paused */ - case playing_started: /* started to play */ + else if(q->origin == origin_scratch) + /* can't scratch scratches */ + error(0, "does not make sense to scratch or remove %s", id); + else if(q->state == playing_paused + || q->state == playing_started) + /* removing the playing track = scratching */ disorder_scratch(dcgi_client, id); - break; - case playing_random: /* unplayed randomly chosen track */ - case playing_unplayed: /* haven't played this track yet */ + else if(q->state == playing_unplayed) + /* otherwise it must be in the queue */ disorder_remove(dcgi_client, id); - break; - } + else + /* various error states */ + error(0, "does not make sense to scratch or remove %s", id); } redirect(0); } diff --git a/lib/queue.h b/lib/queue.h index f62ccac..17a6d22 100644 --- a/lib/queue.h +++ b/lib/queue.h @@ -31,9 +31,10 @@ enum playing_state { /** @brief Track failed to play */ playing_failed, - /** @brief Track is a scratch and has not been played yet + /** @brief OBSOLETE * - * Going to become obsolete. + * Formerly denoted an unplayed scratch. This is now indicated by @p + * playing_unplayed and @p origin_scratch. */ playing_isscratch, diff --git a/server/play.c b/server/play.c index 8b79843..af42bd3 100644 --- a/server/play.c +++ b/server/play.c @@ -643,7 +643,6 @@ void scratch(const char *who, const char *id) { if(playing_is_enabled() && config->scratch.n) { int r = rand() * (double)config->scratch.n / (RAND_MAX + 1.0); q = queue_add(config->scratch.s[r], who, WHERE_START, origin_scratch); - q->state = playing_isscratch; } notify_scratch(playing->track, playing->submitter, who, time(0) - playing->played); diff --git a/server/server-queue.c b/server/server-queue.c index 779e5e1..e65477c 100644 --- a/server/server-queue.c +++ b/server/server-queue.c @@ -85,9 +85,12 @@ static void queue_do_read(struct queue_entry *head, const char *path) { /* Fix up origin field as best we can; will be wrong in some cases but * hopefully not too horribly so. */ q->origin = q->submitter ? origin_picked : origin_random; + /* Eliminated obsolete states, since they are assumed elsewhere not to be + * set. */ switch(q->state) { case playing_isscratch: q->origin = origin_scratch; + q->state = playing_unplayed; break; case playing_random: q->state = playing_unplayed; -- [mdw]