X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..4942ee7d61bf22ba38bf026c7d05028cb7db0d54:/server/queue-ops.c diff --git a/server/queue-ops.c b/server/queue-ops.c index fd883aa..ed97c0c 100644 --- a/server/queue-ops.c +++ b/server/queue-ops.c @@ -15,6 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +/** @file server/queue-ops.c + * @brief Track queues (server-specific code) + */ #include "disorder-server.h" static int find_in_list(struct queue_entry *needle, @@ -46,15 +49,17 @@ static void queue_id(struct queue_entry *q) { } struct queue_entry *queue_add(const char *track, const char *submitter, - int where) { + int where, enum track_origin origin) { struct queue_entry *q, *beforeme; q = xmalloc(sizeof *q); q->track = xstrdup(track); q->submitter = submitter ? xstrdup(submitter) : 0; q->state = playing_unplayed; + q->origin = origin; + q->pid = -1; queue_id(q); - time(&q->when); + xtime(&q->when); switch(where) { case WHERE_START: queue_insert_entry(&qhead, q); @@ -67,7 +72,7 @@ struct queue_entry *queue_add(const char *track, const char *submitter, * at the end. */ beforeme = &qhead; while(beforeme->prev != &qhead - && beforeme->prev->state == playing_random) + && beforeme->prev->origin == origin_random) beforeme = beforeme->prev; queue_insert_entry(beforeme->prev, q); break;