Implemented playlist storage
[someplayer] / src / mediascanner.cpp
1 #include "mediascanner.h"
2
3 using namespace SomePlayer::Storage;
4
5 #include <QMap>
6
7 MediaScanner::MediaScanner(QObject *parent) :
8                 QThread(parent), _stopped(false), _initialized(false)
9 {
10         REGISTERED_FILE_EXTENSIONS << "mp3" << "flac" << "wma" << "acc";
11         _iterator = NULL;
12 }
13
14 void MediaScanner::run() {
15         if (!_initialized)
16                 return;
17         _foundMedia.clear();
18         while(!_stopped && _iterator->hasNext()) {
19                 QString entry(_iterator->next());
20                 QFileInfo info(entry);
21                 if (info.isReadable()) {
22                         QString suffix = info.suffix().toLower();
23                         if (REGISTERED_FILE_EXTENSIONS.contains(suffix)) {
24                                 if (!_foundMedia.contains(info.absoluteFilePath()))
25                                         _foundMedia << info.absoluteFilePath();
26                         }
27                 }
28         }
29         emit scanFinish(_foundMedia);
30         _stopped = true;
31 }
32
33 void MediaScanner::stop() {
34         _stopped = true;
35         _initialized = false;
36 }
37
38 void MediaScanner::init(QString dir) {
39         _stopped = false;
40         _initialized = true;
41         if (!_iterator)
42                 delete _iterator;
43         _iterator = new QDirIterator(QDir(dir), QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
44 }