chiark / gitweb /
disobedience, playrtp: Have `playrtp' handle volume control.
[disorder] / lib / queue.h
index 72e38769726442557231928b0d28a2743ebdabf2..9bad76e11d6b9b6658583d7aad0e16695b0e7937 100644 (file)
@@ -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
@@ -188,6 +188,13 @@ struct queue_entry {
   /** @brief How much of track has been played so far (seconds) */
   long sofar;
 
+  /** @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
@@ -213,6 +220,12 @@ struct queue_entry {
   
   /** @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);
@@ -231,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 */
 
 /*