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:
@@ -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();
|
||||||
|
@@ -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() ) )
|
||||||
{
|
{
|
||||||
|
@@ -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" );
|
||||||
|
Reference in New Issue
Block a user