void IpodCollectionLocation::ensureDirectoriesExist()
{
    QByteArray mountPoint = m_coll ? QFile::encodeName( m_coll.data()->mountPoint() ) : QByteArray();
    if( mountPoint.isEmpty() )
        return;

    gchar *musicDirChar = itdb_get_music_dir( mountPoint.constData() );
    QString musicDirPath = QFile::decodeName( musicDirChar );
    g_free( musicDirChar );
    if( musicDirPath.isEmpty() )
        return;

    QDir musicDir( musicDirPath );
    if( !musicDir.exists() && !musicDir.mkpath( "." ) /* try to create it */ )
    {
        warning() << __PRETTY_FUNCTION__ << "failed to create" << musicDirPath << "directory.";
        return;
    }

    QChar fillChar( '0' );
    for( int i = 0; i < 20; i++ )
    {
        QString name = QString( "F%1" ).arg( i, /* min-width */ 2, /* base */ 10, fillChar );
        if( musicDir.exists( name ) )
            continue;
        QString toCreatePath = QString( "%1/%2" ).arg( musicDirPath, name );
        if( musicDir.mkdir( name ) )
            debug() << __PRETTY_FUNCTION__ << "created" << toCreatePath << "directory.";
        else
            warning() << __PRETTY_FUNCTION__ << "failed to create" << toCreatePath << "directory.";
    }
}
void MusicFileList::buildMusicList()
{
    QDir musicDir(parentFolder);
    QStringList filters;
    filters //MPEG 1 Layer III (LibMAD)
            << "*.mp3"
            //OGG Vorbis and FLAC (LibOGG, LibVorbis, LibFLAC)
            << "*.ogg" << "*.flac"
            //Uncompressed audio data
            << "*.wav" << "*.voc" << "*.aiff"
            //MIDI
            << "*.mid"
            //MikMod (Modules)
            << "*.mod" << "*.it" << "*.s3m" << "*.669" << "*.med" << "*.xm" << "*.amf"
            << "*.apun" << "*.dsm" << "*.far" << "*.gdm" << "*.imf" << "*.mtm"
            << "*.okt" << "*.stm" << "*.stx" << "*.ult" << "*.uni"
            //GAME EMU
            << "*.ay" << "*.gbs"<<"*.gym"<<"*.hes"<<"*.kss"<<"*.nsf"<<"*.nsfe"<<"*.sap"<<"*.spc"<<"*.vgm"<<"*.vgz";

    musicDir.setSorting(QDir::Name);
    musicDir.setNameFilters(filters);
    QDirIterator dirsList(parentFolder, filters,
                          QDir::Files|QDir::NoSymLinks|QDir::NoDotAndDotDot,
                          QDirIterator::Subdirectories);
    while(dirsList.hasNext())
    {
        dirsList.next();
        emit itemAdded(musicDir.relativeFilePath(dirsList.filePath()));
        if(fileWalker.isCanceled()) break;
    }
}
Exemple #3
0
void QuickStartSearchEngine::doSearch()
{
	QString userMusicPath = QStandardPaths::standardLocations(QStandardPaths::MusicLocation).first();
	QDir musicDir(userMusicPath);

	// For every subfolder in the user's music path, a quick test on multimedia files is done
	for (QFileInfo fileInfo : musicDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name)) {

		QDirIterator it(fileInfo.absoluteFilePath(), FileHelper::suffixes(FileHelper::ET_Standard, true), QDir::Files, QDirIterator::Subdirectories);
		int musicFiles = 0;
		while (it.hasNext()) {
			it.next();
			musicFiles++;
		}
		emit folderScanned(fileInfo, musicFiles);
	}
	this->thread()->quit();
}
void LevelFileList::buildLevelList()
{
    QDir musicDir(parentFolder);
    QStringList filters;
    filters << "*.lvl" << "*.lvlx" << "*.lvlb" << "*.lvlz";
    musicDir.setSorting(QDir::Name);
    musicDir.setNameFilters(filters);
    QDirIterator dirsList(parentFolder, filters,
                          QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot,
                          QDirIterator::Subdirectories);

    while(dirsList.hasNext())
    {
        dirsList.next();
        emit itemAdded(musicDir.relativeFilePath(dirsList.filePath()));
        if(fileWalker.isCanceled())
            break;
    }
    digFinished();
}