private void OnAudioLabelEvent( object sender, AudioLabelEventArgs eventArgs) { switch (eventArgs.EventType) { case AudioLabelEventType.Immediate: { bool triggeredDuringLabelEffect = TryTriggerValueTargetMapping( eventArgs.LabelName, (elem => elem.DuringLabelValueTargetName), eventArgs.EventType); if (triggeredDuringLabelEffect) { SnapCurrentValueToTarget(); } TryTriggerValueTargetMapping( eventArgs.LabelName, (elem => elem.AfterLabelValueTargetName), eventArgs.EventType); break; } case AudioLabelEventType.IntervalStarting: TryTriggerValueTargetMapping( eventArgs.LabelName, (elem => elem.DuringLabelValueTargetName), eventArgs.EventType); break; case AudioLabelEventType.IntervalEnding: TryTriggerValueTargetMapping( eventArgs.LabelName, (elem => elem.AfterLabelValueTargetName), eventArgs.EventType); break; default: throw new System.InvalidOperationException(); } }
private void OnAudioLabelEvent( object sender, AudioLabelEventArgs eventArgs) { switch (eventArgs.EventType) { case AudioLabelEventType.Immediate: { // There's no sensible response to an immediate-label. break; } case AudioLabelEventType.IntervalStarting: { if (AudioLabelsWhitelist.Contains(eventArgs.LabelName)) { ++ActiveLabelCount; } UpdateTargetActivation(); break; } case AudioLabelEventType.IntervalEnding: { if (AudioLabelsWhitelist.Contains(eventArgs.LabelName)) { --ActiveLabelCount; } UpdateTargetActivation(); break; } default: throw new System.InvalidOperationException(); } }
private void BroadcastLabelEvents( float targetTime, bool broadcasterIsSeeking) { while ((nextLabelEventIndex < sortedLabelEvents.Count) && (sortedLabelEvents[nextLabelEventIndex].EventTime <= targetTime)) { var sourceLabelEvent = sortedLabelEvents[nextLabelEventIndex]; // Give remappers a chance to modify the label. { scratchRemappedLabelNames.Clear(); if (AudioLabelRemapping != null) { var remappingEventArgs = new AudioLabelRemappingEventArgs() { Broadcaster = this, OriginalLabelName = sourceLabelEvent.LabelName, OutRemappedLabelNames = scratchRemappedLabelNames, }; AudioLabelRemapping(this, remappingEventArgs); } if (OnlyBroadcastRemappedLabels == false) { scratchRemappedLabelNames.Add(sourceLabelEvent.LabelName); } } var labelEventArgs = new AudioLabelEventArgs() { Broadcaster = this, BroadcasterIsSeeking = broadcasterIsSeeking, CorrespondingAudio = audioSource, EventTime = sourceLabelEvent.EventTime, EventType = sourceLabelEvent.EventType, LabelName = sourceLabelEvent.LabelName, }; foreach (string remappedLabelName in scratchRemappedLabelNames) { labelEventArgs.LabelName = remappedLabelName; if (DebugEnabled) { Debug.LogFormat( "Broadcasting audio-label: {0:n2} {1} {2}", labelEventArgs.EventTime, labelEventArgs.EventType, labelEventArgs.LabelName); } if (AudioLabelEventTriggered != null) { AudioLabelEventTriggered(this, labelEventArgs); } } ++nextLabelEventIndex; } }