diff options
Diffstat (limited to 'src/StateFile.hxx')
-rw-r--r-- | src/StateFile.hxx | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/StateFile.hxx b/src/StateFile.hxx index 35269fe40..0888b25ad 100644 --- a/src/StateFile.hxx +++ b/src/StateFile.hxx @@ -20,14 +20,39 @@ #ifndef MPD_STATE_FILE_HXX #define MPD_STATE_FILE_HXX +#include <glib.h> + +#include <string> + struct Partition; +class EventLoop; + +class StateFile { + std::string path; + + Partition &partition; + EventLoop &loop; + + /** the GLib source id for the save timer */ + guint source_id; + + /** + * These version numbers determine whether we need to save the state + * file. If nothing has changed, we won't let the hard drive spin up. + */ + unsigned prev_volume_version, prev_output_version, + prev_playlist_version; -void -state_file_init(const char *path, Partition &partition); +public: + StateFile(const char *path, Partition &partition, EventLoop &loop); + ~StateFile(); -void -state_file_finish(Partition &partition); + void Read(); + void Write(); + void AutoWrite(); -void write_state_file(void); +private: + static gboolean TimerCallback(gpointer data); +}; #endif /* STATE_FILE_H */ |