X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Ffilestorage.h;h=376af3639454bdc70e9770098cb61d3d3ac989c5;hp=144828ef6530cacf398989be572eeb02da10827c;hb=68d60ad21e61d1e3255673985ae19606ceb0c59d;hpb=4e6c2c79b2071319631846dd9459234a27f700de diff --git a/src/filestorage.h b/src/filestorage.h index 144828e..376af36 100644 --- a/src/filestorage.h +++ b/src/filestorage.h @@ -1,12 +1,46 @@ +/* + * 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 FILE_STORAGE #define FILE_STORAGE #include "someplayer.h" #include "storage.h" #include "playlist.h" +#include #define _CURRENT_PLAYLIST_NAME_ "___current" -#define _PLAYLIST_FILE_EXTENSION_ ".m3u" +#define _CURRENT_PLAYLIST_SUBST_ "Now playing" +#define _PLAYLIST_FILE_EXTENSION_ "spls" +#define _PLAYLIST_SIGNATURE_ "#SOMEPLAYLIST" +#define _PLAYLIST_META_KEYWORD_ "#META" +#define _PLAYLIST_PATH_KEYWORD_ "#PATH" + +// format: +/* + #SOMEPLAYLIST + #META [ID][seconds],::artist::,::album::,::title:: + #PATH file_path + #META [ID][seconds],::artist::,::album::,::title:: + #PATH file_path + ... + */ // represents file-level storage // it store data into separate files (e.g. playlist) @@ -16,11 +50,13 @@ using SomePlayer::DataObjects::Playlist; namespace SomePlayer { namespace Storage { - class FileStorage : public Storage { + class FileStorage { public: FileStorage(QString path); QList getPlaylists(); + QStringList getPlaylistsNames(); + Playlist getPlaylist(QString name); void savePlaylist(Playlist playlist); void removePlaylist(Playlist playlist); void removePlaylist(QString name); @@ -29,6 +65,8 @@ namespace SomePlayer { void saveCurrentPlaylist(Playlist playlist); private: QString _path_prefix; + QRegExp _meta_regexp; + QRegExp _path_regexp; }; };