X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/d42e98caaaf4f07c8d1252236f03eb68b8be4619..c645bbf04f3a2d814d029a3e6010b5622d0e9224:/lib/queue.h diff --git a/lib/queue.h b/lib/queue.h index 1c70cfd..9bad76e 100644 --- a/lib/queue.h +++ b/lib/queue.h @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2004-2008 Richard Kettlewell + * Copyright (C) 2004-2009 Richard Kettlewell * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,9 +38,9 @@ enum playing_state { */ playing_isscratch, - /** @brief Could not find a player + /** @brief OBSOLETE * - * Obsolete - nothing sets this any more + * Formerly meant that no player could be found. Nothing sets this any more. */ playing_no_player, @@ -188,7 +188,21 @@ struct queue_entry { /** @brief How much of track has been played so far (seconds) */ long sofar; - /** @brief True if decoder is connected to speaker */ + /** @brief True if track preparation is underway + * + * This is set when a decoder has been started and is expected to connect to + * the speaker, but the speaker has not sent as @ref SM_ARRIVED message back + * yet. */ + int preparing; + + /** @brief True if decoder is connected to speaker + * + * This is not a @ref playing_state for a couple of reasons + * - it is orthogonal to @ref playing_started and @ref playing_unplayed + * - it would have to be hidden to other users of @c queue_entry + * + * For non-raw tracks this should always be zero. + */ int prepared; /* For DISORDER_PLAYER_PAUSES only: */ @@ -203,6 +217,15 @@ struct queue_entry { /** @brief Owning queue (for Disobedience only) */ struct queuelike *ql; + + /** @brief Decoder (or player) process ID */ + pid_t pid; + + /** @brief Termination signal sent to subprocess + * + * Used to supress 'terminated' messages. + */ + int killed; }; void queue_insert_entry(struct queue_entry *b, struct queue_entry *n); @@ -221,6 +244,8 @@ int queue_unmarshall_vec(struct queue_entry *q, int nvec, char **vec, char *queue_marshall(const struct queue_entry *q); /* marshall @q@ into a UTF-8 string */ +void queue_free(struct queue_entry *q, int rest); + #endif /* QUEUE_H */ /*