summaryrefslogtreecommitdiff
path: root/apps/metadata.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-11-06 18:07:30 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-11-06 18:07:30 +0000
commit0f5cb94aa4a334366a746fcbb22f3335ca413265 (patch)
tree8f89a96628c1810d51ee9816daf78edb8c76fcd4 /apps/metadata.c
parent0b22795e26ee09de14f6ac23219adeda12f2fd5b (diff)
downloadrockbox-0f5cb94aa4a334366a746fcbb22f3335ca413265.zip
rockbox-0f5cb94aa4a334366a746fcbb22f3335ca413265.tar.gz
rockbox-0f5cb94aa4a334366a746fcbb22f3335ca413265.tar.bz2
rockbox-0f5cb94aa4a334366a746fcbb22f3335ca413265.tar.xz
Big Patch adds primarily: Samplerate and format selection to recording for SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11452 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/metadata.c')
-rw-r--r--apps/metadata.c48
1 files changed, 14 insertions, 34 deletions
diff --git a/apps/metadata.c b/apps/metadata.c
index ee0100e..8455368 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -88,36 +88,6 @@ struct apetag_item_header
long flags;
};
-struct format_list
-{
- char format;
- char extension[5];
-};
-
-static const struct format_list formats[] =
-{
- { AFMT_MPA_L1, "mp1" },
- { AFMT_MPA_L2, "mp2" },
- { AFMT_MPA_L2, "mpa" },
- { AFMT_MPA_L3, "mp3" },
-#if CONFIG_CODEC == SWCODEC
- { AFMT_OGG_VORBIS, "ogg" },
- { AFMT_PCM_WAV, "wav" },
- { AFMT_FLAC, "flac" },
- { AFMT_MPC, "mpc" },
- { AFMT_A52, "a52" },
- { AFMT_A52, "ac3" },
- { AFMT_WAVPACK, "wv" },
- { AFMT_ALAC, "m4a" },
- { AFMT_AAC, "mp4" },
- { AFMT_SHN, "shn" },
- { AFMT_AIFF, "aif" },
- { AFMT_AIFF, "aiff" },
- { AFMT_SID, "sid" },
- { AFMT_ADX, "adx" },
-#endif
-};
-
#if CONFIG_CODEC == SWCODEC
static const unsigned short a52_bitrates[] =
{
@@ -1691,14 +1661,24 @@ unsigned int probe_file_format(const char *filename)
return AFMT_UNKNOWN;
}
- suffix += 1;
+ /* skip '.' */
+ suffix++;
+
+ for (i = 1; i < AFMT_NUM_CODECS; i++)
+ {
+ /* search extension list for type */
+ const char *ext = audio_formats[i].ext_list;
- for (i = 0; i < sizeof(formats) / sizeof(formats[0]); i++)
+ do
{
- if (strcasecmp(suffix, formats[i].extension) == 0)
+ if (strcasecmp(suffix, ext) == 0)
{
- return formats[i].format;
+ return i;
+ }
+
+ ext += strlen(ext) + 1;
}
+ while (*ext != '\0');
}
return AFMT_UNKNOWN;