diff options
author | Max Kellermann <max@duempel.org> | 2010-05-02 15:16:59 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-05-02 17:46:06 +0200 |
commit | d093fb2441ee99722670f0401215031fc324bb31 (patch) | |
tree | 44c2747cd2120c1d9330eb7df59280fb5779e731 | |
parent | 0140804ef948b3c919e2e0c69dd175f443574fb9 (diff) | |
download | mpd-d093fb2441ee99722670f0401215031fc324bb31.tar.gz mpd-d093fb2441ee99722670f0401215031fc324bb31.tar.xz mpd-d093fb2441ee99722670f0401215031fc324bb31.zip |
chunk: added attribute "other"
Preparation for cross-fading support in the output thread.
-rw-r--r-- | src/buffer.c | 3 | ||||
-rw-r--r-- | src/chunk.c | 1 | ||||
-rw-r--r-- | src/chunk.h | 6 |
3 files changed, 10 insertions, 0 deletions
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; |