From d093fb2441ee99722670f0401215031fc324bb31 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 2 May 2010 15:16:59 +0200 Subject: chunk: added attribute "other" Preparation for cross-fading support in the output thread. --- src/buffer.c | 3 +++ src/chunk.c | 1 + src/chunk.h | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/src/buffer.c b/src/buffer.c index 27a0bf05c..bee871700 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -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); diff --git a/src/chunk.c b/src/chunk.c index 5418b6cda..79597506d 100644 --- a/src/chunk.c +++ b/src/chunk.c @@ -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; diff --git a/src/chunk.h b/src/chunk.h index 23f6321fb..a5fdda429 100644 --- a/src/chunk.h +++ b/src/chunk.h @@ -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; -- cgit v1.2.3