void Update() { std::vector<int> const& keyframes = vc->GetKeyFrames(); agi::vfr::Framerate const& timecodes = vc->FPS(); if (keyframes.empty() || !timecodes.IsLoaded()) { if (keyframe_samples.empty()) { return; } keyframe_samples.clear(); AnnounceMarkerMoved(); return; } keyframe_samples.clear(); keyframe_samples.reserve(keyframes.size()); for (size_t i = 0; i < keyframes.size(); ++i) { keyframe_samples.push_back(AudioMarkerKeyframe( controller->SamplesFromMilliseconds(timecodes.TimeAtFrame(keyframes[i])))); } AnnounceMarkerMoved(); }
void AudioTimingControllerKaraoke::Revert() { active_line = c->selectionController->GetActiveLine(); cur_syl = 0; commit_id = -1; pending_changes = false; start_marker.Move(active_line->Start); end_marker.Move(active_line->End); markers.clear(); labels.clear(); markers.reserve(kara->size()); labels.reserve(kara->size()); for (auto it = kara->begin(); it != kara->end(); ++it) { if (it != kara->begin()) markers.emplace_back(it->start_time, &separator_pen, AudioMarker::Feet_None); labels.emplace_back(it->text, TimeRange(it->start_time, it->start_time + it->duration)); } AnnounceUpdatedPrimaryRange(); AnnounceUpdatedStyleRanges(); AnnounceMarkerMoved(); }
void AudioMarkerProviderKeyframes::Update() { std::vector<int> const& keyframes = vc->GetKeyFrames(); agi::vfr::Framerate const& timecodes = vc->FPS(); if (keyframes.empty() || !timecodes.IsLoaded() || !enabled_opt->GetBool()) { if (!markers.empty()) { markers.clear(); AnnounceMarkerMoved(); } return; } markers.clear(); markers.reserve(keyframes.size()); for (int frame : keyframes) markers.emplace_back(style.get(), timecodes.TimeAtFrame(frame, agi::vfr::START)); AnnounceMarkerMoved(); }
void AudioTimingControllerKaraoke::AnnounceChanges(int syl) { if (syl < 0) return; if (syl == cur_syl || syl == cur_syl + 1) { AnnounceUpdatedPrimaryRange(); AnnounceUpdatedStyleRanges(); } AnnounceMarkerMoved(); AnnounceLabelChanged(); if (auto_commit) DoCommit(); else { pending_changes = true; commit_id = -1; } }
void SecondsMarkerProvider::EnabledOptChanged() { AnnounceMarkerMoved(); }
void VideoPositionMarkerProvider::Update(int frame_number) { marker->SetPosition(vc->TimeAtFrame(frame_number)); AnnounceMarkerMoved(); }