public void BehaveLikeIList() { var ea = new AddOnlyList <int>(size => new int[size]); for (int iter = 0; iter < 2; iter++) { Assert.Empty(ea); ea.Add(addNumbers[0]); Assert.Single(ea); ea.Add(addNumbers[1]); Assert.Equal(2, ea.Count); Assert.Contains(addNumbers[0], ea); Assert.DoesNotContain(222, ea); for (int i = 2; i < addNumbers.Length; i++) { ea.Add(addNumbers[i]); } Assert.Equal(12221, ea.Sum()); Assert.Equal(6, ea.IndexOf(77)); Assert.Equal(77, ea[6]); ea[6] = 777; Assert.Equal(777, ea[6]); // clear and try again ea.Clear(); } }
public void Dispose() { if (_clips != null) { foreach (IClip clip in _clips) { clip.Dispose(); } _clips = null; } if (_effects != null) { foreach (IEffect effect in _effects) { effect.Dispose(); } _effects = null; } if (_transitions != null) { foreach (ITransition transition in _transitions) { transition.Dispose(); } _transitions = null; } if (_track != null) { Marshal.ReleaseComObject(_track); _track = null; } }
/// <summary> /// Creates a des track, wraps it into an ITrack, adds it to a collection and /// returns the new ITrack wrapper. /// </summary> /// <param name="desTimeline"></param> /// <param name="desComposition"></param> /// <param name="tracks"></param> /// <param name="name"></param> /// <param name="priority"></param> /// <returns></returns> internal static ITrack AddTrackToCollection(ITrackContainer container, IAMTimeline desTimeline, IAMTimelineComp desComposition, AddOnlyList <ITrack> tracks, string name, int priority) { priority = ReorderPriorities(tracks, priority); ITrack track = new Track(container, desTimeline, CreateTrack(desTimeline, desComposition, name, priority), name, priority); tracks.Add(track); return(track); }
/// <summary> /// Creates a des effect, wraps it into an IEffect, adds it to a collection /// and returns the new IEffect wrapper. /// </summary> /// <param name="desTimeline"></param> /// <param name="desEffectable"></param> /// <param name="effects"></param> /// <param name="name"></param> /// <param name="priority"></param> /// <param name="offset"></param> /// <param name="duration"></param> /// <param name="effectDefinition"></param> /// <returns></returns> internal static IEffect AddEffectToCollection(IEffectContainer container, IAMTimeline desTimeline, IAMTimelineEffectable desEffectable, AddOnlyList <IEffect> effects, string name, int priority, double offset, double duration, EffectDefinition effectDefinition) { priority = ReorderPriorities(effects, priority); IAMTimelineObj desEffect = InsertEffect(desTimeline, desEffectable, name, priority, offset, duration, effectDefinition); IEffect effect = new Effect(container, desEffect, name, priority, offset, duration, effectDefinition); effects.Add(effect); return(effect); }
public void Dispose() { if (_timelineSrc != null) { Marshal.ReleaseComObject(_timelineSrc); _timelineSrc = null; } if (_effects != null) { foreach (IEffect effect in _effects) { effect.Dispose(); } _effects = null; } }
/// <summary> /// Creates a des composition, wraps it into an IComposition, adds it to a collecton /// and returns the new IComposition wrapper. /// </summary> /// <param name="timeline"></param> /// <param name="desComposition"></param> /// <param name="compositions"></param> /// <param name="name"></param> /// <param name="priority"></param> /// <returns></returns> internal static IComposition AddCompositionToCollection(ICompositionContainer container, IAMTimeline timeline, IAMTimelineComp desComposition, AddOnlyList <IComposition> compositions, string name, int priority) { priority = ReorderPriorities(compositions, priority); IComposition composition = new Composition(container, timeline, CreateComposition(timeline, desComposition, name, priority), name, priority); compositions.Add(composition); return(composition); }
public void CanGrow() { var sb = new StringBuilder(); for (int i = 0; i < 32; i++) { sb.AppendFormat("{0}/{1}\r\n", i, AddOnlyList <int> .GetBucketIndex(i)); } var expected = "0/0,1/0,2/0,3/1,4/1,5/1,6/1," + "7/2,8/2,9/2,10/2,11/2,12/2,13/2,14/2," + "15/3,16/3,17/3,18/3,19/3,20/3,21/3,22/3,23/3,24/3,25/3,26/3,27/3,28/3,29/3,30/3," + "31/4,"; expected = expected.Replace(",", "\r\n"); Assert.Equal(expected, sb.ToString()); }
/// <summary> /// Creates a des transition, wraps it into an ITransition, adds it to a collection /// and returns a new ITransition wrapper. /// </summary> /// <param name="desTimeline"></param> /// <param name="transable"></param> /// <param name="transitions"></param> /// <param name="name"></param> /// <param name="offset"></param> /// <param name="duration"></param> /// <param name="transitionDefinition"></param> /// <param name="swapInputs"></param> /// <returns></returns> internal static ITransition AddTransitionToCollection(ITransitionContainer container, IAMTimeline desTimeline, IAMTimelineTransable transable, AddOnlyList <ITransition> transitions, string name, double offset, double duration, TransitionDefinition transitionDefinition, bool swapInputs) { CheckForTransitionOveralp(container, offset, duration); IAMTimelineObj desTransition = InsertTransition(desTimeline, transable, name, offset, duration, transitionDefinition, swapInputs); ITransition transition = new Transition(container, desTransition, name, offset, duration, swapInputs, transitionDefinition); transitions.Add(transition); return(transition); }
public void Dispose() { if (_timeline != null) { Marshal.ReleaseComObject(_timeline); _timeline = null; } if (_groups != null) { foreach (IGroup group in _groups) { group.Dispose(); } _groups = null; } }
private static int ReorderPriorities <T>(AddOnlyList <T> list, int newPriority) where T : IPriority { if (newPriority < 0) { return(list.Count); } else { foreach (IPriority priority in list) { if (priority.Priority >= newPriority) { ((IPrioritySetter)priority).SetPriority(priority.Priority + 1); } } return(newPriority); } }
public virtual void Dispose() { if (_compositions != null) { foreach (IComposition composition in _compositions) { composition.Dispose(); } _compositions = null; } if (_tracks != null) { foreach (ITrack track in _tracks) { track.Dispose(); } _tracks = null; } if (_transitions != null) { foreach (ITransition transition in _transitions) { transition.Dispose(); } _transitions = null; } if (_effects != null) { foreach (IEffect effect in _effects) { effect.Dispose(); } _effects = null; } }