diff -Nur xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/LinuxPowerSyscall.cpp xbmc-12.3-Frodo/xbmc/powermanagement/linux/LinuxPowerSyscall.cpp --- xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/LinuxPowerSyscall.cpp 1970-01-01 01:00:00.000000000 +0100 +++ xbmc-12.3-Frodo/xbmc/powermanagement/linux/LinuxPowerSyscall.cpp 2014-01-10 16:23:32.238217592 +0100 @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2014 Team XBMC + * http://www.xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#if defined (_LINUX) + +#include +#include "LinuxPowerSyscall.h" +#include "utils/log.h" + +CLinuxPowerSyscall::CLinuxPowerSyscall() +{ + CLog::Log(LOGINFO, "Selected LinuxPower as PowerSyscall"); +} + +CLinuxPowerSyscall::~CLinuxPowerSyscall() +{ } + +bool CLinuxPowerSyscall::Powerdown() +{ + system("/sbin/poweroff -F"); + return 0; +} + +bool CLinuxPowerSyscall::Reboot() +{ + system("/sbin/reboot -F"); + return 0; +} + +int CLinuxPowerSyscall::BatteryLevel(void) +{ } + +bool CLinuxPowerSyscall::PumpPowerEvents(IPowerEventsCallback *callback) +{ + return true; +} + +#endif diff -Nur xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/LinuxPowerSyscall.h xbmc-12.3-Frodo/xbmc/powermanagement/linux/LinuxPowerSyscall.h --- xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/LinuxPowerSyscall.h 1970-01-01 01:00:00.000000000 +0100 +++ xbmc-12.3-Frodo/xbmc/powermanagement/linux/LinuxPowerSyscall.h 2014-01-10 14:57:23.365205874 +0100 @@ -0,0 +1,44 @@ +#pragma once +/* + * Copyright (C) 2014 Team XBMC + * http://www.xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, see + * . + * + */ + +#if defined (_LINUX) +#include "powermanagement/IPowerSyscall.h" + +class CLinuxPowerSyscall : public CPowerSyscallWithoutEvents +{ +public: + CLinuxPowerSyscall(); + ~CLinuxPowerSyscall(); + + virtual bool Powerdown(); + virtual bool Suspend(void) { return false; } + virtual bool Hibernate(void) { return false; } + virtual bool Reboot(); + + virtual bool CanPowerdown(void) { return true; } + virtual bool CanSuspend(void) { return false; } + virtual bool CanHibernate(void) { return false; } + virtual bool CanReboot(void) { return true; } + virtual int BatteryLevel(void); + + virtual bool PumpPowerEvents(IPowerEventsCallback *callback); +}; +#endif diff -Nur xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/Makefile xbmc-12.3-Frodo/xbmc/powermanagement/linux/Makefile --- xbmc-12.3-Frodo.orig/xbmc/powermanagement/linux/Makefile 2013-12-12 22:47:49.000000000 +0100 +++ xbmc-12.3-Frodo/xbmc/powermanagement/linux/Makefile 2014-01-10 14:27:13.411383558 +0100 @@ -2,7 +2,8 @@ ConsoleUPowerSyscall.cpp \ HALPowerSyscall.cpp \ UPowerSyscall.cpp \ - SystemdUPowerSyscall.cpp + SystemdUPowerSyscall.cpp \ + LinuxPowerSyscall.cpp LIB=powermanagement_linux.a diff -Nur xbmc-12.3-Frodo.orig/xbmc/powermanagement/PowerManager.cpp xbmc-12.3-Frodo/xbmc/powermanagement/PowerManager.cpp --- xbmc-12.3-Frodo.orig/xbmc/powermanagement/PowerManager.cpp 2013-12-12 22:47:49.000000000 +0100 +++ xbmc-12.3-Frodo/xbmc/powermanagement/PowerManager.cpp 2014-01-14 11:19:11.558337441 +0100 @@ -46,6 +46,9 @@ #include "linux/ConsoleDeviceKitPowerSyscall.h" #include "linux/SystemdUPowerSyscall.h" #include "linux/UPowerSyscall.h" +#ifdef HAS_SIMPLEPM +#include "linux/LinuxPowerSyscall.h" +#endif #ifdef HAS_HAL #include "linux/HALPowerSyscall.h" #endif @@ -83,6 +86,10 @@ m_instance = new CSystemdUPowerSyscall(); else if (CUPowerSyscall::HasUPower()) m_instance = new CUPowerSyscall(); +#ifdef HAS_SIMPLEPM + else + m_instance = new CLinuxPowerSyscall(); +#endif #ifdef HAS_HAL else m_instance = new CHALPowerSyscall();