From: jiyong.min Date: Thu, 14 May 2020 05:50:03 +0000 (+0900) Subject: Use dynamic_cast when class hierarchy changed X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fref%2Ffor%2Ftizen;p=platform%2Fcore%2Fapi%2Fmetadata-editor.git Use dynamic_cast when class hierarchy changed Change-Id: Iae1924d0a0b3ef4d6fd8bf616f2d7f3fe07b9408 --- diff --git a/src/metadata_editor.cpp b/src/metadata_editor.cpp index 58d5fb9..82c1d90 100755 --- a/src/metadata_editor.cpp +++ b/src/metadata_editor.cpp @@ -742,7 +742,6 @@ static int __metadata_editor_get_mp3_metadata(metadata_editor_s *metadata, metad 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); - // Bring the pointer to actual file type and make tag pointers auto _file = dynamic_cast(metadata->file); auto tag1 = _file->ID3v1Tag(); auto tag2 = _file->ID3v2Tag(); @@ -800,14 +799,14 @@ static int __metadata_editor_get_flac_metadata(metadata_editor_s *metadata, meta 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); - // Bring the pointer to actual file type and make tags pointers - auto _file = (FLAC::File*)metadata->file; - auto xtag = _file->xiphComment(false); + auto _file = dynamic_cast(metadata->file); + auto xtag = dynamic_cast(_file->xiphComment(false)); if (!xtag) { // Check if we have a valid tag for processing metadata_editor_error("Tag does not exist"); *value = NULL; return METADATA_EDITOR_ERROR_OPERATION_FAILED; } + switch (attribute) { // Check which one of frame types was given to the function for processing case METADATA_EDITOR_ATTR_ARTIST: return __xiph_getFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_getFieldValue(metadata, xtag, "TITLE", value); @@ -834,14 +833,13 @@ static int __metadata_editor_get_ogg_vorbis_metadata(metadata_editor_s *metadata 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); - // Bring the pointer to actual file type and make tags pointers - auto _file = (Ogg::Vorbis::File*)metadata->file; - auto xtag = _file->tag(); + auto xtag = dynamic_cast(metadata->file->tag()); if (!xtag) { // Check if we have a valid tag for processing metadata_editor_error("Tag does not exist"); *value = NULL; return METADATA_EDITOR_ERROR_OPERATION_FAILED; } + switch (attribute) { // Check which one of frame types was given to the function for processing case METADATA_EDITOR_ATTR_ARTIST: return __xiph_getFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_getFieldValue(metadata, xtag, "TITLE", value); @@ -867,14 +865,13 @@ static int __metadata_editor_get_ogg_flac_metadata(metadata_editor_s *metadata, 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); - // Bring the pointer to actual file type and make tags pointers - auto _file = (Ogg::FLAC::File*)metadata->file; - auto xtag = _file->tag(); + auto xtag = dynamic_cast(metadata->file->tag()); if (!xtag) { // Check if we have a valid tag for processing metadata_editor_error("Tag does not exist"); *value = NULL; return METADATA_EDITOR_ERROR_OPERATION_FAILED; } + switch (attribute) { // Check which one of frame types was given to the function for processing case METADATA_EDITOR_ATTR_ARTIST: return __xiph_getFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_getFieldValue(metadata, xtag, "TITLE", value); @@ -900,11 +897,8 @@ static int __metadata_editor_get_wav_metadata(metadata_editor_s *metadata, metad 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); - // Bring the pointer to actual file type and make tag pointers - auto _file = (RIFF::WAV::File*)metadata->file; - auto tag2 = _file->tag(); - - if (tag2 == NULL) { // Check if we have a valid tag for processing + auto tag2 = dynamic_cast(metadata->file->tag()); + if (!tag2) { // Check if we have a valid tag for processing metadata_editor_error("Error. ID3v2 tag does not exist. Can not proceed metadata extraction"); *value = NULL; return METADATA_EDITOR_ERROR_OPERATION_FAILED; @@ -970,12 +964,12 @@ static int __metadata_editor_set_mp3_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); - // Bring the pointer to actual file type and make tags pointers - auto _file = (MPEG::File*)metadata->file; + auto _file = dynamic_cast(metadata->file); auto tag1 = _file->ID3v1Tag(); auto tag2 = _file->ID3v2Tag(true); - metadata_editor_retvm_if(tag2 == NULL, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Error. ID3v2 tag was not created. Can not proceed metadata updating"); + metadata_editor_retvm_if(!tag2, METADATA_EDITOR_ERROR_OPERATION_FAILED, + "Error. ID3v2 tag was not created. Can not proceed metadata updating"); switch (attribute) { // Check which one of frame type was given for processing case METADATA_EDITOR_ATTR_ARTIST: return __ID3_setTwixFrameByName(metadata, tag1, tag2, "TPE1", value); @@ -1028,13 +1022,13 @@ static int __metadata_editor_set_flac_metadata(metadata_editor_s *metadata, meta ret = __check_metadata_set_parameter(metadata); metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret); - // Bring the pointer to actual file type and make tags pointers - auto _file = (FLAC::File*)metadata->file; - auto xtag = _file->xiphComment(true); + auto _file = dynamic_cast(metadata->file); + auto xtag = dynamic_cast(_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 case METADATA_EDITOR_ATTR_ARTIST: return __xiph_updateFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_updateFieldValue(metadata, xtag, "TITLE", value); @@ -1060,13 +1054,12 @@ static int __metadata_editor_set_ogg_vorbis_metadata(metadata_editor_s *metadata ret = __check_metadata_set_parameter(metadata); metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret); - // Bring the pointer to actual file type and make tags pointers - auto _file = (Ogg::Vorbis::File*)metadata->file; - auto xtag = _file->tag(); + auto xtag = dynamic_cast(metadata->file->tag()); 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 case METADATA_EDITOR_ATTR_ARTIST: return __xiph_updateFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_updateFieldValue(metadata, xtag, "TITLE", value); @@ -1092,13 +1085,12 @@ static int __metadata_editor_set_ogg_flac_metadata(metadata_editor_s *metadata, ret = __check_metadata_set_parameter(metadata); metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, ret, "fail to __check_metadata_set_parameter() [%d]", ret); - // Bring the pointer to actual file type and make tags pointers - auto _file = (Ogg::FLAC::File*)metadata->file; - auto xtag = _file->tag(); + auto xtag = dynamic_cast(metadata->file->tag()); 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 case METADATA_EDITOR_ATTR_ARTIST: return __xiph_updateFieldValue(metadata, xtag, "ARTIST", value); case METADATA_EDITOR_ATTR_TITLE: return __xiph_updateFieldValue(metadata, xtag, "TITLE", value); @@ -1124,10 +1116,7 @@ static int __metadata_editor_set_wav_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); - // Bring the pointer to actual file type and make tags pointers - auto _file = (RIFF::WAV::File*)metadata->file; - auto tag2 = _file->tag(); - // Check if the valid tag pointer exist + auto tag2 = dynamic_cast(metadata->file->tag()); if (!tag2) { metadata_editor_error("Error. ID3v2 tag was not created. Can not proceed metadata updating"); return METADATA_EDITOR_ERROR_OPERATION_FAILED; @@ -1195,7 +1184,7 @@ extern "C" int metadata_editor_update_metadata(metadata_editor_h metadata) switch (_metadata->filetype) { case METADATA_EDITOR_FORMAT_MP3: { - auto _file = (MPEG::File*)_metadata->file; + auto _file = dynamic_cast(_metadata->file); auto tag1 = _file->ID3v1Tag(); if (!tag1 || tag1->isEmpty()) { // If no ID3v1 tag - prevent its creation @@ -1316,7 +1305,7 @@ static int __get_mp4_picture(metadata_editor_s *metadata, int index, void **pict #if 0 static int __get_flac_picture(metadata_editor_s *metadata, int index, void **picture, int *size, char **mime_type) { - auto _file = (FLAC::File*) metadata->file; + auto _file = dynamic_cast(metadata->file); auto lst = _file->pictureList(); if (lst.isEmpty()) { @@ -1344,9 +1333,7 @@ static int __get_flac_picture(metadata_editor_s *metadata, int index, void **pic static int __get_wav_picture(metadata_editor_s *metadata, int index, void **picture, int *size, char **mime_type) { - auto _file = (RIFF::WAV::File*)metadata->file; - - return __get_APIC(_file->tag(), index, picture, size, mime_type); + return __get_APIC(dynamic_cast(metadata->file->tag()), index, picture, size, mime_type); } #endif @@ -1428,7 +1415,7 @@ static int __append_mp4_picture(metadata_editor_s *metadata, const char *picture #if 0 static int __append_flac_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { - auto _file = (FLAC::File*) metadata->file; + auto _file = dynamic_cast(metadata->file); auto frontCover = new FLAC::Picture; metadata_editor_debug_fenter();