X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/094e0af7be0a5c3bf65be093bba0f31cdf2f9718..6cad0c845dc5d6f6b4d4cc5e9ae7aee39d279b49:/lib/queue.h diff --git a/lib/queue.h b/lib/queue.h index 6baf916..72e3876 100644 --- a/lib/queue.h +++ b/lib/queue.h @@ -31,15 +31,16 @@ 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, - /** @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, @@ -60,10 +61,11 @@ enum playing_state { /** @brief Track is playing but the server is quitting */ playing_quitting, - /** @brief Track was randomly chosen and has not been played + /** @brief OBSOLETE * - * This is going to become obsolete eventually; it's equivalent to @ref - * playing_unplayed but for tracks with a different origin. + * Formerly this meant a track that was picked at random and has not yet been + * played. This situation is now indicated by @p playing_unplayed and @p + * origin_random (or @p origin_adopted). */ playing_random, @@ -92,8 +94,7 @@ extern const char *const playing_states[]; enum track_origin { /** @brief Track was picked at random and then adopted by a user * - * @c submitter identifies who adopted it. This isn't implemented - * yet. + * @c submitter identifies who adopted it. */ origin_adopted, @@ -187,7 +188,14 @@ 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 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: */ @@ -202,6 +210,9 @@ struct queue_entry { /** @brief Owning queue (for Disobedience only) */ struct queuelike *ql; + + /** @brief Decoder (or player) process ID */ + pid_t pid; }; void queue_insert_entry(struct queue_entry *b, struct queue_entry *n);