From fe3d58004cf28fb98dd29159187d256aaf5d0781 Mon Sep 17 00:00:00 2001 From: Sean Bartell Date: Fri, 12 Aug 2011 01:27:13 -0400 Subject: rbcodec refactoring: get_audio_base_data_type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function has been changed to rbcodec_format_is_atomic, which doesn't require an enum from the kernel. Change-Id: I1d537605087fe130a9b545509d7b8a340806dbf2 Reviewed-on: http://gerrit.rockbox.org/141 Reviewed-by: Nils Wallménius Tested-by: Nils Wallménius --- apps/playback.c | 9 ++++----- lib/rbcodec/metadata/metadata.c | 12 ++++-------- lib/rbcodec/metadata/metadata.h | 2 +- lib/rbcodec/test/warble.c | 2 +- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index 100558177e..944775d6e1 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -972,7 +972,7 @@ static void audio_update_filebuf_watermark(int seconds) if (id3) { - if (get_audio_base_data_type(id3->codectype) == TYPE_PACKET_AUDIO) + if (!rbcodec_format_is_atomic(id3->codectype)) { bytes = id3->bitrate * (1000/8) * seconds; } @@ -1897,7 +1897,8 @@ static int audio_finish_load_track(struct track_info *info) calls it again, so we don't save it (and they shouldn't accumulate) */ size_t offset = resume_rewind_adjusted_offset(track_id3); - enum data_type audiotype = get_audio_base_data_type(track_id3->codectype); + enum data_type audiotype = rbcodec_format_is_atomic(track_id3->codectype) ? + TYPE_ATOMIC_AUDIO : TYPE_PACKET_AUDIO; if (audiotype == TYPE_ATOMIC_AUDIO) logf("Loading atomic %d", track_id3->codectype); @@ -2342,9 +2343,7 @@ static void audio_on_codec_complete(int status) struct mp3entry *track_id3 = bufgetid3(info->id3_hid); - if (track_id3 && - get_audio_base_data_type(track_id3->codectype) - == TYPE_PACKET_AUDIO) + if (track_id3 && !rbcodec_format_is_atomic(track_id3->codectype)) { /* Continue filling after this track */ audio_reset_and_rebuffer(TRACK_LIST_KEEP_CURRENT, 1); diff --git a/lib/rbcodec/metadata/metadata.c b/lib/rbcodec/metadata/metadata.c index b91e00cc4e..6837e97316 100644 --- a/lib/rbcodec/metadata/metadata.c +++ b/lib/rbcodec/metadata/metadata.c @@ -307,10 +307,10 @@ int get_audio_base_codec_type(int type) } /* Get the basic audio type */ -enum data_type get_audio_base_data_type(int afmt) +bool rbcodec_format_is_atomic(int afmt) { if ((unsigned)afmt >= AFMT_NUM_CODECS) - return TYPE_UNKNOWN; + return false; switch (get_audio_base_codec_type(afmt)) { @@ -327,15 +327,11 @@ enum data_type get_audio_base_data_type(int afmt) case AFMT_KSS: /* Type must be allocated and loaded in its entirety onto the buffer */ - return TYPE_ATOMIC_AUDIO; + return true; default: /* Assume type may be loaded and discarded incrementally */ - return TYPE_PACKET_AUDIO; - - case AFMT_UNKNOWN: - /* Have no idea at all */ - return TYPE_UNKNOWN; + return false; } } diff --git a/lib/rbcodec/metadata/metadata.h b/lib/rbcodec/metadata/metadata.h index 55e4d76f25..5a1c17bc11 100644 --- a/lib/rbcodec/metadata/metadata.h +++ b/lib/rbcodec/metadata/metadata.h @@ -340,7 +340,7 @@ void wipe_mp3entry(struct mp3entry *id3); void fill_metadata_from_path(struct mp3entry *id3, const char *trackname); int get_audio_base_codec_type(int type); void strip_tags(int handle_id); -enum data_type get_audio_base_data_type(int afmt); +bool rbcodec_format_is_atomic(int afmt); bool format_buffers_with_offset(int afmt); #endif diff --git a/lib/rbcodec/test/warble.c b/lib/rbcodec/test/warble.c index e3d9456f4d..8dc27da9eb 100644 --- a/lib/rbcodec/test/warble.c +++ b/lib/rbcodec/test/warble.c @@ -475,7 +475,7 @@ static size_t ci_read_filebuf(void *ptr, size_t size) static void *ci_request_buffer(size_t *realsize, size_t reqsize) { free(input_buffer); - if (get_audio_base_data_type(ci.id3->codectype) == TYPE_PACKET_AUDIO) + if (!rbcodec_format_is_atomic(ci.id3->codectype)) reqsize = MIN(reqsize, 32 * 1024); input_buffer = malloc(reqsize); *realsize = read(input_fd, input_buffer, reqsize); -- cgit v1.2.3