Пример #1
0
	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();
	}
Пример #2
0
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();
}
Пример #3
0
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();
}
Пример #4
0
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;
	}
}
Пример #5
0
void SecondsMarkerProvider::EnabledOptChanged() {
	AnnounceMarkerMoved();
}
Пример #6
0
void VideoPositionMarkerProvider::Update(int frame_number) {
	marker->SetPosition(vc->TimeAtFrame(frame_number));
	AnnounceMarkerMoved();
}