X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/936cf6f2bbdbcfeec89a406a7734fe97468bcdc1..d8b957853160200fe6b00d8c0e8c61a3f62ecd7c:/server/speaker.h diff --git a/server/speaker.h b/server/speaker.h index de89ee0..2288042 100644 --- a/server/speaker.h +++ b/server/speaker.h @@ -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 100 - /** @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);