Use dynamic_cast when class hierarchy changed ref/for/tizen
authorjiyong.min <jiyong.min@samsung.com>
Thu, 14 May 2020 05:50:03 +0000 (14:50 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Thu, 14 May 2020 06:34:09 +0000 (15:34 +0900)
Change-Id: Iae1924d0a0b3ef4d6fd8bf616f2d7f3fe07b9408

src/metadata_editor.cpp

index 58d5fb9a15baf6ade419110d2c5211645f317da6..82c1d903a1778879aca16febe7f202ebb7f8b725 100755 (executable)
@@ -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<MPEG::File*>(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<FLAC::File*>(metadata->file);
+       auto xtag = dynamic_cast<Ogg::XiphComment*>(_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<Ogg::XiphComment*>(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<Ogg::XiphComment*>(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<ID3v2::Tag*>(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<MPEG::File*>(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<FLAC::File*>(metadata->file);
+       auto xtag = dynamic_cast<Ogg::XiphComment*>(_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<Ogg::XiphComment*>(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<Ogg::XiphComment*>(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<ID3v2::Tag*>(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<MPEG::File*>(_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<FLAC::File*>(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<ID3v2::Tag*>(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<FLAC::File*>(metadata->file);
        auto frontCover = new FLAC::Picture;
 
        metadata_editor_debug_fenter();