From 92fb0e829a9b61d1b1db4bdbe6096c1772b7c819 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 14 Jan 2013 11:00:22 +0100 Subject: StateFile: convert to a class --- src/StateFile.hxx | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'src/StateFile.hxx') diff --git a/src/StateFile.hxx b/src/StateFile.hxx index 35269fe4..0888b25a 100644 --- a/src/StateFile.hxx +++ b/src/StateFile.hxx @@ -20,14 +20,39 @@ #ifndef MPD_STATE_FILE_HXX #define MPD_STATE_FILE_HXX +#include + +#include + 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 */ -- cgit v1.2.3