M3U playlists import
[someplayer] / src / filestorage.h
index 376af36..1bdbc09 100644 (file)
 #include "someplayer.h"
 #include "storage.h"
 #include "playlist.h"
-#include <QRegExp>
 
 #define _CURRENT_PLAYLIST_NAME_ "___current"
 #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"
+#define _PLAYLIST_FILE_EXTENSION_ "xspf"
+// legacy _start_
+#define _PLAYLIST_FILE_EXTENSION_OLD_ "spls"
+// legacy _end_
 
-// format:
-/*
- #SOMEPLAYLIST
- #META [ID][seconds],::artist::,::album::,::title::
- #PATH file_path
- #META [ID][seconds],::artist::,::album::,::title::
- #PATH file_path
- ...
- */
+// format: XSPF (http://xspf.org)
+// required elements:
+// <extension application="http://example.com">
+// <cl:clip title="TITLE" artist="ARTIST" album="ALBUM"/>
+// </extension>
 
 // represents file-level storage
 // it store data into separate files (e.g. playlist)
 
 using SomePlayer::DataObjects::Playlist;
+using SomePlayer::DataObjects::LastPlayed;
 
 namespace SomePlayer {
        namespace Storage {
@@ -60,13 +56,14 @@ namespace SomePlayer {
                        void savePlaylist(Playlist playlist);
                        void removePlaylist(Playlist playlist);
                        void removePlaylist(QString name);
+                       void importPlaylist(QString name);
 
                        Playlist getCurrentPlaylist();
                        void saveCurrentPlaylist(Playlist playlist);
+                       LastPlayed getLastPlayedForCurPlaylist();
+                       void saveLastPlayedForCurPlaylist(LastPlayed);
                private:
                        QString _path_prefix;
-                       QRegExp _meta_regexp;
-                       QRegExp _path_regexp;
                };
 
        };