chunk: added attribute "other"

Preparation for cross-fading support in the output thread.
This commit is contained in:
Max Kellermann 2010-05-02 15:16:59 +02:00
parent 0140804ef9
commit d093fb2441
3 changed files with 10 additions and 0 deletions

View File

@ -118,6 +118,9 @@ music_buffer_return(struct music_buffer *buffer, struct music_chunk *chunk)
assert(buffer != NULL);
assert(chunk != NULL);
if (chunk->other != NULL)
music_buffer_return(buffer, chunk->other);
g_mutex_lock(buffer->mutex);
music_chunk_free(chunk);

View File

@ -27,6 +27,7 @@
void
music_chunk_init(struct music_chunk *chunk)
{
chunk->other = NULL;
chunk->length = 0;
chunk->tag = NULL;
chunk->replay_gain_serial = 0;

View File

@ -44,6 +44,12 @@ struct music_chunk {
/** the next chunk in a linked list */
struct music_chunk *next;
/**
* An optional chunk which should be mixed into this chunk.
* This is used for cross-fading.
*/
struct music_chunk *other;
/** number of bytes stored in this chunk */
uint16_t length;