Initial implementation of the OnLowBattery signal in UPower
authortopfs2 <topfs2@svn>
Fri, 7 May 2010 22:27:27 +0000 (22:27 +0000)
committertopfs2 <topfs2@svn>
Fri, 7 May 2010 22:27:27 +0000 (22:27 +0000)
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@29914 568bbfeb-2a22-0410-94d2-cc84cf5bfa90

xbmc/linux/ConsoleUPowerSyscall.cpp
xbmc/linux/ConsoleUPowerSyscall.h

index 0048fb8..6449775 100644 (file)
@@ -31,6 +31,8 @@ CConsoleUPowerSyscall::CConsoleUPowerSyscall()
 {
   CLog::Log(LOGINFO, "Selected UPower and ConsoleKit as PowerSyscall");
 
+  m_lowBattery = false;
+
   dbus_error_init (&m_error);
   m_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &m_error);
 
@@ -160,7 +162,12 @@ bool CConsoleUPowerSyscall::PumpPowerEvents(IPowerEventsCallback *callback)
       else if (dbus_message_is_signal(msg, "org.freedesktop.UPower", "Resuming"))
         callback->OnWake();
       else if (dbus_message_is_signal(msg, "org.freedesktop.UPower", "Changed"))
+      {
+        bool lowBattery = m_lowBattery;
         UpdateUPower();
+        if (m_lowBattery && !lowBattery)
+          callback->OnLowBattery();
+      }
       else
         CLog::Log(LOGDEBUG, "UPower: Recieved an unkown signal %s", dbus_message_get_member(msg));
 
index c639183..b4446e6 100644 (file)
@@ -51,6 +51,8 @@ private:
   bool m_CanHibernate;
   bool m_CanReboot;
 
+  bool m_lowBattery;
+
   DBusConnection *m_connection;
   DBusError m_error;
 };