From: hj kim Date: Wed, 27 May 2020 08:40:21 +0000 (+0900) Subject: Support metadata editing for Flac format X-Git-Tag: submit/tizen/20200630.005817~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=73e985c78ed1ab652c2989ec9fd988f0aa132190;p=platform%2Fcore%2Fapi%2Fmetadata-editor.git Support metadata editing for Flac format Change-Id: I64e0010a95710fcfa28c34c8467ee94973b5696f --- diff --git a/src/metadata_editor.cpp b/src/metadata_editor.cpp index 172c35d..d4401df 100755 --- a/src/metadata_editor.cpp +++ b/src/metadata_editor.cpp @@ -394,7 +394,6 @@ static int __MP4_getNumberOfPictures(MP4::Tag *tag, char **value) return METADATA_EDITOR_ERROR_NONE; } -#if 0 static int __xiph_getFieldValue(Ogg::XiphComment *xtag, const char *fieldname, char **value) { metadata_editor_retvm_if(!xtag, METADATA_EDITOR_ERROR_NONE, "[No-Error] No tag"); @@ -437,7 +436,7 @@ static int __FLAC_getNumberOfPictures(FLAC::File *file, char **value) return METADATA_EDITOR_ERROR_NONE; } -#endif + static int __metadata_editor_get_file_ext(const char *file_path, char *file_ext, int max_len) { int i = 0; @@ -475,6 +474,8 @@ static int __metadata_editor_get_file_type(const char *path) return METADATA_EDITOR_FORMAT_MP3; else if (strcasecmp(ext, "MP4") == 0) return METADATA_EDITOR_FORMAT_MP4; + else if (strcasecmp(ext, "FLAC") == 0) + return METADATA_EDITOR_FORMAT_FLAC; else if (strcasecmp(ext, "WAV") == 0) return METADATA_EDITOR_FORMAT_WAV; else @@ -488,6 +489,8 @@ static int __metadata_editor_get_file_type(const char *path) return METADATA_EDITOR_FORMAT_MP3; else if (strstr(mimetype, "mp4") != NULL) return METADATA_EDITOR_FORMAT_MP4; + else if (g_strcmp0(mimetype, "audio/flac") == 0) + return METADATA_EDITOR_FORMAT_FLAC; else if (strstr(mimetype, "wav") != NULL) return METADATA_EDITOR_FORMAT_WAV; @@ -625,11 +628,11 @@ extern "C" int metadata_editor_set_path(metadata_editor_h metadata, const char * _file = new MP4::File(path); break; -#if 0 case METADATA_EDITOR_FORMAT_FLAC: _file = new FLAC::File(path); break; +#if 0 case METADATA_EDITOR_FORMAT_OGG_VORBIS: _file = new Ogg::Vorbis::File(path); break; @@ -726,7 +729,6 @@ static int __metadata_editor_get_mp4_metadata(metadata_editor_s *metadata, metad } } -#if 0 static int __metadata_editor_get_flac_metadata(metadata_editor_s *metadata, metadata_editor_attr_e attribute, char **value) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -739,7 +741,7 @@ static int __metadata_editor_get_flac_metadata(metadata_editor_s *metadata, meta auto xtag = _file->xiphComment(false); - switch (attribute) { // Check which one of frame types was given to the function for processing + switch (attribute) { case METADATA_EDITOR_ATTR_ARTIST: return __xiph_getFieldValue(xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_getFieldValue(xtag, "TITLE", value); case METADATA_EDITOR_ATTR_ALBUM: return __xiph_getFieldValue(xtag, "ALBUM", value); @@ -759,6 +761,7 @@ static int __metadata_editor_get_flac_metadata(metadata_editor_s *metadata, meta } } +#if 0 static int __metadata_editor_get_ogg_vorbis_metadata(metadata_editor_s *metadata, metadata_editor_attr_e attribute, char **value) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -849,10 +852,9 @@ extern "C" int metadata_editor_get_metadata(metadata_editor_h metadata, metadata case METADATA_EDITOR_FORMAT_MP4: return __metadata_editor_get_mp4_metadata(_metadata, attribute, value); -#if 0 case METADATA_EDITOR_FORMAT_FLAC: return __metadata_editor_get_flac_metadata(_metadata, attribute, value); - +#if 0 case METADATA_EDITOR_FORMAT_OGG_VORBIS: return __metadata_editor_get_ogg_vorbis_metadata(_metadata, attribute, value); @@ -914,7 +916,7 @@ static int __metadata_editor_set_mp4_metadata(metadata_editor_s *metadata, metad ret = __check_metadata_set_parameter(metadata); 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 + switch (attribute) { case METADATA_EDITOR_ATTR_ARTIST: return __MP4_updateStringItem(dynamic_cast(metadata->file->tag()), "\xA9""ART", value); case METADATA_EDITOR_ATTR_TITLE: return __MP4_updateStringItem(dynamic_cast(metadata->file->tag()), "\xA9""nam", value); case METADATA_EDITOR_ATTR_ALBUM: return __MP4_updateStringItem(dynamic_cast(metadata->file->tag()), "\xA9""alb", value); @@ -933,7 +935,6 @@ static int __metadata_editor_set_mp4_metadata(metadata_editor_s *metadata, metad } } -#if 0 static int __metadata_editor_set_flac_metadata(metadata_editor_s *metadata, metadata_editor_attr_e attribute, const char *value) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -945,11 +946,9 @@ static int __metadata_editor_set_flac_metadata(metadata_editor_s *metadata, meta metadata_editor_retvm_if(!_file, METADATA_EDITOR_ERROR_OPERATION_FAILED, "fail to dynamic_cast"); auto xtag = _file->xiphComment(true); - if (!xtag) { // Check if we have a valid tag for processing - metadata_editor_error("Error. Xiph Comment was not created. Can not proceed metadata updating"); - return METADATA_EDITOR_ERROR_OPERATION_FAILED; - } - switch (attribute) { // Check which one of frame type was given for processing + metadata_editor_retvm_if(!xtag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "fail to create Xiph Comment. Can not proceed metadata updating"); + + switch (attribute) { case METADATA_EDITOR_ATTR_ARTIST: return __xiph_updateFieldValue(xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_updateFieldValue(xtag, "TITLE", value); case METADATA_EDITOR_ATTR_ALBUM: return __xiph_updateFieldValue(xtag, "ALBUM", value); @@ -968,6 +967,7 @@ static int __metadata_editor_set_flac_metadata(metadata_editor_s *metadata, meta } } +#if 0 static int __metadata_editor_set_ogg_vorbis_metadata(metadata_editor_s *metadata, metadata_editor_attr_e attribute, const char *value) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -1060,10 +1060,9 @@ extern "C" int metadata_editor_set_metadata(metadata_editor_h metadata, metadata case METADATA_EDITOR_FORMAT_MP4: return __metadata_editor_set_mp4_metadata(_metadata, attribute, value); -#if 0 case METADATA_EDITOR_FORMAT_FLAC: return __metadata_editor_set_flac_metadata(_metadata, attribute, value); - +#if 0 case METADATA_EDITOR_FORMAT_OGG_VORBIS: return __metadata_editor_set_ogg_vorbis_metadata(_metadata, attribute, value); @@ -1108,8 +1107,8 @@ extern "C" int metadata_editor_update_metadata(metadata_editor_h metadata) } case METADATA_EDITOR_FORMAT_MP4: { -#if 0 case METADATA_EDITOR_FORMAT_FLAC: +#if 0 case METADATA_EDITOR_FORMAT_OGG_VORBIS: case METADATA_EDITOR_FORMAT_OGG_FLAC: #endif @@ -1221,7 +1220,6 @@ static int __get_mp4_picture(metadata_editor_s *metadata, int index, void **pict return METADATA_EDITOR_ERROR_NONE; } -#if 0 static int __get_flac_picture(metadata_editor_s *metadata, int index, void **picture, int *size, char **mime_type) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -1245,7 +1243,7 @@ static int __get_flac_picture(metadata_editor_s *metadata, int index, void **pic return METADATA_EDITOR_ERROR_NONE; } -#endif + static int __get_wav_picture(metadata_editor_s *metadata, int index, void **picture, int *size, char **mime_type) { auto _file = dynamic_cast(metadata->file); @@ -1273,10 +1271,9 @@ extern "C" int metadata_editor_get_picture(metadata_editor_h metadata, int index case METADATA_EDITOR_FORMAT_MP4: return __get_mp4_picture(_metadata, index, picture, size, mime_type); -#if 0 case METADATA_EDITOR_FORMAT_FLAC: return __get_flac_picture(_metadata, index, picture, size, mime_type); -#endif + case METADATA_EDITOR_FORMAT_WAV: return __get_wav_picture(_metadata, index, picture, size, mime_type); @@ -1331,7 +1328,6 @@ static int __append_mp4_picture(metadata_editor_s *metadata, const char *picture return METADATA_EDITOR_ERROR_NONE; } -#if 0 static int __append_flac_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { auto _file = dynamic_cast(metadata->file); @@ -1347,7 +1343,7 @@ static int __append_flac_picture(metadata_editor_s *metadata, const char *pictur return METADATA_EDITOR_ERROR_NONE; } -#endif + static int __append_wav_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { return __append_APIC(dynamic_cast(metadata->file->tag()), picture, size, mime_type); @@ -1382,11 +1378,10 @@ extern "C" int metadata_editor_append_picture(metadata_editor_h metadata, const ret = __append_mp4_picture(_metadata, picture, size, mime_type); break; -#if 0 case METADATA_EDITOR_FORMAT_FLAC: ret = __append_flac_picture(_metadata, picture, size, mime_type); break; -#endif + case METADATA_EDITOR_FORMAT_WAV: ret = __append_wav_picture(_metadata, picture, size, mime_type); break; @@ -1450,7 +1445,6 @@ static int __remove_mp4_picture(metadata_editor_s *metadata, int index) return METADATA_EDITOR_ERROR_NONE; } -#if 0 static int __remove_flac_picture(metadata_editor_s *metadata, int index) { int ret = METADATA_EDITOR_ERROR_NONE; @@ -1467,7 +1461,6 @@ static int __remove_flac_picture(metadata_editor_s *metadata, int index) return METADATA_EDITOR_ERROR_NONE; } -#endif static int __remove_wav_picture(metadata_editor_s *metadata, int index) { @@ -1490,10 +1483,10 @@ extern "C" int metadata_editor_remove_picture(metadata_editor_h metadata, int in case METADATA_EDITOR_FORMAT_MP4: return __remove_mp4_picture(_metadata, index); -#if 0 + case METADATA_EDITOR_FORMAT_FLAC: return __remove_flac_picture(_metadata, index); -#endif + case METADATA_EDITOR_FORMAT_WAV: return __remove_wav_picture(_metadata, index); @@ -1518,10 +1511,11 @@ extern "C" int metadata_editor_destroy(metadata_editor_h metadata) case METADATA_EDITOR_FORMAT_MP4: delete dynamic_cast(_metadata->file); break; -#if 0 + case METADATA_EDITOR_FORMAT_FLAC: delete dynamic_cast(_metadata->file); break; +#if 0 case METADATA_EDITOR_FORMAT_OGG_VORBIS: delete dynamic_cast(_metadata->file); break;