char *author;
char *artist;
char *album;
+ char *album_artist;
char *year;
char *copyright;
char *comment;
char *pComment;
char *pRating;
char *pAlbum; //Album/Movie/
+ char *pAlbum_Artist;
char *pYear;
char *pGenre;
char *pTrackNum; //Track number/Position in set
if (pInfo->pComment) mmfile_free (pInfo->pComment);
if (pInfo->pRating) mmfile_free (pInfo->pRating);
if (pInfo->pAlbum) mmfile_free (pInfo->pAlbum);
+ if (pInfo->pAlbum_Artist) mmfile_free (pInfo->pAlbum_Artist);
if (pInfo->pYear) mmfile_free (pInfo->pYear);
if (pInfo->pGenre) mmfile_free (pInfo->pGenre);
if (pInfo->pTrackNum) mmfile_free (pInfo->pTrackNum);
privateData->tagInfo.author = NULL;
privateData->tagInfo.artist = NULL;
privateData->tagInfo.album = NULL;
+ privateData->tagInfo.album_artist = NULL;
privateData->tagInfo.year = NULL;
privateData->tagInfo.copyright = NULL;
privateData->tagInfo.comment = NULL;
} else if(!strcasecmp(tag->key, "album")) {
if (formatContext->album) free (formatContext->album);
formatContext->album = mmfile_strdup (tag->value);
+ } else if(!strcasecmp(tag->key, "album_artist")) {
+ if (formatContext->album_artist) free (formatContext->album_artist);
+ formatContext->album_artist = mmfile_strdup (tag->value);
} else if(!strcasecmp(tag->key, "copyright")) {
if (formatContext->copyright) free (formatContext->copyright);
formatContext->copyright = mmfile_strdup (tag->value);
if (privateData->pCopyright) formatContext->copyright = mmfile_strdup(privateData->pCopyright);
if (privateData->pComment) formatContext->comment = mmfile_strdup(privateData->pComment);
if (privateData->pAlbum) formatContext->album = mmfile_strdup(privateData->pAlbum);
+ if (privateData->pAlbum_Artist) formatContext->album_artist = mmfile_strdup(privateData->pAlbum_Artist);
if (privateData->pYear) formatContext->year = mmfile_strdup(privateData->pYear);
if (privateData->pGenre) formatContext->genre = mmfile_strdup(privateData->pGenre);
if (privateData->pTrackNum) formatContext->tagTrackNum = mmfile_strdup(privateData->pTrackNum);
if (formatContext->author) mmfile_free(formatContext->author);
if (formatContext->composer) mmfile_free(formatContext->composer);
if (formatContext->album) mmfile_free(formatContext->album);
+ if (formatContext->album_artist) mmfile_free(formatContext->album_artist);
if (formatContext->copyright) mmfile_free(formatContext->copyright);
if (formatContext->description) mmfile_free(formatContext->description);
if (formatContext->comment) mmfile_free(formatContext->comment);
#define MM_FILE_TAG_ARTIST "tag-artist" /**< Artist */
#define MM_FILE_TAG_TITLE "tag-title" /**< Title */
#define MM_FILE_TAG_ALBUM "tag-album" /**< Album */
+#define MM_FILE_TAG_ALBUM_ARTIST "tag-album-artist" /**< Album_Artist */
#define MM_FILE_TAG_GENRE "tag-genre" /**< Genre */
#define MM_FILE_TAG_AUTHOR "tag-author" /**< Author / Composer */
#define MM_FILE_TAG_COPYRIGHT "tag-copyright" /**< Copyright */
char *author;
char *composer;
char *album;
+ char *album_artist;
char *copyright;
char *description;
char *comment;
{"tag-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
{"tag-title", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
{"tag-album", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
+ {"tag-album-artist", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
{"tag-genre", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
{"tag-author", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
{"tag-copyright", MMF_VALUE_TYPE_STRING, MM_ATTRS_FLAG_RW, (void *)NULL},
if (formatContext->author) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_AUTHOR, formatContext->author);
if (formatContext->composer && formatContext->author == NULL)
mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_AUTHOR, formatContext->composer);
- if (formatContext->album) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ALBUM , formatContext->album);
+ if (formatContext->album) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ALBUM, formatContext->album);
+ if (formatContext->album_artist) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_ALBUM_ARTIST, formatContext->album_artist);
if (formatContext->copyright) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_COPYRIGHT, formatContext->copyright);
if (formatContext->description) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_DESCRIPTION, formatContext->description);
if (formatContext->comment) mm_attrs_set_string_by_name(hattrs, MM_FILE_TAG_COMMENT, formatContext->comment);
mmfile_value_t artist;
mmfile_value_t title;
mmfile_value_t album;
+ mmfile_value_t album_artist;
mmfile_value_t genre;
mmfile_value_t author;
mmfile_value_t copyright;
&err_attr_name,
MM_FILE_TAG_ARTIST, &ctag.artist.value.s_val, &ctag.artist.len,
MM_FILE_TAG_ALBUM, &ctag.album.value.s_val, &ctag.album.len,
+ MM_FILE_TAG_ALBUM_ARTIST, &ctag.album_artist.value.s_val, &ctag.album_artist.len,
MM_FILE_TAG_TITLE, &ctag.title.value.s_val, &ctag.title.len,
MM_FILE_TAG_GENRE, &ctag.genre.value.s_val, &ctag.genre.len,
MM_FILE_TAG_AUTHOR, &ctag.author.value.s_val, &ctag.author.len,
printf("# artist: [%s]\n", ctag.artist.value.s_val);
printf("# title: [%s]\n", ctag.title.value.s_val);
printf("# album: [%s]\n", ctag.album.value.s_val);
+ printf("# album_artist: [%s]\n", ctag.album_artist.value.s_val);
printf("# genre: [%s]\n", ctag.genre.value.s_val);
printf("# author: [%s]\n", ctag.author.value.s_val);
printf("# copyright: [%s]\n", ctag.copyright.value.s_val);
char *pComment;
char *pRating;
char *pAlbum; //Album/Movie/
+ char *pAlbum_Artist;
char *pYear;
char *pGenre;
char *pTrackNum; //Track number/Position in set
if (pInfo->pComment) mmfile_free (pInfo->pComment);
if (pInfo->pRating) mmfile_free (pInfo->pRating);
if (pInfo->pAlbum) mmfile_free (pInfo->pAlbum);
+ if (pInfo->pAlbum_Artist) mmfile_free (pInfo->pAlbum_Artist);
if (pInfo->pYear) mmfile_free (pInfo->pYear);
if (pInfo->pGenre) mmfile_free (pInfo->pGenre);
if (pInfo->pTrackNum) mmfile_free (pInfo->pTrackNum);
if (in->author) debug_msg ("author = %s\n", in->author);
if (in->composer) debug_msg ("composer = %s\n", in->composer);
if (in->album) debug_msg ("album = %s\n", in->album);
+ if (in->album_artist) debug_msg ("album_artist = %s\n", in->album_artist);
if (in->copyright) debug_msg ("copyright = %s\n", in->copyright);
if (in->comment) debug_msg ("comment = %s\n", in->comment);
if (in->genre) debug_msg ("genre = %s\n", in->genre);
if (!formatContext->copyright) formatContext->copyright = mmfile_strdup((const char*)tagInfo.pCopyright);
if (!formatContext->comment) formatContext->comment = mmfile_strdup((const char*)tagInfo.pComment);
if (!formatContext->album) formatContext->album = mmfile_strdup((const char*)tagInfo.pAlbum);
+ if (!formatContext->album_artist) formatContext->album_artist = mmfile_strdup((const char*)tagInfo.pAlbum_Artist);
if (!formatContext->year) formatContext->year = mmfile_strdup((const char*)tagInfo.pYear);
if (!formatContext->genre) formatContext->genre = mmfile_strdup((const char*)tagInfo.pGenre);
if (!formatContext->tagTrackNum) formatContext->tagTrackNum = mmfile_strdup((const char*)tagInfo.pTrackNum);
debug_msg ("Initial total header size = [0x%x]\n", total);
while (size <= 8 && !(total & len_mask)) {
- debug_error ("This case can not be handled yet....")
+ debug_error ("This case can not be handled yet....");
size++;
len_mask >>= 1;
}
if (size > 8) {
- debug_error ("This case can not be handled yet....")
+ debug_error ("This case can not be handled yet....");
ret = 0;
goto exit;
}
total &= (len_mask - 1);
while (n < size) {
- debug_error ("This case can not be handled yet....")
+ debug_error ("This case can not be handled yet....");
ret = 0;
goto exit;
}