X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Flibrary.h;h=1803c02ea646aa3d5cf86128c9cff0a25b28efbb;hp=742c03ee7e7f62c5661d2a79f4630b839bbe631f;hb=ce3d82f849347cbd48890fc2cad2f90137d2d982;hpb=dd00ef6be1a5989020c9ae2c1fa6c17910b260d1 diff --git a/src/library.h b/src/library.h index 742c03e..1803c02 100644 --- a/src/library.h +++ b/src/library.h @@ -1,3 +1,22 @@ +/* + * 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. + */ + #ifndef LIBRARY #define LIBRARY @@ -9,9 +28,6 @@ #include "mediascanner.h" #include "tagresolver.h" -#define _DATABASE_PATH_ "/tmp" -#define _PLAYLISTS_PATH_ "/tmp" - // represents media library: tracks, playlists // it uses different media storages for tracks and playlists // but dynamic playlits will be stored with tracks into the same storage @@ -31,18 +47,26 @@ namespace SomePlayer { Library(QString databasePath, QString playlistsPath); ~Library(); - void addDirectory(QString path); + void addDirectory(QString path, bool async = true); void addFile(QString path); + QList getDirectories(); QList getArtists(); - QList getAlbumsForArtist(QString artist); + QMap getAlbumsForArtist(QString artist); QList getTracksForAlbum(QString album, QString artist); + QList getAllTracksForArtist(QString artist); + + QList searchTracks(QString pattern); Playlist getFavorites(); Playlist getMostPlayed(); Playlist getNeverPlayed(); Playlist getRecentlyAdded(); + int getArtistsCount(); + int getAlbumsCount(); + int getTracksCount(); + QList getPlaylists(); QStringList getPlaylistsNames(); Playlist getPlaylist(QString name); @@ -52,9 +76,20 @@ namespace SomePlayer { Playlist getCurrentPlaylist(); void saveCurrentPlaylist(const Playlist &playlist); + LastPlayed getLastPlayedForCurPlaylist(); + + void updateDirectories(QList directories); + void updateAll(); + void deleteDirectories(QList directories); + + bool isFavorite(Track); signals: - void addingDone(); + void started(); + void done(); + void busy(QString); + void allCount(int); + void tick(); private: DbStorage *_library_storage; @@ -62,11 +97,19 @@ namespace SomePlayer { MediaScanner *_scanner; TagResolver *_resolver; + private slots: + void _scanned(QStringList); + void _decoded(Track); + public slots: void removeTrack(Track); void addTrack(Track); void addToFavorites(Track); + void removeFromFavorites(Track); void updateTrackCount(Track); + void updateTrackMetadata(Track); + void updatePlaylists(); + void saveLastPlayedForCurPlaylist(LastPlayed); }; };