/// create a MetaIO for the file to read/write any tags etc MetaIO* Metadata::getTagger(void) { static MetaIOID3 metaIOID3; static MetaIOOggVorbis metaIOOggVorbis; static MetaIOFLACVorbis metaIOFLACVorbis; static MetaIOMP4 metaIOMP4; static MetaIOWavPack metaIOWavPack; static MetaIOAVFComment metaIOAVFComment; QFileInfo fi(m_filename); QString extension = fi.suffix(); if (extension == "mp3" || extension == "mp2") return &metaIOID3; else if (extension == "ogg" || extension == "oga") return &metaIOOggVorbis; else if (extension == "flac") { if (metaIOID3.TagExists(Filename(true))) return &metaIOID3; else return &metaIOFLACVorbis; } else if (extension == "m4a") return &metaIOMP4; else if (extension == "wv") return &metaIOWavPack; else return &metaIOAVFComment; }
// static MetaIO* MetaIO::createTagger(const QString& filename) { QFileInfo fi(filename); QString extension = fi.suffix().toLower(); if (extension == "mp3" || extension == "mp2") return new MetaIOID3; else if (extension == "ogg" || extension == "oga") return new MetaIOOggVorbis; else if (extension == "flac") { MetaIOID3 *tagger = new MetaIOID3; if (tagger->TagExists(filename)) return tagger; else { delete tagger; return new MetaIOFLACVorbis; } } else if (extension == "m4a") return new MetaIOMP4; else if (extension == "wv") return new MetaIOWavPack; else return new MetaIOAVFComment; }
MetaIO* avfDecoder::doCreateTagger(void) { QString extension = filename.section('.', -1); if (extension == "mp3") return new MetaIOID3(); else if (extension == "ogg" || extension == "oga") return new MetaIOOggVorbis(); else if (extension == "flac") { MetaIOID3 *file = new MetaIOID3(); if (file->TagExists(filename)) return file; else return new MetaIOFLACVorbis(); } else if (extension == "m4a") return new MetaIOMP4(); else if (extension == "wv") return new MetaIOWavPack(); else return new MetaIOAVFComment(); }