From dbef9071ebe341156838b8360242d61a459df585 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Sun, 9 Mar 2014 10:05:59 +0000 Subject: [PATCH] Add Opus support * requires TagLib 1.9 --- ChangeLog | 1 + src/libtomahawk/filemetadata/MusicScanner.cpp | 4 +++- src/libtomahawk/filemetadata/taghandlers/tag.cpp | 13 +++++++++++++ src/libtomahawk/utils/TomahawkUtils.cpp | 3 +++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 23910dd66..29eaf7343 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,6 +25,7 @@ Version 0.8.0: * Improved error messages. * Support drag & drop of items from Artist and Album page headers. * Added basic remote control API + * Add support for Opus codec in local files (requires TagLib 1.9) Version 0.7.0: * JavaScript Resolvers can now expose collections. diff --git a/src/libtomahawk/filemetadata/MusicScanner.cpp b/src/libtomahawk/filemetadata/MusicScanner.cpp index 9671d051d..01ef0b66d 100644 --- a/src/libtomahawk/filemetadata/MusicScanner.cpp +++ b/src/libtomahawk/filemetadata/MusicScanner.cpp @@ -35,7 +35,6 @@ #include - using namespace Tomahawk; void @@ -143,6 +142,9 @@ MusicScanner::MusicScanner( MusicScanner::ScanMode scanMode, const QStringList& m_ext2mime.insert( "mp3", TomahawkUtils::extensionToMimetype( "mp3" ) ); m_ext2mime.insert( "ogg", TomahawkUtils::extensionToMimetype( "ogg" ) ); m_ext2mime.insert( "oga", TomahawkUtils::extensionToMimetype( "oga" ) ); +#if TAGLIB_MAJOR_VERSION >= 1 && TAGLIB_MINOR_VERSION >= 9 + m_ext2mime.insert( "opus", TomahawkUtils::extensionToMimetype( "opus" ) ); +#endif m_ext2mime.insert( "mpc", TomahawkUtils::extensionToMimetype( "mpc" ) ); m_ext2mime.insert( "wma", TomahawkUtils::extensionToMimetype( "wma" ) ); m_ext2mime.insert( "aac", TomahawkUtils::extensionToMimetype( "aac" ) ); diff --git a/src/libtomahawk/filemetadata/taghandlers/tag.cpp b/src/libtomahawk/filemetadata/taghandlers/tag.cpp index dd6509611..048ff3531 100644 --- a/src/libtomahawk/filemetadata/taghandlers/tag.cpp +++ b/src/libtomahawk/filemetadata/taghandlers/tag.cpp @@ -28,6 +28,9 @@ #include #include #include +#if TAGLIB_MAJOR_VERSION >= 1 && TAGLIB_MINOR_VERSION >= 9 + #include +#endif #include #include #include @@ -58,6 +61,16 @@ namespace Tomahawk if( file->tag() ) t = new OggTag( f.tag(), file->tag() ); } +#if TAGLIB_MAJOR_VERSION >= 1 && TAGLIB_MINOR_VERSION >= 9 + else if ( TagLib::Ogg::Opus::File *file = + dynamic_cast< TagLib::Ogg::Opus::File * >( f.file() ) ) + { + if ( file->tag() ) + { + t = new OggTag( f.tag(), file->tag() ); + } + } +#endif else if( TagLib::RIFF::AIFF::File *file = dynamic_cast< TagLib::RIFF::AIFF::File * >( f.file() ) ) { diff --git a/src/libtomahawk/utils/TomahawkUtils.cpp b/src/libtomahawk/utils/TomahawkUtils.cpp index f202cedcb..129a6a86f 100644 --- a/src/libtomahawk/utils/TomahawkUtils.cpp +++ b/src/libtomahawk/utils/TomahawkUtils.cpp @@ -322,6 +322,9 @@ extensionToMimetype( const QString& extension ) s_ext2mime.insert( "mp3", "audio/mpeg" ); s_ext2mime.insert( "ogg", "application/ogg" ); s_ext2mime.insert( "oga", "application/ogg" ); +#if TAGLIB_MAJOR_VERSION >= 1 && TAGLIB_MINOR_VERSION >= 9 + s_ext2mime.insert( "opus", "application/opus" ); +#endif s_ext2mime.insert( "mpc", "audio/x-musepack" ); s_ext2mime.insert( "wma", "audio/x-ms-wma" ); s_ext2mime.insert( "aac", "audio/mp4" );