Modify input parameter 93/234293/5
authorhj kim <backto.kim@samsung.com>
Mon, 25 May 2020 06:54:10 +0000 (15:54 +0900)
committerhj kim <backto.kim@samsung.com>
Tue, 26 May 2020 02:24:21 +0000 (02:24 +0000)
Use proper MP4:Tag instead of metadata_editor structure when get and set metadata.

Change-Id: I2c255991ce19f65606580507c4aa188e9b119f22

src/metadata_editor.cpp

index 576a400..99bc7d4 100755 (executable)
@@ -326,16 +326,10 @@ static int __ID3_setLyricsFrame(ID3v2::Tag *tag2, const char *value)
        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);
@@ -348,16 +342,10 @@ static int __MP4_getStringItem(metadata_editor_s *_metadata, const char *itemnam
        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);
@@ -369,16 +357,10 @@ static int __MP4_getIntegerItem(metadata_editor_s *_metadata, const char *itemna
        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();
@@ -396,16 +378,10 @@ static int __MP4_updateStringItem(metadata_editor_s *_metadata, const char *item
        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();
@@ -429,14 +405,8 @@ static int __MP4_updateIntegerItem(metadata_editor_s *_metadata, const char *ite
        }
 }
 
-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);
@@ -478,16 +448,12 @@ static int __xiph_updateFieldValue(Ogg::XiphComment *xtag, const char *fieldname
        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;
 }
@@ -738,19 +704,19 @@ static int __metadata_editor_get_mp4_metadata(metadata_editor_s *metadata, metad
        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;
@@ -786,7 +752,7 @@ static int __metadata_editor_get_flac_metadata(metadata_editor_s *metadata, meta
                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;
@@ -973,18 +939,18 @@ static int __metadata_editor_set_mp4_metadata(metadata_editor_s *metadata, metad
        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;