diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | src/chunk.c | 34 | ||||
-rw-r--r-- | src/chunk.h | 61 | ||||
-rw-r--r-- | src/crossfade.c | 2 | ||||
-rw-r--r-- | src/main.c | 1 | ||||
-rw-r--r-- | src/pipe.c | 15 | ||||
-rw-r--r-- | src/pipe.h | 31 | ||||
-rw-r--r-- | src/player_thread.c | 1 |
8 files changed, 103 insertions, 44 deletions
diff --git a/Makefile.am b/Makefile.am index da0b87103..df03d1cbd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -85,6 +85,7 @@ mpd_headers = \ src/normalize.h \ src/compress.h \ src/pipe.h \ + src/chunk.h \ src/path.h \ src/mapper.h \ src/pcm_buffer.h \ @@ -179,6 +180,7 @@ src_mpd_SOURCES = \ src/normalize.c \ src/compress.c \ src/pipe.c \ + src/chunk.c \ src/path.c \ src/mapper.c \ src/pcm_convert.c \ diff --git a/src/chunk.c b/src/chunk.c new file mode 100644 index 000000000..8a91a1d11 --- /dev/null +++ b/src/chunk.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2003-2009 The Music Player Daemon Project + * http://www.musicpd.org + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "chunk.h" +#include "tag.h" + +void +music_chunk_init(struct music_chunk *chunk) +{ + chunk->length = 0; + chunk->tag = NULL; +} + +void +music_chunk_free(struct music_chunk *chunk) +{ + if (chunk->tag != NULL) + tag_free(chunk->tag); +} diff --git a/src/chunk.h b/src/chunk.h new file mode 100644 index 000000000..747d018ca --- /dev/null +++ b/src/chunk.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2003-2009 The Music Player Daemon Project + * http://www.musicpd.org + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef MPD_CHUNK_H +#define MPD_CHUNK_H + +#include <stdint.h> + +enum { + /* pick 1020 since its devisible for 8,16,24, and 32-bit audio */ + CHUNK_SIZE = 1020, +}; + +/** + * A chunk of music data. Its format is defined by the + * music_pipe_append() caller. + */ +struct music_chunk { + /** number of bytes stored in this chunk */ + uint16_t length; + + /** current bit rate of the source file */ + uint16_t bit_rate; + + /** the time stamp within the song */ + float times; + + /** + * An optional tag associated with this chunk (and the + * following chunks); appears at song boundaries. The tag + * object is owned by this chunk, and must be freed when this + * chunk is deinitialized in music_chunk_free() + */ + struct tag *tag; + + /** the data (probably PCM) */ + char data[CHUNK_SIZE]; +}; + +void +music_chunk_init(struct music_chunk *chunk); + +void +music_chunk_free(struct music_chunk *chunk); + +#endif diff --git a/src/crossfade.c b/src/crossfade.c index fb3515fc4..2bac4a649 100644 --- a/src/crossfade.c +++ b/src/crossfade.c @@ -19,7 +19,7 @@ #include "crossfade.h" #include "pcm_mix.h" -#include "pipe.h" +#include "chunk.h" #include "audio_format.h" #include "tag.h" diff --git a/src/main.c b/src/main.c index cad9e5904..39c6a3550 100644 --- a/src/main.c +++ b/src/main.c @@ -32,6 +32,7 @@ #include "path.h" #include "mapper.h" #include "pipe.h" +#include "chunk.h" #include "decoder_control.h" #include "player_control.h" #include "stats.h" diff --git a/src/pipe.c b/src/pipe.c index c681ab2c9..0c393c0b1 100644 --- a/src/pipe.c +++ b/src/pipe.c @@ -17,6 +17,7 @@ */ #include "pipe.h" +#include "chunk.h" #include "notify.h" #include "audio_format.h" #include "tag.h" @@ -27,20 +28,6 @@ struct music_pipe music_pipe; -static void -music_chunk_init(struct music_chunk *chunk) -{ - chunk->length = 0; - chunk->tag = NULL; -} - -static void -music_chunk_free(struct music_chunk *chunk) -{ - if (chunk->tag != NULL) - tag_free(chunk->tag); -} - void music_pipe_init(unsigned int size, struct notify *notify) { diff --git a/src/pipe.h b/src/pipe.h index 3bb627ae7..0d871d886 100644 --- a/src/pipe.h +++ b/src/pipe.h @@ -23,36 +23,9 @@ #include <stdint.h> #include <stdbool.h> -/* pick 1020 since its devisible for 8,16,24, and 32-bit audio */ -#define CHUNK_SIZE 1020 - struct audio_format; - -/** - * A chunk of music data. Its format is defined by the - * music_pipe_append() caller. - */ -struct music_chunk { - /** number of bytes stored in this chunk */ - uint16_t length; - - /** current bit rate of the source file */ - uint16_t bit_rate; - - /** the time stamp within the song */ - float times; - - /** - * An optional tag associated with this chunk (and the - * following chunks); appears at song boundaries. The tag - * object is owned by this chunk, and must be freed when this - * chunk is deinitialized in music_chunk_free() - */ - struct tag *tag; - - /** the data (probably PCM) */ - char data[CHUNK_SIZE]; -}; +struct tag; +struct music_chunk; /** * A ring set of buffers where the decoder appends data after the end, diff --git a/src/player_thread.c b/src/player_thread.c index fb3e9bf68..678a6a3ee 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -28,6 +28,7 @@ #include "song.h" #include "tag.h" #include "pipe.h" +#include "chunk.h" #include "idle.h" #include "main.h" |