void Timer::AddTimeStamp(unsigned int id) { std::map<unsigned int, double>::iterator it; if ((it = m_timeStamps.find(id)) != m_timeStamps.end()) { it->second = GetTotalTime(); } else { m_timeStamps.emplace(id, GetTotalTime()); } }
void PAPlayer::Seek(bool bPlus, bool bLargeStep, bool bChapterOverride) { if (!CanSeek()) return; __int64 seek; if (g_advancedSettings.m_musicUseTimeSeeking && GetTotalTime() > 2 * g_advancedSettings.m_musicTimeSeekForwardBig) { if (bLargeStep) seek = bPlus ? g_advancedSettings.m_musicTimeSeekForwardBig : g_advancedSettings.m_musicTimeSeekBackwardBig; else seek = bPlus ? g_advancedSettings.m_musicTimeSeekForward : g_advancedSettings.m_musicTimeSeekBackward; seek *= 1000; seek += GetTime(); } else { float percent; if (bLargeStep) percent = bPlus ? (float)g_advancedSettings.m_musicPercentSeekForwardBig : (float)g_advancedSettings.m_musicPercentSeekBackwardBig; else percent = bPlus ? (float)g_advancedSettings.m_musicPercentSeekForward : (float)g_advancedSettings.m_musicPercentSeekBackward; seek = (__int64)(GetTotalTime64() * (GetPercentage() + percent) / 100); } SeekTime(seek); }
void Synchronizer::SynchronizerThread() { try { Logger::LogInfo("[Synchronizer::SynchronizerThread] Synchronizer thread started."); while(!m_should_stop) { { SharedLock lock(&m_shared_data); FlushBuffers(lock.get()); if(lock->m_sync_diagram != NULL) { double time_in = (double) hrt_time_micro() * 1.0e-6; double time_out = (double) GetTotalTime(lock.get()) * 1.0e-6; lock->m_sync_diagram->SetCurrentTime(0, time_in); lock->m_sync_diagram->SetCurrentTime(1, time_in); lock->m_sync_diagram->SetCurrentTime(2, time_out); lock->m_sync_diagram->SetCurrentTime(3, time_out); lock->m_sync_diagram->Update(); } } usleep(10000); } Logger::LogInfo("[Synchronizer::SynchronizerThread] Synchronizer thread stopped."); } catch(const std::exception& e) { m_error_occurred = true; Logger::LogError(QString("[Synchronizer::SynchronizerThread] Exception '") + e.what() + "' in synchronizer thread."); } catch(...) { m_error_occurred = true; Logger::LogError("[Synchronizer::SynchronizerThread] Unknown exception in synchronizer thread."); } }
double Get20MoveTime() { for (unsigned int x = 0; x < lengths.size(); x++) if (lengths[x] >= 20) return std::accumulate(times.begin(), times.begin()+1+x, 0.0); return GetTotalTime(); }
void CDummyVideoPlayer::Seek(bool bPlus, bool bLargeStep, bool bChapterOverride) { if (g_advancedSettings.m_videoUseTimeSeeking && GetTotalTime() > 2000*g_advancedSettings.m_videoTimeSeekForwardBig) { int seek = 0; if (bLargeStep) seek = bPlus ? g_advancedSettings.m_videoTimeSeekForwardBig : g_advancedSettings.m_videoTimeSeekBackwardBig; else seek = bPlus ? g_advancedSettings.m_videoTimeSeekForward : g_advancedSettings.m_videoTimeSeekBackward; // do the seek SeekTime(GetTime() + seek * 1000); } else { float percent = GetPercentage(); if (bLargeStep) percent += bPlus ? g_advancedSettings.m_videoPercentSeekForwardBig : g_advancedSettings.m_videoPercentSeekBackwardBig; else percent += bPlus ? g_advancedSettings.m_videoPercentSeekForward : g_advancedSettings.m_videoPercentSeekBackward; if (percent >= 0 && percent <= 100) { // should be modified to seektime SeekPercentage(percent); } } }
float CUPnPPlayer::GetPercentage() { int64_t tot = GetTotalTime(); if(tot) return 100.0f * GetTime() / tot; else return 0.0f; }
void CAVPlayer::SeekForward() { //int iPos = GetPos(); //SeekTo((int)ceil(iPos * 1.1)); // 一次快退5秒 if (m_pVLC_Player) { libvlc_time_t i_time = libvlc_media_player_get_time(m_pVLC_Player) + 5000; if (i_time > GetTotalTime()) { i_time = GetTotalTime(); } libvlc_media_player_set_time(m_pVLC_Player, i_time); } }
void Render::UpdateFrameTime() { double totalTime = GetTotalTime(); _frameTime = totalTime - _lastTotalTime; _lastTotalTime = totalTime; if(_frameTime > 0.1f) { _frameTime = 0.1f; // below 10fps, leak real time } }
float CDummyVideoPlayer::GetPercentage() { int64_t iTotalTime = GetTotalTime(); if (iTotalTime != 0) { return GetTime() * 100 / (float)iTotalTime; } return 0.0f; }
float CApplicationPlayer::GetPercentage() const { std::shared_ptr<IPlayer> player = GetInternal(); if (player) { int64_t iTotalTime = GetTotalTime(); if (!iTotalTime) return 0.0f; return GetTime() * 100 / static_cast<float>(iTotalTime); } else return 0.0; }
void BattleUI::InitHeroUI() { ArmatureDataManager::getInstance()->addArmatureFileInfo("Texiao.ExportJson"); auto layout_Bottom = m_RootWidget->getChildByName<Layout*>("Layout_Bottom"); auto text_HeroText = layout_Bottom->getChildByName<Text*>("Text_HeroText"); auto langId = (int)LanguageIdEnum::SelfLangId; auto langText = MultiLanguage::getInstance()->GetText(langId); text_HeroText->setString(langText); auto lbar_HeroHp = layout_Bottom->getChildByName<LoadingBar*>("LBar_HeroHp"); lbar_HeroHp->setPercent(100); //自动或手动控制战斗 auto btn_Auto = layout_Bottom->getChildByName<Button*>("Btn_Auto"); auto btn_UnAuto = layout_Bottom->getChildByName<Button*>("Btn_UnAuto"); if (BattleData::getInstance()->m_HeroAutoAttack) { btn_Auto->setVisible(true); btn_UnAuto->setVisible(false); }else { btn_Auto->setVisible(false); btn_UnAuto->setVisible(true); } langId = (int)LanguageIdEnum::AutoAttackLangId; langText = MultiLanguage::getInstance()->GetText(langId); btn_Auto->setTitleText(langText); btn_UnAuto->setTitleText(langText); btn_Auto->addClickEventListener([=](Ref* sender) { btn_Auto->setVisible(false); btn_UnAuto->setVisible(true); BattleData::getInstance()->m_HeroAutoAttack = false; UserData::getInstance()->Update_Value(UserDataEnum::AutoAttack, Value(0)); }); btn_UnAuto->addClickEventListener([=](Ref* sender) { btn_Auto->setVisible(true); btn_UnAuto->setVisible(false); for (auto pb : *m_VecProgressBar) pb->Resume(); BattleData::getInstance()->m_HeroAutoAttack = true; UserData::getInstance()->Update_Value(UserDataEnum::AutoAttack, Value(1) ); }); auto btn_Bread = layout_Bottom->getChildByName<Button*>("Btn_Bread"); auto text_BreadName = btn_Bread->getChildByName<Text*>("Text_BreadNAME"); langId = (int)LanguageIdEnum::BreadLangId; langText = MultiLanguage::getInstance()->GetText(langId); text_BreadName->setString(langText); auto text_Bread = btn_Bread->getChildByName<Text*>("Text_Bread"); auto bread_Num = 0; auto breadData = UserData::getInstance()->Get_MVI_Value(UserDataEnum::BackPack, (int)CfgIdEnum::BreadId); if(breadData != Value::Null) bread_Num = breadData.asInt(); text_Bread->setString(StringUtils::format("%d", bread_Num)); auto lbar_Bread = btn_Bread->getChildByName<LoadingBar*>("LBar_Bread"); string pbName = "BreadHpSchedule"; auto progressBar = new ProgressBar(); progressBar->SetTotalTime(3); //3秒吃一个面包 progressBar->SetScheduleName(pbName); progressBar->SetLoadingBar(lbar_Bread); m_VecProgressBar->push_back(progressBar); progressBar->SetCallBack([this, progressBar]() { progressBar->Restart(); progressBar->GetLoadingBar()->setPercent(0); m_RootWidget->unschedule(progressBar->GetScheduleName()); }); btn_Bread->addClickEventListener([=](Ref* sender) { auto bread_Num = 0; auto breadData = UserData::getInstance()->Get_MVI_Value(UserDataEnum::BackPack, (int)CfgIdEnum::BreadId); if(breadData != Value::Null) bread_Num = breadData.asInt(); if (bread_Num == 0) { auto langId = (int)LanguageIdEnum::BreadNotEnoughId; auto langText = MultiLanguage::getInstance()->GetText(langId); MoveText::getInstance()->AddDefaultTextData(m_RootWidget, langText); }else { if(progressBar->GetRemainTime() == progressBar->GetTotalTime()) { auto bread_Num = UserData::getInstance()->Update_VMI_Fun( UserDataEnum::BackPack, (int)CfgIdEnum::BreadId, -1); if (bread_Num >= 0) { text_Bread->setString(StringUtils::format("%d", bread_Num)); //回血 BattleData::getInstance()->BreadRevertHp(); m_RootWidget->schedule([this, progressBar](float f) { progressBar->Update(f); }, progressBar->GetScheduleName()); } } AchievementSystem::getInstance()->CheckAchievement(UserEventType::BattleEatBread, 1); } }); vector<pair<int, int> >heroVec; BattlePubUI::getInstance()->GetBackPackHero(&heroVec); auto idx = 0; //创建英雄技能 for (auto heroData : heroVec) { auto heroId = heroData.first; auto heroNum = heroData.second; for (auto i = 0; i < heroNum ; i++) { CreateHeroEvent(heroId, idx); idx++; } } auto talentTeamTotalHp = BattleData::getInstance()->m_TalentTeamTotalHp; auto text_HeroHp = layout_Bottom->getChildByName<Text*>("Text_HeroHp"); text_HeroHp->setString(StringUtils::format("%d/%d", talentTeamTotalHp, talentTeamTotalHp)); BattleData::getInstance()->m_HeroHpLBar = lbar_HeroHp; BattleData::getInstance()->m_TextHeroHp = text_HeroHp; }
//英雄显示位置 void BattleUI::CreateHeroEvent(int cfgId, int idx) { auto layout_Bottom = m_RootWidget->getChildByName<Layout*>("Layout_Bottom"); string btn_Name = StringUtils::format("Btn_Skill%d", idx); auto Btn_Hero = layout_Bottom->getChildByName<Button*>(btn_Name); Btn_Hero->setVisible(true); auto lbar_Name = StringUtils::format("LBar_State%d", idx); auto lbar_State = Btn_Hero->getChildByName<LoadingBar*>(lbar_Name); lbar_State->setPercent(100); CfgDataRow dataRow(cfgId); auto textName = StringUtils::format("Text_Name%d", idx); auto text_Name = Btn_Hero->getChildByName<Text*>(textName); auto skillId = dataRow.GetValue(CfgField::SkillID_V)->asValueVector().begin()->asInt(); CfgDataRow skillDataRow(skillId); auto langId = skillDataRow.GetValue(CfgField::Name)->asInt(); auto langText = MultiLanguage::getInstance()->GetText(langId); text_Name->setString(langText); auto attack_Speed = dataRow.GetValue(CfgField::Spd_F)->asFloat(); attack_Speed = 10 / attack_Speed; Armature* armature = CreateHeroArmature(cfgId); string pbName = StringUtils::format("HeroSkillSchedule%d", idx); auto playName = skillDataRow.GetValue(CfgField::SkillAtksfxID_S)->asString(); auto isGetKong = UserData::getInstance()->Check_VI_Fun(UserDataEnum::TalentList, Value((int)CfgIdEnum::TalentEliminateCD)); auto progressBar = new ProgressBar(); progressBar->SetScheduleName(pbName); progressBar->SetTotalTime(attack_Speed, isGetKong); progressBar->SetLoadingBar(lbar_State); m_VecProgressBar->push_back(progressBar); progressBar->SetCallBack([=]() { progressBar->Restart(); if (armature->getAnimation()->getAnimationData()->getMovement(playName) == nullptr) { CCLOGERROR("Armature:%s, not %s", armature->getName().c_str(), playName.c_str()); }else if(m_IsPlayAnim) { armature->setVisible(true); armature->getAnimation()->play(playName); } if (m_MonsterArmature != nullptr && m_IsPlayAnim) { m_MonsterArmature->getAnimation()->play(m_Beating); } auto attackResult = BattleData::getInstance()->HeroAttack(cfgId); if (attackResult == -1) { BattleFinish(true); }else if(attackResult > 0) { BufferEffect(attackResult); } if (!BattleData::getInstance()->m_HeroAutoAttack) { m_RootWidget->unschedule(pbName); } }); Btn_Hero->addClickEventListener([this, progressBar, pbName](Ref* sender) { if(progressBar->GetRemainTime() == progressBar->GetTotalTime()) { m_RootWidget->schedule([this, progressBar](float f) { progressBar->Update(f); }, pbName); } }); m_RootWidget->schedule([this, progressBar](float f) { progressBar->Update(f); }, pbName); if (BattleData::getInstance()->m_HeroAutoAttack) { progressBar->Resume(); } UIUtils::getInstance()->showProperImg(Btn_Hero, cfgId); }
void CAMLPlayer::Seek(bool bPlus, bool bLargeStep) { // force updated to m_elapsed_ms, m_duration_ms. GetStatus(); CSingleLock lock(m_aml_csection); // try chapter seeking first, chapter_index is ones based. int chapter_index = GetChapter(); if (bLargeStep) { // seek to next chapter if (bPlus && (chapter_index < GetChapterCount())) { SeekChapter(chapter_index + 1); return; } // seek to previous chapter if (!bPlus && chapter_index) { SeekChapter(chapter_index - 1); return; } } int64_t seek_ms; if (g_advancedSettings.m_videoUseTimeSeeking) { if (bLargeStep && (GetTotalTime() > (2 * g_advancedSettings.m_videoTimeSeekForwardBig))) seek_ms = bPlus ? g_advancedSettings.m_videoTimeSeekForwardBig : g_advancedSettings.m_videoTimeSeekBackwardBig; else seek_ms = bPlus ? g_advancedSettings.m_videoTimeSeekForward : g_advancedSettings.m_videoTimeSeekBackward; // convert to milliseconds seek_ms *= 1000; seek_ms += m_elapsed_ms; } else { float percent; if (bLargeStep) percent = bPlus ? g_advancedSettings.m_videoPercentSeekForwardBig : g_advancedSettings.m_videoPercentSeekBackwardBig; else percent = bPlus ? g_advancedSettings.m_videoPercentSeekForward : g_advancedSettings.m_videoPercentSeekBackward; percent /= 100.0f; percent += (float)m_elapsed_ms/(float)m_duration_ms; // convert to milliseconds seek_ms = m_duration_ms * percent; } // handle stacked videos, dvdplayer does it so we do it too. if (g_application.CurrentFileItem().IsStack() && (seek_ms > m_duration_ms || seek_ms < 0)) { CLog::Log(LOGDEBUG, "CAMLPlayer::Seek: In mystery code, what did I do"); g_application.SeekTime((seek_ms - m_elapsed_ms) * 0.001 + g_application.GetTime()); // warning, don't access any object variables here as // the object may have been destroyed return; } if (seek_ms <= 1000) seek_ms = 1000; if (seek_ms > m_duration_ms) seek_ms = m_duration_ms; // do seek here g_infoManager.SetDisplayAfterSeek(100000); SeekTime(seek_ms); m_callback.OnPlayBackSeek((int)seek_ms, (int)(seek_ms - m_elapsed_ms)); g_infoManager.SetDisplayAfterSeek(); }
bool CAMLPlayer::CanSeek() { return GetTotalTime() > 0; }
void CDummyVideoPlayer::SeekPercentage(float iPercent) { __int64 iTotalMsec = GetTotalTime() * 1000; __int64 iTime = (__int64)(iTotalMsec * iPercent / 100); SeekTime(iTime); }
FText FBPProfilerStat::GetTotalTimeText() const { // Covert back up to seconds for total time. return FText::AsNumber(GetTotalTime(), &SBlueprintProfilerView::GetNumberFormat()); }
bool COggStream::IsFinished() { return !Valid() || (GetPlayTime() >= GetTotalTime()); }
int64_t Synchronizer::GetTotalTime() { SharedLock lock(&m_shared_data); return GetTotalTime(lock.get()); }
void CUPnPPlayer::SeekPercentage(float percent) { int64_t tot = GetTotalTime(); if (tot) SeekTime((int64_t)(tot * percent / 100)); }
void CGUIControlProfilerItem::SaveToXML(TiXmlElement *parent) { TiXmlElement *xmlControl = new TiXmlElement("control"); parent->LinkEndChild(xmlControl); const char *lpszType = NULL; switch (m_ControlType) { case CGUIControl::GUICONTROL_BUTTON: lpszType = "button"; break; case CGUIControl::GUICONTROL_CHECKMARK: lpszType = "checkmark"; break; case CGUIControl::GUICONTROL_FADELABEL: lpszType = "fadelabel"; break; case CGUIControl::GUICONTROL_IMAGE: case CGUIControl::GUICONTROL_BORDEREDIMAGE: lpszType = "image"; break; case CGUIControl::GUICONTROL_LARGE_IMAGE: lpszType = "largeimage"; break; case CGUIControl::GUICONTROL_LABEL: lpszType = "label"; break; case CGUIControl::GUICONTROL_LISTGROUP: lpszType = "group"; break; case CGUIControl::GUICONTROL_PROGRESS: lpszType = "progress"; break; case CGUIControl::GUICONTROL_RADIO: lpszType = "radiobutton"; break; case CGUIControl::GUICONTROL_RSS: lpszType = "rss"; break; case CGUIControl::GUICONTROL_SELECTBUTTON: lpszType = "selectbutton"; break; case CGUIControl::GUICONTROL_SLIDER: lpszType = "slider"; break; case CGUIControl::GUICONTROL_SETTINGS_SLIDER: lpszType = "sliderex"; break; case CGUIControl::GUICONTROL_SPIN: lpszType = "spincontrol"; break; case CGUIControl::GUICONTROL_SPINEX: lpszType = "spincontrolex"; break; case CGUIControl::GUICONTROL_TEXTBOX: lpszType = "textbox"; break; case CGUIControl::GUICONTROL_TOGGLEBUTTON: lpszType = "togglebutton"; break; case CGUIControl::GUICONTROL_VIDEO: lpszType = "videowindow"; break; case CGUIControl::GUICONTROL_MOVER: lpszType = "mover"; break; case CGUIControl::GUICONTROL_RESIZE: lpszType = "resize"; break; case CGUIControl::GUICONTROL_EDIT: lpszType = "edit"; break; case CGUIControl::GUICONTROL_VISUALISATION: lpszType = "visualisation"; break; case CGUIControl::GUICONTROL_MULTI_IMAGE: lpszType = "multiimage"; break; case CGUIControl::GUICONTROL_GROUP: lpszType = "group"; break; case CGUIControl::GUICONTROL_GROUPLIST: lpszType = "grouplist"; break; case CGUIControl::GUICONTROL_SCROLLBAR: lpszType = "scrollbar"; break; case CGUIControl::GUICONTROL_LISTLABEL: lpszType = "label"; break; case CGUIControl::GUICONTROL_MULTISELECT: lpszType = "multiselect"; break; case CGUIControl::GUICONTAINER_LIST: lpszType = "list"; break; case CGUIControl::GUICONTAINER_WRAPLIST: lpszType = "wraplist"; break; case CGUIControl::GUICONTAINER_FIXEDLIST: lpszType = "fixedlist"; break; case CGUIControl::GUICONTAINER_PANEL: lpszType = "panel"; break; //case CGUIControl::GUICONTROL_UNKNOWN: default: break; } if (lpszType) xmlControl->SetAttribute("type", lpszType); if (m_controlID != 0) { CStdString str; str.Format("%u", m_controlID); xmlControl->SetAttribute("id", str.c_str()); } float pct = (float)GetTotalTime() / (float)m_pProfiler->GetTotalTime(); if (pct > 0.01f) { CStdString str; str.Format("%.0f", pct * 100.0f); xmlControl->SetAttribute("percent", str.c_str()); } if (!m_strDescription.IsEmpty()) { TiXmlElement *elem = new TiXmlElement("description"); xmlControl->LinkEndChild(elem); TiXmlText *text = new TiXmlText(m_strDescription.c_str()); elem->LinkEndChild(text); } // Note time is stored in 1/100 milliseconds but reported in ms unsigned int vis = m_visTime / 100; unsigned int rend = m_renderTime / 100; if (vis || rend) { CStdString val; TiXmlElement *elem = new TiXmlElement("rendertime"); xmlControl->LinkEndChild(elem); val.Format("%u", rend); TiXmlText *text = new TiXmlText(val.c_str()); elem->LinkEndChild(text); elem = new TiXmlElement("visibletime"); xmlControl->LinkEndChild(elem); val.Format("%u", vis); text = new TiXmlText(val.c_str()); elem->LinkEndChild(text); } if (m_vecChildren.size()) { TiXmlElement *xmlChilds = new TiXmlElement("children"); xmlControl->LinkEndChild(xmlChilds); const unsigned int dwSize = m_vecChildren.size(); for (unsigned int i=0; i<dwSize; ++i) m_vecChildren[i]->SaveToXML(xmlChilds); } }
void SourceObject::updateTotalTime () { emit totalTimeChanged (GetTotalTime ()); }
void CDummyVideoPlayer::SeekPercentage(float iPercent) { int64_t iTime = (int64_t)(GetTotalTime() * iPercent / 100); SeekTime(iTime); }
bool CDummyVideoPlayer::CanSeek() { return GetTotalTime() > 0; }