metadata_editor_retvm_if(!_metadata, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid metadata");
- if (_metadata->file)
- delete _metadata->file;
+ switch (_metadata->filetype) {
+ case METADATA_EDITOR_FORMAT_MP3:
+ delete dynamic_cast<TagLib::MPEG::File*>(_metadata->file);
+ break;
+ case METADATA_EDITOR_FORMAT_MP4:
+ delete dynamic_cast<TagLib::MP4::File*>(_metadata->file);
+ break;
+#if 0
+ case METADATA_EDITOR_FORMAT_FLAC:
+ delete dynamic_cast<TagLib::FLAC::File*>(_metadata->file);
+ break;
+ case METADATA_EDITOR_FORMAT_OGG_VORBIS:
+ delete dynamic_cast<TagLib::Ogg::Vorbis::File*>(_metadata->file);
+ break;
+ case METADATA_EDITOR_FORMAT_OGG_FLAC:
+ delete dynamic_cast<TagLib::Ogg::FLAC::File*>(_metadata->file);
+ break;
+ case METADATA_EDITOR_FORMAT_WAV:
+ delete dynamic_cast<TagLib::RIFF::WAV::File*>(_metadata->file);
+ break;
+#endif
+ default:
+ metadata_editor_error("Wrong file type");
+ return METADATA_EDITOR_ERROR_INVALID_PARAMETER;
+ }
g_free(_metadata);