X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/84aa9f9339ef6fa104588dd510c433ef20a96fe1..b0b15b7ced28b3c6ddfcd4b0a7e46ee6432a243c:/lib/speaker-protocol.h diff --git a/lib/speaker-protocol.h b/lib/speaker-protocol.h index b271373..55a016e 100644 --- a/lib/speaker-protocol.h +++ b/lib/speaker-protocol.h @@ -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,