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();
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);
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);
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);
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;
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);
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);
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);
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);
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;
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
#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()) {
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
#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();