X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Flibrary.cpp;h=58d7febabc5aa69d2ee5c07beba90ef5ae3a9a94;hp=bfd8a1d2359f02f4c87bdf90501e45c8979ca647;hb=2af36f9cbd41a808741731b8a6dcaca7431870f6;hpb=4e6c2c79b2071319631846dd9459234a27f700de diff --git a/src/library.cpp b/src/library.cpp index bfd8a1d..58d7feb 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1,11 +1,38 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + #include "library.h" using namespace SomePlayer::DataObjects; using namespace SomePlayer::Storage; -Library::Library(QString databasePath, QString playlistsPath) { +#include "mediascanner.h" +#include + +Library::Library(QString databasePath, QString playlistsPath) : QObject(0) { _library_storage = new DbStorage(databasePath); _playlist_storage = new FileStorage(playlistsPath); + _scanner = new MediaScanner(); + _resolver = new TagResolver(this); + connect(_scanner, SIGNAL(scanFinish(QStringList)), _resolver, SLOT(decode(QStringList))); + connect(_resolver, SIGNAL(done()), this, SIGNAL(done())); + connect(_resolver, SIGNAL(decoded(Track)), this, SLOT(addTrack(Track))); } Library::~Library() { @@ -14,11 +41,13 @@ Library::~Library() { } void Library::addDirectory(QString path) { - /// TODO: implement this + _scanner->init(path); + _scanner->start(QThread::LowestPriority); } void Library::addFile(QString path) { - /// TODO: implement this + QStringList files(path); + _resolver->decode(files); } QList Library::getArtists() { @@ -57,12 +86,16 @@ void Library::removeTrack(Track track) { _library_storage->removeTrack(track); } +void Library::addTrack(Track track) { + _library_storage->addTrack(track); +} + void Library::addToFavorites(Track track) { _library_storage->addToFavorites(track); } -void Library::updateTrack(Track track) { - _library_storage->updateTrack(track); +void Library::updateTrackCount(Track track) { + _library_storage->updateTrackCount(track); } @@ -72,19 +105,30 @@ QList Library::getPlaylists() { return _playlist_storage->getPlaylists(); } -void Library::savePlaylist(Playlist playlist) { +QStringList Library::getPlaylistsNames() { + return _playlist_storage->getPlaylistsNames(); +} + +Playlist Library::getPlaylist(QString name) { + return _playlist_storage->getPlaylist(name); +} + +void Library::savePlaylist(const Playlist &playlist) { _playlist_storage->savePlaylist(playlist); } -void Library::removePlaylist(Playlist playlist) { +void Library::removePlaylist(const Playlist &playlist) { _playlist_storage->removePlaylist(playlist); } +void Library::removePlaylist(QString name) { + _playlist_storage->removePlaylist(name); +} Playlist Library::getCurrentPlaylist() { return _playlist_storage->getCurrentPlaylist(); } -void Library::saveCurrentPlaylist(Playlist playlist) { +void Library::saveCurrentPlaylist(const Playlist &playlist) { _playlist_storage->saveCurrentPlaylist(playlist); }