From: Chris "Koying" Browet Date: Tue, 6 Nov 2012 00:01:38 +0000 (+0100) Subject: FIX: Properly handle Pictures Play/Stop notif (fixes #13501; fixes #13503) X-Git-Tag: Frodo_beta1~106^2 X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_xbmc;a=commitdiff_plain;h=2f40a8d9b96d9a1a161705b31d87e243527c58fb FIX: Properly handle Pictures Play/Stop notif (fixes #13501; fixes #13503) --- diff --git a/xbmc/pictures/GUIWindowPictures.cpp b/xbmc/pictures/GUIWindowPictures.cpp index ef92b37..ef620ff 100644 --- a/xbmc/pictures/GUIWindowPictures.cpp +++ b/xbmc/pictures/GUIWindowPictures.cpp @@ -41,6 +41,7 @@ #include "utils/log.h" #include "utils/URIUtils.h" #include "Autorun.h" +#include "interfaces/AnnouncementManager.h" #define CONTROL_BTNVIEWASICONS 2 #define CONTROL_BTNSORTBY 3 @@ -354,6 +355,13 @@ bool CGUIWindowPictures::ShowPicture(int iItem, bool startSlideShow) if (startSlideShow) pSlideShow->StartSlideShow(false); + else + { + CVariant param; + param["player"]["speed"] = 1; + param["player"]["playerid"] = PLAYLIST_PICTURE; + ANNOUNCEMENT::CAnnouncementManager::Announce(ANNOUNCEMENT::Player, "xbmc", "OnPlay", pSlideShow->GetCurrentSlide(), param); + } m_slideShowStarted = true; g_windowManager.ActivateWindow(WINDOW_SLIDESHOW); diff --git a/xbmc/pictures/GUIWindowSlideShow.cpp b/xbmc/pictures/GUIWindowSlideShow.cpp index 44cbe88..c810ed3 100644 --- a/xbmc/pictures/GUIWindowSlideShow.cpp +++ b/xbmc/pictures/GUIWindowSlideShow.cpp @@ -378,6 +378,8 @@ void CGUIWindowSlideShow::StartSlideShow(bool screensaver) m_bSlideShow = true; m_iDirection = 1; m_bScreensaver = screensaver; + if (m_slides->Size()) + AnnouncePlayerPlay(m_slides->Get(m_iCurrentSlide)); } void CGUIWindowSlideShow::Process(unsigned int currentTime, CDirtyRegionList ®ions) @@ -699,7 +701,7 @@ bool CGUIWindowSlideShow::OnAction(const CAction &action) case ACTION_PREVIOUS_MENU: case ACTION_NAV_BACK: case ACTION_STOP: - if (m_bSlideShow && m_slides->Size()) + if (m_slides->Size()) AnnouncePlayerStop(m_slides->Get(m_iCurrentSlide)); g_windowManager.PreviousWindow(); break;