void CGUIDialogExtendedProgressBar::UpdateState(unsigned int currentTime) { std::string strHeader; std::string strTitle; float fProgress(-1.0f); { CSingleLock lock(m_critSection); // delete finished items for (int iPtr = m_handles.size() - 1; iPtr >= 0; iPtr--) { if (m_handles.at(iPtr)->IsFinished()) { delete m_handles.at(iPtr); m_handles.erase(m_handles.begin() + iPtr); } } if (!m_handles.size()) { Close(false, 0, true, false); return; } // ensure the current item is in our range if (m_iCurrentItem >= m_handles.size()) m_iCurrentItem = m_handles.size() - 1; // update the current item ptr if (currentTime > m_iLastSwitchTime && currentTime - m_iLastSwitchTime >= ITEM_SWITCH_TIME_MS) { m_iLastSwitchTime = currentTime; // select next item if (++m_iCurrentItem > m_handles.size() - 1) m_iCurrentItem = 0; } CGUIDialogProgressBarHandle *handle = m_handles.at(m_iCurrentItem); if (handle) { strTitle = handle->Text(); strHeader = handle->Title(); fProgress = handle->Percentage(); } } SET_CONTROL_LABEL(CONTROL_LABELHEADER, strHeader); SET_CONTROL_LABEL(CONTROL_LABELTITLE, strTitle); if (fProgress > -1.0f) { SET_CONTROL_VISIBLE(CONTROL_PROGRESS); CONTROL_SELECT_ITEM(CONTROL_PROGRESS, (unsigned int)fProgress); } }
void CGUIDialogSeekBar::FrameMove() { if (!g_application.GetAppPlayer().HasPlayer()) { Close(true); return; } int progress = GetProgress(); if (progress != m_lastProgress) CONTROL_SELECT_ITEM(POPUP_SEEK_PROGRESS, m_lastProgress = progress); int epgEventProgress = GetEpgEventProgress(); if (epgEventProgress != m_lastEpgEventProgress) CONTROL_SELECT_ITEM(POPUP_SEEK_EPG_EVENT_PROGRESS, m_lastEpgEventProgress = epgEventProgress); int timeshiftProgress = GetTimeshiftProgress(); if (timeshiftProgress != m_lastTimeshiftProgress) CONTROL_SELECT_ITEM(POPUP_SEEK_TIMESHIFT_PROGRESS, m_lastTimeshiftProgress = timeshiftProgress); CGUIDialog::FrameMove(); }
void CGUIDialogSeekBar::FrameMove() { if (!g_application.GetAppPlayer().HasPlayer()) { Close(true); return; } unsigned int percent = g_application.GetAppPlayer().GetSeekHandler().InProgress() ? std::lrintf(GetSeekPercent()) : std::lrintf(g_application.GetPercentage()); if (percent != m_lastPercent) CONTROL_SELECT_ITEM(POPUP_SEEK_PROGRESS, m_lastPercent = percent); unsigned int epgEventPercent = g_application.GetAppPlayer().GetSeekHandler().InProgress() ? GetEpgEventSeekPercent() : GetEpgEventProgress(); if (epgEventPercent != m_lastEpgEventPercent) CONTROL_SELECT_ITEM(POPUP_SEEK_EPG_EVENT_PROGRESS, m_lastEpgEventPercent = epgEventPercent); CGUIDialog::FrameMove(); }
void CGUIDialogSeekBar::FrameMove() { if (!g_application.m_pPlayer->HasPlayer()) { Close(true); return; } unsigned int percent((!CSeekHandler::GetInstance().InProgress() && g_infoManager.GetTotalPlayTime()) ? lrintf(g_application.GetPercentage()) : (unsigned int)g_infoManager.GetSeekPercent()); if (percent != m_lastPercent) CONTROL_SELECT_ITEM(POPUP_SEEK_PROGRESS, m_lastPercent = percent); CGUIDialog::FrameMove(); }