#define GENRE_COUNT 149
-static const char *MpegAudio_Genre[GENRE_COUNT] = {"Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal",
+static const char * const MpegAudio_Genre[GENRE_COUNT] = {"Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal",
"New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial",
"Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk",
"Fusion", "Trance", "Classical", "Instrumental", "Acid", "House", "Game", "Sound Clip", "Gospel", "Noise",
{
char *mpegAudioGenre = NULL/*, *tmpGenreForV1Tag = NULL*/;
bool bAdditionGenre = false /*, bMpegAudioFrame = false*/;
- int mpegAudioFileLen = 0, idv2IntGenre = 148/*, tmpinx = 0, tmpinx2=0*/;
- unsigned char genre = pInfo->genre;
+ int mpegAudioFileLen = 0, idv2IntGenre = GENRE_COUNT - 1/*, tmpinx = 0, tmpinx2=0*/;
/* for Genre Info */
if (pInfo->tagV2Info.bGenreMarked == false) {
if (pInfo->bV1tagFound == true) {
- debug_msg(RELEASE, "Genre: %d\n", genre);
-
- if (genre > 147)
- genre = 148;
-
- if (MpegAudio_Genre[genre] != NULL) {
- pInfo->genreLen = strlen(MpegAudio_Genre[genre]);
- if (pInfo->genreLen > 0) {
- /* Give space for NULL character. Hence added "+1" */
- pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
- if (pInfo->pGenre) {
- SAFE_STRLCPY(pInfo->pGenre, MpegAudio_Genre[genre], pInfo->genreLen + 1);
- }
- }
- }
+ debug_msg(RELEASE, "Genre: %d\n", pInfo->genre);
+
+ if (pInfo->genre > GENRE_COUNT - 1)
+ pInfo->genre = GENRE_COUNT - 1;
+
+ pInfo->pGenre = mmfile_strdup(MpegAudio_Genre[pInfo->genre]);
+ if (pInfo->pGenre)
+ pInfo->genreLen = strlen(pInfo->pGenre);
+ else
+ debug_error(RELEASE, "Genre: memory allocation failed.\n");
} else {
debug_msg(RELEASE, "Genre was not Found.\n");
}
} else if (pInfo->tagV2Info.bGenreMarked == true) {
debug_msg(RELEASE, "pInfo->genreLen size is Zero Or not UTF16 code! genreLen[%d] genre[%s]\n", pInfo->genreLen, pInfo->pGenre);
- if (pInfo->pGenre) {
- pInfo->genreLen = strlen(pInfo->pGenre);
- mpegAudioGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
- if (mpegAudioGenre != NULL) {
- SAFE_STRLCPY(mpegAudioGenre, pInfo->pGenre, pInfo->genreLen + 1);
- }
- } else {
+ if (pInfo->pGenre)
+ mpegAudioGenre = mmfile_strdup(pInfo->pGenre);
+ else
pInfo->genreLen = 0;
- }
mmfile_free(pInfo->pGenre);
if (bAdditionGenre == true) {
idv2IntGenre = atoi(mpegAudioGenre + 1);
- if (idv2IntGenre > 147 || idv2IntGenre < 0)
- idv2IntGenre = 148;
+ if (idv2IntGenre > GENRE_COUNT - 1 || idv2IntGenre < 0)
+ idv2IntGenre = GENRE_COUNT - 1;
+
+ pInfo->pGenre = mmfile_strdup(MpegAudio_Genre[idv2IntGenre]);
+ if (pInfo->pGenre)
+ pInfo->genreLen = strlen(pInfo->pGenre);
+ else
+ debug_error(RELEASE, "Genre: memory allocation failed.\n");
- if (MpegAudio_Genre[idv2IntGenre] != NULL) {
- pInfo->genreLen = strlen(MpegAudio_Genre[idv2IntGenre]);
- if (pInfo->genreLen > 0) {
- /* Give space for NULL character. Hence added "+1" */
- pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
- if (pInfo->pGenre) {
- SAFE_STRLCPY(pInfo->pGenre, MpegAudio_Genre[idv2IntGenre], pInfo->genreLen + 1);
- }
- }
- }
debug_msg(RELEASE, "pInfo->pGenre = %s\n", pInfo->pGenre);
} else if (bAdditionGenre == false && pInfo->genreLen > 0) {
/**
*/
/* Give space for NULL character. Hence added "+1" */
- pInfo->pGenre = mmfile_malloc(sizeof(char) * (pInfo->genreLen + 1));
- if (pInfo->pGenre) {
- SAFE_STRLCPY(pInfo->pGenre, mpegAudioGenre, pInfo->genreLen + 1);
- }
+ pInfo->pGenre = mmfile_strdup(mpegAudioGenre);
+ if (pInfo->pGenre)
+ pInfo->genreLen = strlen(pInfo->pGenre);
+ else
+ debug_error(RELEASE, "Genre: memory allocation failed.\n");
+
debug_msg(RELEASE, "pInfo->pGenre = %s, pInfo->genreLen = %d\n", pInfo->pGenre, pInfo->genreLen);
} else {
debug_msg(RELEASE, "Failed to \"(...)\" value to genre = %s\n", pInfo->pGenre);
debug_msg(RELEASE, "mpegAudioGenre = %s\n", mpegAudioGenre);
}
mmfile_free(mpegAudioGenre);
-
} else {
debug_msg(RELEASE, "Neither ID3 v1 nor v2 info doesn't have Genre Info.\n");
}