X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/84aa9f9339ef6fa104588dd510c433ef20a96fe1..2b2a5fed939a267d9ab95ce900a15bf11e108edf:/lib/speaker-protocol.h diff --git a/lib/speaker-protocol.h b/lib/speaker-protocol.h index b271373..520a0c6 100644 --- a/lib/speaker-protocol.h +++ b/lib/speaker-protocol.h @@ -42,6 +42,7 @@ struct speaker_message { * - @ref SM_PAUSED * - @ref SM_FINISHED * - @ref SM_PLAYING + * - @ref SM_UNKNOWN */ int type; @@ -83,12 +84,21 @@ 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 + void speaker_send(int fd, const struct speaker_message *sm); /* Send a message. */ @@ -98,6 +108,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 +129,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,