return METADATA_EDITOR_ERROR_NONE;
}
-static int __MP4_getStringItem(metadata_editor_s *_metadata, const char *itemname, char **value)
+static int __MP4_getStringItem(MP4::Tag *tag, const char *itemname, char **value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_get_parameter(_metadata, value);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_get_parameter() [%d]", ret);
- metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
-
- auto tag = dynamic_cast<MP4::Tag*>(_metadata->file->tag());
metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist");
+ metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
auto &itemMap = tag->itemListMap();
auto it = itemMap.find(itemname);
return METADATA_EDITOR_ERROR_NONE;
}
-static int __MP4_getIntegerItem(metadata_editor_s *_metadata, const char *itemname, char **value)
+static int __MP4_getIntegerItem(MP4::Tag *tag, const char *itemname, char **value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_get_parameter(_metadata, value);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_get_parameter() [%d]", ret);
- metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
-
- auto tag = dynamic_cast<MP4::Tag*>(_metadata->file->tag());
metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist");
+ metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
auto &itemMap = tag->itemListMap();
auto it = itemMap.find(itemname);
return METADATA_EDITOR_ERROR_NONE;
}
-static int __MP4_updateStringItem(metadata_editor_s *_metadata, const char *itemname, const char *value)
+static int __MP4_updateStringItem(MP4::Tag *tag, const char *itemname, const char *value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_set_parameter(_metadata);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret);
- metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
-
- auto tag = dynamic_cast<MP4::Tag*>(_metadata->file->tag());
metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist");
+ metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
// Get map of items directly from tag and launch a search of specific item
auto &itemMap = tag->itemListMap();
return METADATA_EDITOR_ERROR_NONE;
}
-static int __MP4_updateIntegerItem(metadata_editor_s *_metadata, const char *itemname, const char *value)
+static int __MP4_updateIntegerItem(MP4::Tag *tag, const char *itemname, const char *value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_set_parameter(_metadata);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret);
- metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
-
- auto tag = dynamic_cast<MP4::Tag*>(_metadata->file->tag());
metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist");
+ metadata_editor_retvm_if(!itemname, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid itemname");
// Get map of items directly from tag and launch a search of specific item
auto &itemMap = tag->itemListMap();
}
}
-static int __MP4_getNumberOfPictures(metadata_editor_s *_metadata, char **value)
+static int __MP4_getNumberOfPictures(MP4::Tag *tag, char **value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_get_parameter(_metadata, value);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_get_parameter() [%d]", ret);
-
- auto tag = dynamic_cast<MP4::Tag*>(_metadata->file->tag());
metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist");
*value = g_strdup_printf("%u", tag->contains("covr") ? tag->item("covr").toCoverArtList().size() : 0);
return METADATA_EDITOR_ERROR_NONE;
}
-static int __FLAC_getNumberOfPictures(metadata_editor_s *_metadata, char **value)
+static int __FLAC_getNumberOfPictures(FLAC::File *file, char **value)
{
- int ret = METADATA_EDITOR_ERROR_NONE;
-
- ret = __check_metadata_get_parameter(_metadata, value);
- metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_get_parameter() [%d]", ret);
-
- auto _file = dynamic_cast<FLAC::File*>(_metadata->file);
-
- *value = g_strdup_printf("%u", _file->pictureList().size());
+ if (file)
+ *value = g_strdup_printf("%u", file->pictureList().size());
+ else
+ *value = g_strdup("0");
return METADATA_EDITOR_ERROR_NONE;
}
metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_get_parameter() [%d]", ret);
switch (attribute) { // Check which one of frame types was given to the function for processing
- case METADATA_EDITOR_ATTR_ARTIST: return __MP4_getStringItem(metadata, "\xA9""ART", value);
- case METADATA_EDITOR_ATTR_TITLE: return __MP4_getStringItem(metadata, "\xA9""nam", value);
- case METADATA_EDITOR_ATTR_ALBUM: return __MP4_getStringItem(metadata, "\xA9""alb", value);
- case METADATA_EDITOR_ATTR_GENRE: return __MP4_getStringItem(metadata, "\xA9""gen", value);
- case METADATA_EDITOR_ATTR_AUTHOR: return __MP4_getStringItem(metadata, "\xA9""wrt", value);
- case METADATA_EDITOR_ATTR_COPYRIGHT: return __MP4_getStringItem(metadata, "cprt", value);
- case METADATA_EDITOR_ATTR_DATE: return __MP4_getStringItem(metadata, "\xA9""day", value);
- case METADATA_EDITOR_ATTR_DESCRIPTION: return __MP4_getStringItem(metadata, "desc", value);
- case METADATA_EDITOR_ATTR_COMMENT: return __MP4_getStringItem(metadata, "\xA9""cmt", value);
- case METADATA_EDITOR_ATTR_TRACK_NUM: return __MP4_getIntegerItem(metadata, "trkn", value);
- case METADATA_EDITOR_ATTR_CONDUCTOR: return __MP4_getStringItem(metadata, "cond", value);
- case METADATA_EDITOR_ATTR_UNSYNCLYRICS: return __MP4_getStringItem(metadata, "\xA9""lyr", value);
- case METADATA_EDITOR_ATTR_PICTURE_NUM: return __MP4_getNumberOfPictures(metadata, value);
+ case METADATA_EDITOR_ATTR_ARTIST: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""ART", value);
+ case METADATA_EDITOR_ATTR_TITLE: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""nam", value);
+ case METADATA_EDITOR_ATTR_ALBUM: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""alb", value);
+ case METADATA_EDITOR_ATTR_GENRE: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""gen", value);
+ case METADATA_EDITOR_ATTR_AUTHOR: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""wrt", value);
+ case METADATA_EDITOR_ATTR_COPYRIGHT: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "cprt", value);
+ case METADATA_EDITOR_ATTR_DATE: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""day", value);
+ case METADATA_EDITOR_ATTR_DESCRIPTION: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "desc", value);
+ case METADATA_EDITOR_ATTR_COMMENT: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""cmt", value);
+ case METADATA_EDITOR_ATTR_TRACK_NUM: return __MP4_getIntegerItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "trkn", value);
+ case METADATA_EDITOR_ATTR_CONDUCTOR: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "cond", value);
+ case METADATA_EDITOR_ATTR_UNSYNCLYRICS: return __MP4_getStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""lyr", value);
+ case METADATA_EDITOR_ATTR_PICTURE_NUM: return __MP4_getNumberOfPictures(dynamic_cast<MP4::Tag*>(metadata->file->tag()), value);
default:
metadata_editor_error("Invalid attribute [%d]", attribute);
return METADATA_EDITOR_ERROR_INVALID_PARAMETER;
case METADATA_EDITOR_ATTR_TRACK_NUM: return __xiph_getFieldValue(xtag, "TRACKNUMBER", value);
case METADATA_EDITOR_ATTR_CONDUCTOR: return __xiph_getFieldValue(xtag, "CONDUCTOR", value);
case METADATA_EDITOR_ATTR_UNSYNCLYRICS: return __xiph_getFieldValue(xtag, "LYRICS", value);
- case METADATA_EDITOR_ATTR_PICTURE_NUM: return __FLAC_getNumberOfPictures(metadata, value);
+ case METADATA_EDITOR_ATTR_PICTURE_NUM: return __FLAC_getNumberOfPictures(_file, value);
default:
metadata_editor_error("Invalid attribute [%d]", attribute);
return METADATA_EDITOR_ERROR_INVALID_PARAMETER;
metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret);
switch (attribute) { // Check which one of frame type was given for processing
- case METADATA_EDITOR_ATTR_ARTIST: return __MP4_updateStringItem(metadata, "\xA9""ART", value);
- case METADATA_EDITOR_ATTR_TITLE: return __MP4_updateStringItem(metadata, "\xA9""nam", value);
- case METADATA_EDITOR_ATTR_ALBUM: return __MP4_updateStringItem(metadata, "\xA9""alb", value);
- case METADATA_EDITOR_ATTR_GENRE: return __MP4_updateStringItem(metadata, "\xA9""gen", value);
- case METADATA_EDITOR_ATTR_AUTHOR: return __MP4_updateStringItem(metadata, "\xA9""wrt", value);
- case METADATA_EDITOR_ATTR_COPYRIGHT: return __MP4_updateStringItem(metadata, "cprt", value);
- case METADATA_EDITOR_ATTR_DATE: return __MP4_updateStringItem(metadata, "\xA9""day", value);
- case METADATA_EDITOR_ATTR_DESCRIPTION: return __MP4_updateStringItem(metadata, "desc", value);
- case METADATA_EDITOR_ATTR_COMMENT: return __MP4_updateStringItem(metadata, "\xA9""cmt", value);
- case METADATA_EDITOR_ATTR_TRACK_NUM: return __MP4_updateIntegerItem(metadata, "trkn", value);
- case METADATA_EDITOR_ATTR_CONDUCTOR: return __MP4_updateStringItem(metadata, "cond", value);
- case METADATA_EDITOR_ATTR_UNSYNCLYRICS: return __MP4_updateStringItem(metadata, "\xA9""lyr", value);
+ case METADATA_EDITOR_ATTR_ARTIST: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""ART", value);
+ case METADATA_EDITOR_ATTR_TITLE: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""nam", value);
+ case METADATA_EDITOR_ATTR_ALBUM: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""alb", value);
+ case METADATA_EDITOR_ATTR_GENRE: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""gen", value);
+ case METADATA_EDITOR_ATTR_AUTHOR: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""wrt", value);
+ case METADATA_EDITOR_ATTR_COPYRIGHT: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "cprt", value);
+ case METADATA_EDITOR_ATTR_DATE: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""day", value);
+ case METADATA_EDITOR_ATTR_DESCRIPTION: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "desc", value);
+ case METADATA_EDITOR_ATTR_COMMENT: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""cmt", value);
+ case METADATA_EDITOR_ATTR_TRACK_NUM: return __MP4_updateIntegerItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "trkn", value);
+ case METADATA_EDITOR_ATTR_CONDUCTOR: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "cond", value);
+ case METADATA_EDITOR_ATTR_UNSYNCLYRICS: return __MP4_updateStringItem(dynamic_cast<MP4::Tag*>(metadata->file->tag()), "\xA9""lyr", value);
default:
metadata_editor_error("Invalid attribute [%d]", attribute);
return METADATA_EDITOR_ERROR_INVALID_PARAMETER;