From d3a479b7fa1d1e52f9d3950139643fe7e3ff5a57 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 10 Jan 2013 19:08:42 +0100 Subject: event/TimeoutMonitor: wrapper for g_timeout_source_new() --- src/StateFile.cxx | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'src/StateFile.cxx') diff --git a/src/StateFile.cxx b/src/StateFile.cxx index a19eac55..b7805652 100644 --- a/src/StateFile.cxx +++ b/src/StateFile.cxx @@ -35,17 +35,11 @@ #define G_LOG_DOMAIN "state_file" StateFile::StateFile(const char *_path, Partition &_partition, EventLoop &_loop) - :path(_path), partition(_partition), loop(_loop), - source_id(0), + :TimeoutMonitor(_loop), path(_path), partition(_partition), prev_volume_version(0), prev_output_version(0), prev_playlist_version(0) { - source_id = loop.AddTimeoutSeconds(5 * 60, TimerCallback, this); -} - -StateFile::~StateFile() -{ - g_source_remove(source_id); + ScheduleSeconds(5 * 60); } void @@ -120,11 +114,9 @@ StateFile::AutoWrite() * This function is called every 5 minutes by the GLib main loop, and * saves the state file. */ -gboolean -StateFile::TimerCallback(gpointer data) +bool +StateFile::OnTimeout() { - StateFile &state_file = *(StateFile *)data; - - state_file.AutoWrite(); + AutoWrite(); return true; } -- cgit v1.2.3