diff options
author | Tobias Arrskog <topfs2@xbmc.org> | 2013-04-02 00:31:28 -0700 |
---|---|---|
committer | Tobias Arrskog <topfs2@xbmc.org> | 2013-04-02 00:31:28 -0700 |
commit | 7008e3561de5064f5cd9d902ba742c271d9e6efa (patch) | |
tree | 9cb81204f815b1c42c8a1dbb91accff295bf8643 | |
parent | 6737e7411926da2b5e0b8a842e4c62ddbd11253d (diff) | |
parent | 2f8398025dcaf52f606fd8655c4e24788e14bbef (diff) |
Merge pull request #2500 from topfs2/powermanagerinteraction
[PowerManagement] Made busy dialog open when something issues suspend, h...
-rw-r--r-- | xbmc/powermanagement/PowerManager.cpp | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/xbmc/powermanagement/PowerManager.cpp b/xbmc/powermanagement/PowerManager.cpp index ca94f49034..0756b1e1b1 100644 --- a/xbmc/powermanagement/PowerManager.cpp +++ b/xbmc/powermanagement/PowerManager.cpp @@ -31,6 +31,8 @@ #include "interfaces/AnnouncementManager.h" #include "guilib/LocalizeStrings.h" #include "guilib/GraphicContext.h" +#include "guilib/GUIWindowManager.h" +#include "dialogs/GUIDialogBusy.h" #include "dialogs/GUIDialogKaiToast.h" #if defined(TARGET_DARWIN) @@ -137,25 +139,58 @@ void CPowerManager::SetDefaults() bool CPowerManager::Powerdown() { - return CanPowerdown() ? m_instance->Powerdown() : false; + if (CanPowerdown() && m_instance->Powerdown()) + { + CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); + if (dialog) + dialog->Show(); + + return true; + } + + return false; } bool CPowerManager::Suspend() { - return CanSuspend() ? m_instance->Suspend() : false; + if (CanSuspend() && m_instance->Suspend()) + { + CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); + if (dialog) + dialog->Show(); + + return true; + } + + return false; } bool CPowerManager::Hibernate() { - return CanHibernate() ? m_instance->Hibernate() : false; + if (CanHibernate() && m_instance->Hibernate()) + { + CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); + if (dialog) + dialog->Show(); + + return true; + } + + return false; } bool CPowerManager::Reboot() { bool success = CanReboot() ? m_instance->Reboot() : false; if (success) + { CAnnouncementManager::Announce(System, "xbmc", "OnRestart"); + CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); + if (dialog) + dialog->Show(); + } + return success; } @@ -209,6 +244,10 @@ void CPowerManager::OnWake() // reset out timers g_application.ResetShutdownTimers(); + CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY); + if (dialog) + dialog->Close(); + #if defined(HAS_SDL) || defined(TARGET_WINDOWS) if (g_Windowing.IsFullScreen()) { |