diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index fbb6084e1..431884e43 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1482,6 +1482,7 @@ bool CMoviePlayerGui::SetPosition(int pos, bool absolute) playback->SetSpeed(speed); } StartSubtitles(true); + FileTimeOSD_tmp = 0; return res; } @@ -1553,6 +1554,8 @@ void CMoviePlayerGui::PlayFileLoop(void) int bisection_loop = -1; int bisection_loop_max = 5; + FileTimeOSD_tmp = -1; + while (playstate >= CMoviePlayerGui::PLAY) { if (update_lcd) { @@ -1586,9 +1589,25 @@ void CMoviePlayerGui::PlayFileLoop(void) if (bisection_loop > bisection_loop_max) bisection_loop = -1; + if (FileTimeOSD_tmp > -1) + FileTimeOSD_tmp++; + if ((playstate >= CMoviePlayerGui::PLAY) && (timeshift != TSHIFT_MODE_OFF || (playstate != CMoviePlayerGui::PAUSE))) { if (playback->GetPosition(position, duration)) { FileTimeOSD->update(position, duration); + + if (FileTimeOSD_tmp > -1 && !FileTimeOSD->IsVisible()) + { + FileTimeOSD->setMode(CTimeOSD::MODE_TMP); + FileTimeOSD->show(position); + } + if (FileTimeOSD_tmp > bisection_loop_max) + { + FileTimeOSD_tmp = -1; + if (FileTimeOSD->getMode() == CTimeOSD::MODE_TMP) + FileTimeOSD->kill(); + } + if (duration > 100) file_prozent = (unsigned char) (position / (duration / 100)); @@ -1866,6 +1885,7 @@ void CMoviePlayerGui::PlayFileLoop(void) FileTimeOSD->switchMode(position, duration); time_forced = false; FileTimeOSD->setMpTimeForced(false); + FileTimeOSD_tmp = -1; } else if (msg == (neutrino_msg_t) g_settings.mbkey_cover) { makeScreenShot(false, true); } else if (msg == (neutrino_msg_t) g_settings.key_screenshot) { diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index 2582e70a9..68e737b6e 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -107,6 +107,7 @@ class CMoviePlayerGui : public CMenuTarget std::string currentaudioname; bool playing; bool time_forced; + int FileTimeOSD_tmp; CMoviePlayerGui::state playstate; int keyPressed; bool isLuaPlay; diff --git a/src/gui/timeosd.cpp b/src/gui/timeosd.cpp index 561a30e03..75d1bd5b6 100644 --- a/src/gui/timeosd.cpp +++ b/src/gui/timeosd.cpp @@ -139,6 +139,7 @@ void CTimeOSD::update(int position, int duration) { switch(m_mode) { case MODE_ASC: + case MODE_TMP: show(position, false); break; case MODE_DESC: @@ -156,6 +157,7 @@ void CTimeOSD::switchMode(int position, int duration) { switch (m_mode) { case MODE_ASC: + case MODE_TMP: InfoIcons->enableInfoIcons(false); //NI InfoIcons m_mode = MODE_DESC; CComponents::kill(); diff --git a/src/gui/timeosd.h b/src/gui/timeosd.h index fe2f678f3..aa2e7e31c 100644 --- a/src/gui/timeosd.h +++ b/src/gui/timeosd.h @@ -37,6 +37,7 @@ class CTimeOSD : public CComponentsFrmClock MODE_ASC, MODE_DESC, MODE_BAR, + MODE_TMP, MODE_HIDE };