1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-06 14:16:32 +02:00

* Support AIFF type audio files.

This commit is contained in:
Christian Muehlhaeuser
2012-06-01 10:26:22 +02:00
parent 72c6b009ff
commit c1885fa6d9
3 changed files with 33 additions and 21 deletions

View File

@@ -106,15 +106,17 @@ MusicScanner::MusicScanner( const QStringList& dirs, quint32 bs )
, m_batchsize( bs ) , m_batchsize( bs )
, m_dirListerThreadController( 0 ) , m_dirListerThreadController( 0 )
{ {
m_ext2mime.insert( "mp3", TomahawkUtils::extensionToMimetype( "mp3" ) ); m_ext2mime.insert( "mp3", TomahawkUtils::extensionToMimetype( "mp3" ) );
m_ext2mime.insert( "ogg", TomahawkUtils::extensionToMimetype( "ogg" ) ); m_ext2mime.insert( "ogg", TomahawkUtils::extensionToMimetype( "ogg" ) );
m_ext2mime.insert( "oga", TomahawkUtils::extensionToMimetype( "oga" ) ); m_ext2mime.insert( "oga", TomahawkUtils::extensionToMimetype( "oga" ) );
m_ext2mime.insert( "mpc", TomahawkUtils::extensionToMimetype( "mpc" ) ); m_ext2mime.insert( "mpc", TomahawkUtils::extensionToMimetype( "mpc" ) );
m_ext2mime.insert( "wma", TomahawkUtils::extensionToMimetype( "wma" ) ); m_ext2mime.insert( "wma", TomahawkUtils::extensionToMimetype( "wma" ) );
m_ext2mime.insert( "aac", TomahawkUtils::extensionToMimetype( "aac" ) ); m_ext2mime.insert( "aac", TomahawkUtils::extensionToMimetype( "aac" ) );
m_ext2mime.insert( "m4a", TomahawkUtils::extensionToMimetype( "m4a" ) ); m_ext2mime.insert( "m4a", TomahawkUtils::extensionToMimetype( "m4a" ) );
m_ext2mime.insert( "mp4", TomahawkUtils::extensionToMimetype( "mp4" ) ); m_ext2mime.insert( "mp4", TomahawkUtils::extensionToMimetype( "mp4" ) );
m_ext2mime.insert( "flac", TomahawkUtils::extensionToMimetype( "flac" ) ); m_ext2mime.insert( "flac", TomahawkUtils::extensionToMimetype( "flac" ) );
m_ext2mime.insert( "aiff", TomahawkUtils::extensionToMimetype( "aiff" ) );
m_ext2mime.insert( "aif", TomahawkUtils::extensionToMimetype( "aif" ) );
} }
@@ -199,18 +201,16 @@ MusicScanner::listerFinished()
foreach( const QString& key, m_filemtimes.keys() ) foreach( const QString& key, m_filemtimes.keys() )
m_filesToDelete << m_filemtimes[ key ].keys().first(); m_filesToDelete << m_filemtimes[ key ].keys().first();
tDebug() << "Lister finished: to delete:" << m_filesToDelete; tDebug( LOGINFO ) << "Scanning complete, saving to database. ( deleted" << m_filesToDelete.count() << "- scanned" << m_scanned << "- skipped" << m_skipped << ")";
tDebug( LOGEXTRA ) << "Skipped the following files (no tags / no valid audio):";
foreach ( const QString& s, m_skippedFiles )
tDebug( LOGEXTRA ) << s;
if ( m_filesToDelete.length() || m_scannedfiles.length() ) if ( m_filesToDelete.length() || m_scannedfiles.length() )
{ {
commitBatch( m_scannedfiles, m_filesToDelete ); commitBatch( m_scannedfiles, m_filesToDelete );
m_scannedfiles.clear(); m_scannedfiles.clear();
m_filesToDelete.clear(); m_filesToDelete.clear();
tDebug( LOGINFO ) << "Scanning complete, saving to database. ( scanned" << m_scanned << "skipped" << m_skipped << ")";
tDebug( LOGEXTRA ) << "Skipped the following files (no tags / no valid audio):";
foreach ( const QString& s, m_skippedFiles )
tDebug( LOGEXTRA ) << s;
} }
else else
cleanup(); cleanup();
@@ -335,9 +335,8 @@ MusicScanner::readFile( const QFileInfo& fi )
int bitrate = 0; int bitrate = 0;
int duration = 0; int duration = 0;
Tag *tag = Tag::fromFile( f ); Tag *tag = Tag::fromFile( f );
if ( f.audioProperties() ) if ( f.audioProperties() )
{ {
TagLib::AudioProperties *properties = f.audioProperties(); TagLib::AudioProperties *properties = f.audioProperties();
@@ -345,10 +344,14 @@ MusicScanner::readFile( const QFileInfo& fi )
bitrate = properties->bitrate(); bitrate = properties->bitrate();
} }
QString artist = tag->artist().trimmed(); QString artist, album, track;
QString album = tag->album().trimmed(); if ( tag )
QString track = tag->title().trimmed(); {
if ( artist.isEmpty() || track.isEmpty() ) artist = tag->artist().trimmed();
album = tag->album().trimmed();
track = tag->title().trimmed();
}
if ( !tag || artist.isEmpty() || track.isEmpty() )
{ {
// FIXME: do some clever filename guessing // FIXME: do some clever filename guessing
m_skippedFiles << fi.canonicalFilePath(); m_skippedFiles << fi.canonicalFilePath();

View File

@@ -34,6 +34,7 @@
#include <taglib/mp4file.h> #include <taglib/mp4file.h>
#include <taglib/mpcfile.h> #include <taglib/mpcfile.h>
#include <taglib/asffile.h> #include <taglib/asffile.h>
#include <taglib/aifffile.h>
#include <QStringList> #include <QStringList>
@@ -56,6 +57,12 @@ namespace Tomahawk
if( file->tag() ) if( file->tag() )
t = new OggTag( f.tag(), file->tag() ); t = new OggTag( f.tag(), file->tag() );
} }
else if( TagLib::RIFF::AIFF::File *file =
dynamic_cast< TagLib::RIFF::AIFF::File * >( f.file() ) )
{
if( file->tag() )
t = new ID3v2Tag( f.tag(), file->tag() );
}
else if( TagLib::Ogg::Speex::File *file = else if( TagLib::Ogg::Speex::File *file =
dynamic_cast< TagLib::Ogg::Speex::File * >( f.file() ) ) dynamic_cast< TagLib::Ogg::Speex::File * >( f.file() ) )
{ {

View File

@@ -303,12 +303,14 @@ extensionToMimetype( const QString& extension )
s_ext2mime.insert( "mp3", "audio/mpeg" ); s_ext2mime.insert( "mp3", "audio/mpeg" );
s_ext2mime.insert( "ogg", "application/ogg" ); s_ext2mime.insert( "ogg", "application/ogg" );
s_ext2mime.insert( "oga", "application/ogg" ); s_ext2mime.insert( "oga", "application/ogg" );
s_ext2mime.insert( "flac", "audio/flac" );
s_ext2mime.insert( "mpc", "audio/x-musepack" ); s_ext2mime.insert( "mpc", "audio/x-musepack" );
s_ext2mime.insert( "wma", "audio/x-ms-wma" ); s_ext2mime.insert( "wma", "audio/x-ms-wma" );
s_ext2mime.insert( "aac", "audio/mp4" ); s_ext2mime.insert( "aac", "audio/mp4" );
s_ext2mime.insert( "m4a", "audio/mp4" ); s_ext2mime.insert( "m4a", "audio/mp4" );
s_ext2mime.insert( "mp4", "audio/mp4" ); s_ext2mime.insert( "mp4", "audio/mp4" );
s_ext2mime.insert( "flac", "audio/flac" );
s_ext2mime.insert( "aiff", "audio/aiff" );
s_ext2mime.insert( "aif", "audio/aiff" );
} }
return s_ext2mime.value( extension, "unknown" ); return s_ext2mime.value( extension, "unknown" );