From f3b22d0a2580f3fabbc1898b25ab762c94f6f25f Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 27 Mar 2017 08:11:49 +0200 Subject: [PATCH] upnpbrowser: fix neutrino mode while playing audio Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/81078780db8bf7e8238bf31fc4e279c300561a0f Author: vanhofen Date: 2017-03-27 (Mon, 27 Mar 2017) Origin message was: ------------------ - upnpbrowser: fix neutrino mode while playing audio --- src/gui/upnpbrowser.cpp | 14 ++++++++++++-- src/gui/upnpbrowser.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/gui/upnpbrowser.cpp b/src/gui/upnpbrowser.cpp index 0bdec674c..5871a3ea2 100644 --- a/src/gui/upnpbrowser.cpp +++ b/src/gui/upnpbrowser.cpp @@ -733,6 +733,7 @@ bool CUpnpBrowserGui::selectItem(std::string id) while (loop) { updateTimes(); + updateMode(); if (refresh) { printf("selectItem: refresh, timeout = %d\n", (int) timeout); @@ -1268,14 +1269,21 @@ void CUpnpBrowserGui::updateTimes(const bool force) } } +void CUpnpBrowserGui::updateMode() +{ + /* switch back to mode_upnp if audio has stopped automatically */ + if ((CAudioPlayer::getInstance()->getState() == CBaseDec::STOP) && (CNeutrinoApp::getInstance()->getMode() == NeutrinoMessages::mode_audio)) + { + CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::CHANGEMODE, NeutrinoMessages::mode_upnp | NeutrinoMessages::norezap); + } +} + void CUpnpBrowserGui::playAudio(std::string name, int type) { CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::CHANGEMODE, NeutrinoMessages::mode_audio); CAudiofile mp3(name, (CFile::FileType) type); CAudioPlayer::getInstance()->play(&mp3, g_settings.audioplayer_highprio == 1); - - CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::CHANGEMODE, NeutrinoMessages::mode_upnp | NeutrinoMessages::norezap); } void CUpnpBrowserGui::stopAudio() @@ -1284,6 +1292,8 @@ void CUpnpBrowserGui::stopAudio() { CAudioPlayer::getInstance()->stop(); } + + CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::CHANGEMODE, NeutrinoMessages::mode_upnp | NeutrinoMessages::norezap); } void CUpnpBrowserGui::showPicture(std::string name) diff --git a/src/gui/upnpbrowser.h b/src/gui/upnpbrowser.h index 123c9fe0e..b5826a0ca 100644 --- a/src/gui/upnpbrowser.h +++ b/src/gui/upnpbrowser.h @@ -124,6 +124,7 @@ class CUpnpBrowserGui : public CMenuTarget, public CListHelpers void paintItem2DetailsLine(int pos); void updateTimes(const bool force = false); + void updateMode(); void playAudio(std::string name, int type); void stopAudio(); void showPicture(std::string name);