chiark / gitweb /
Fiddle with CSS+HTML in effort to get more consistent buttons
[disorder] / lib / speaker-protocol.h
index b271373a1a129066cc5b4f5f2c54ebc8935eb4ef..55a016e036d1cddc0ea93882ebe2ca8eb46041ce 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of DisOrder
- * Copyright (C) 2005, 2007 Richard Kettlewell
+ * Copyright (C) 2005, 2007, 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
@@ -42,6 +42,7 @@ struct speaker_message {
    * - @ref SM_PAUSED
    * - @ref SM_FINISHED
    * - @ref SM_PLAYING
+   * - @ref SM_UNKNOWN
    */
   int type;
 
@@ -83,12 +84,24 @@ struct speaker_message {
 /** @brief Finished playing track @c id */
 #define SM_FINISHED 129
 
+/** @brief Never heard of track @c id */
+#define SM_UNKNOWN 130
+
 /** @brief Currently track @c id, @c data seconds in
  *
  * This is sent from time to time while a track is playing.
  */
 #define SM_PLAYING 131
 
+/** @brief Speaker process is ready
+ *
+ * This is sent once at startup when the speaker has finished its
+ * initialization. */
+#define SM_READY 132
+
+/** @brief Cancelled track @c id which wasn't playing */
+#define SM_STILLBORN 133
+
 void speaker_send(int fd, const struct speaker_message *sm);
 /* Send a message. */
 
@@ -98,6 +111,9 @@ int speaker_recv(int fd, struct speaker_message *sm);
 
 /** @brief One chunk in a stream */
 struct stream_header {
+  /** @brief Number of bytes */
+  uint32_t nbytes;
+
   /** @brief Frames per second */
   uint32_t rate;
 
@@ -116,9 +132,6 @@ struct stream_header {
 #else
 # define ENDIAN_NATIVE ENDIAN_LITTLE
 #endif
-  
-  /** @brief Number of bytes */
-  uint32_t nbytes;
 } attribute((packed));
 
 static inline int formats_equal(const struct stream_header *a,