1 #ifndef LOCAL_H
2 #define LOCAL_H
3 
4 #include "storage.h"
5 #include "playlist/playlist.h"
6 
7 #include <QByteArray>
8 
9 namespace Config {
10   class Local {
11   public:
12     explicit Local();
13 
14     bool sync();
15 
16     bool saveWindowGeometry(const QByteArray &v);
17     QByteArray windowGeomentry() const;
18 
19     bool saveWindowState(const QByteArray &v);
20     QByteArray windowState() const;
21 
22     bool saveSplitterSizes(const QList<int> &list);
23     QList<int> splitterSizes() const;
24 
25     QList<std::shared_ptr<Playlist::Playlist>> playlists() const;
26     bool savePlaylists(QList<std::shared_ptr<Playlist::Playlist>> &list);
27 
28     int currentPlaylist() const;
29     bool saveCurrentPlaylist(int idx);
30 
31     QStringList libraryPaths() const;
32     bool saveLibraryPaths(const QStringList &arg);
33 
34     int currentLibraryPath() const;
35     bool saveCurrentLibraryPath(int arg);
36 
37     int libraryViewScrollPosition() const;
38     bool saveLibraryViewScrollPosition(int val);
39 
40     int playlistViewScrollPosition() const;
41     bool savePlaylistViewScrollPosition(int val);
42 
43     int volume() const;
44     bool saveVolume(int arg);
45 
46     int totalPlaybackTime() const;
47     bool saveTotalPlaybackTime(int arg);
48 
49   private:
50     Config::Storage storage;
51 
52     Config::Value serializeTrack(const Track &t) const;
53     Track deserializeTrack(const Config::Value &v) const;
54   };
55 }
56 
57 #endif // LOCAL_H
58