chiark / gitweb /
split out dcgi_get_cookie
[disorder] / server / speaker.h
index 4e897e4bab6f0f906140e318b38139adf5a666d1..228804254efe3ccd3f4bd6018515b0be43b8bb0f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of DisOrder
- * Copyright (C) 2005, 2006, 2007 Richard Kettlewell
+ * Copyright (C) 2005-2008 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
@@ -55,9 +55,6 @@
  */
 #define NETWORK_BYTES (1500-8/*UDP*/-40/*IP*/-8/*conservatism*/)
 
-/** @brief Maximum RTP playahead (ms) */
-#define RTP_AHEAD_MS 1000
-
 /** @brief Maximum number of FDs to poll for */
 #define NFDS 256
 
@@ -91,6 +88,14 @@ struct track {
   /** @brief Slot in @ref fds */
   int slot;
 
+  /** @brief Set when playable
+   *
+   * A track becomes playable whenever it fills its buffer or reaches EOF; it
+   * stops being playable when it entirely empties its buffer.  Tracks start
+   * out life not playable.
+   */
+  int playable;
+  
   /** @brief Input buffer
    *
    * 1Mbyte is enough for nearly 6s of 44100Hz 16-bit stereo
@@ -177,6 +182,8 @@ struct speaker_backend {
    *
    * @p timeoutp points to the poll timeout value in milliseconds.  It may be
    * reduced, but never increased.
+   *
+   * NB you can NOT assume that @c beforepoll is always called before @c play.
    */
   void (*beforepoll)(int *timeoutp);