internal static UndoPropertyModification[] ProcessPlayableAssetModification(UndoPropertyModification[] modifications, WindowState state) { // can't record without a director since the asset being modified might be a scene instance if (state == null || state.editSequence.director == null) { return(modifications); } var remaining = new List <UndoPropertyModification>(); foreach (UndoPropertyModification mod in modifications) { var clip = FindClipWithAsset(state.editSequence.asset, TimelineRecording.GetTarget(mod) as IPlayableAsset, state.editSequence.director); if (clip == null || !IsRecording(clip, state) || !ProcessPlayableAssetRecording(mod, state, clip)) { remaining.Add(mod); } } if (remaining.Count() != modifications.Length) { state.rebuildGraph = true; state.GetWindow().Repaint(); } return(remaining.ToArray()); }
internal static bool HasAnyPlayableAssetModifications(UndoPropertyModification[] modifications) { return(modifications.Any(x => (TimelineRecording.GetTarget(x) as IPlayableAsset) != null)); }