diff options
-rw-r--r-- | src/crossfade.c | 3 | ||||
-rw-r--r-- | src/crossfade.h | 5 | ||||
-rw-r--r-- | src/pipe.c | 14 | ||||
-rw-r--r-- | src/pipe.h | 13 | ||||
-rw-r--r-- | src/player_thread.c | 8 |
5 files changed, 24 insertions, 19 deletions
diff --git a/src/crossfade.c b/src/crossfade.c index b4d4695c4..95f7e8566 100644 --- a/src/crossfade.c +++ b/src/crossfade.c @@ -20,6 +20,7 @@ #include "crossfade.h" #include "audio.h" #include "pcm_utils.h" +#include "pipe.h" #include <assert.h> #include <string.h> @@ -48,7 +49,7 @@ unsigned cross_fade_calc(float duration, float total_time, return chunks; } -void cross_fade_apply(ob_chunk * a, const ob_chunk * b, +void cross_fade_apply(struct music_chunk *a, const struct music_chunk *b, const struct audio_format *format, unsigned int current_chunk, unsigned int num_chunks) { diff --git a/src/crossfade.h b/src/crossfade.h index 5ceb37b11..34ddcb433 100644 --- a/src/crossfade.h +++ b/src/crossfade.h @@ -20,15 +20,14 @@ #ifndef MPD_CROSSFADE_H #define MPD_CROSSFADE_H -#include "pipe.h" - struct audio_format; +struct music_chunk; unsigned cross_fade_calc(float duration, float total_time, const struct audio_format *af, unsigned max_chunks); -void cross_fade_apply(ob_chunk * a, const ob_chunk * b, +void cross_fade_apply(struct music_chunk *a, const struct music_chunk *b, const struct audio_format *format, unsigned int current_chunk, unsigned int num_chunks); diff --git a/src/pipe.c b/src/pipe.c index 9b8683834..28a248030 100644 --- a/src/pipe.c +++ b/src/pipe.c @@ -23,7 +23,7 @@ #include <assert.h> #include <string.h> -struct output_buffer ob; +struct music_pipe ob; void ob_init(unsigned int size, struct notify *notify) @@ -82,7 +82,7 @@ static void output_buffer_expand(unsigned i) void ob_flush(void) { - ob_chunk *chunk = ob_get_chunk(ob.end); + struct music_chunk *chunk = ob_get_chunk(ob.end); if (chunk->chunkSize > 0) { unsigned int next = successor(ob.end); @@ -139,7 +139,8 @@ int ob_absolute(const unsigned relative) return (int)i; } -ob_chunk * ob_get_chunk(const unsigned i) +struct music_chunk * +ob_get_chunk(const unsigned i) { assert(i < ob.size); @@ -152,11 +153,12 @@ ob_chunk * ob_get_chunk(const unsigned i) * @return the chunk which has room for more data; NULL if there is no * room. */ -static ob_chunk *tail_chunk(float data_time, uint16_t bitRate) +static struct music_chunk * +tail_chunk(float data_time, uint16_t bitRate) { const size_t frame_size = audio_format_frame_size(&ob.audioFormat); unsigned int next; - ob_chunk *chunk; + struct music_chunk *chunk; chunk = ob_get_chunk(ob.end); assert(chunk->chunkSize <= sizeof(chunk->data)); @@ -189,7 +191,7 @@ size_t ob_append(const void *data0, size_t datalen, const unsigned char *data = data0; const size_t frame_size = audio_format_frame_size(&ob.audioFormat); size_t ret = 0, dataToSend; - ob_chunk *chunk = NULL; + struct music_chunk *chunk = NULL; /* no partial frames allowed */ assert((datalen % frame_size) == 0); diff --git a/src/pipe.h b/src/pipe.h index 477b1e358..bc25ec820 100644 --- a/src/pipe.h +++ b/src/pipe.h @@ -27,19 +27,19 @@ /* pick 1020 since its devisible for 8,16,24, and 32-bit audio */ #define CHUNK_SIZE 1020 -typedef struct _OutputBufferChunk { +struct music_chunk { uint16_t chunkSize; uint16_t bitRate; float times; char data[CHUNK_SIZE]; -} ob_chunk; +}; /** * A ring set of buffers where the decoder appends data after the end, * and the player consumes data from the beginning. */ -struct output_buffer { - ob_chunk *chunks; +struct music_pipe { + struct music_chunk *chunks; unsigned int size; @@ -58,7 +58,7 @@ struct output_buffer { struct notify *notify; }; -extern struct output_buffer ob; +extern struct music_pipe ob; void ob_init(unsigned int size, struct notify *notify); @@ -100,7 +100,8 @@ unsigned ob_available(void); */ int ob_absolute(const unsigned relative); -ob_chunk * ob_get_chunk(const unsigned i); +struct music_chunk * +ob_get_chunk(const unsigned i); /** * Append a data block to the buffer. diff --git a/src/player_thread.c b/src/player_thread.c index 0c2407eac..7da0269c0 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -26,6 +26,7 @@ #include "main_notify.h" #include "crossfade.h" #include "song.h" +#include "pipe.h" enum xfade_state { XFADE_DISABLED = -1, @@ -205,8 +206,9 @@ static void processDecodeInput(struct player *player) } } -static int playChunk(ob_chunk * chunk, - const struct audio_format *format, double sizeToTime) +static int +playChunk(struct music_chunk *chunk, const struct audio_format *format, + double sizeToTime) { pc.elapsedTime = chunk->times; pc.bitRate = chunk->bitRate; @@ -355,7 +357,7 @@ static void do_play(void) notify_wait(&pc.notify); else if (!ob_is_empty() && (int)ob.begin != player.next_song_chunk) { - ob_chunk *beginChunk = ob_get_chunk(ob.begin); + struct music_chunk *beginChunk = ob_get_chunk(ob.begin); unsigned int fadePosition; if (player.xfade == XFADE_ENABLED && player.next_song_chunk >= 0 && |