示例#1
0
 private void AddMarks(IEffectNode effectNode, ISequence sequence)
 {
     if (effectNode.Effect.SupportsMarks)
     {
         effectNode.Effect.MarkCollections = sequence.LabeledMarkCollections;
     }
 }
示例#2
0
 private void RenderEffect(IEffectNode node)
 {
     if (node.Effect.IsDirty)
     {
         node.Effect.PreRender();
     }
 }
示例#3
0
        private bool _DataListener(IEffectNode effectNode)
        {
            // Data has been inserted into the sequence.
            // Give every behavior a chance at the data.
            foreach (IRuntimeBehaviorModuleInstance behavior in _runtimeBehaviors)
            {
                if (behavior.Enabled)
                {
                    //*** Can't remember why this is being set here in this fashion.
                    //    Shouldn't it be done by whatever creates the node?
                    //effectNode.StartTime = _TimingSource.Position;
                    behavior.Handle(effectNode);
                }
            }

            // Data written to a sequence will go through the behaviors and then on to the
            // effect enumerator of the executor by way of the CommandNodeIntervalSync
            // to be executed against the sequence's time.  This has the side effect of
            // allowing timed-live behavior without an explicit runtime behavior that has
            // to manage timing on its own.
            _sequence.Data.AddLive(effectNode);

            // We don't want any handlers beyond the executor to get live data.
            return(true);
        }
示例#4
0
 private void AddMedia(IEffectNode effectNode, ISequence sequence)
 {
     if (effectNode.Effect.SupportsMedia)
     {
         effectNode.Effect.Media = sequence.SequenceData.Media;
     }
 }
示例#5
0
 private bool _DataListener(IEffectNode effectNode)
 {
     SequenceData.EffectData.AddData(effectNode);
     SequenceData.LocalDataSet.AssignModuleInstanceData(effectNode.Effect);
     // Do not cancel the event.
     return(false);
 }
 public EffectNodeSurrogate(IEffectNode effectNode)
 {
     StartTime   = effectNode.StartTime;
     TypeId      = effectNode.Effect.Descriptor.TypeId;
     InstanceId  = effectNode.Effect.InstanceId;
     TimeSpan    = effectNode.Effect.TimeSpan;
     TargetNodes = effectNode.Effect.TargetNodes.Select(x => new ChannelNodeReferenceSurrogate(x)).ToArray();
 }
示例#7
0
 public EffectNodeSurrogate(IEffectNode effectNode)
 {
     StartTime = effectNode.StartTime;
     TypeId = effectNode.Effect.Descriptor.TypeId;
     InstanceId = effectNode.Effect.InstanceId;
     TimeSpan = effectNode.Effect.TimeSpan;
     TargetNodes = effectNode.Effect.TargetNodes.Select(x => new ChannelNodeReferenceSurrogate(x)).ToArray();
 }
示例#8
0
 protected override bool _DataListener(IEffectNode effectNode)
 {
     //*** compensation delta, user-configurable
     IEffectNode contextRelativeEffectNode = new EffectNode(effectNode.Effect,
                                                            effectNode.StartTime + TimingSource.Position);
     Sequence.SequenceData.EffectData.AddData(contextRelativeEffectNode);
     // We don't want any handlers beyond the executor to get live data.
     return true;
 }
示例#9
0
 public void InsertData(IEffectNode effectNode)
 {
     bool cancel = false;
     using (IEnumerator<DataListener> enumerator = _listeners.GetEnumerator()) {
         while (!cancel && enumerator.MoveNext()) {
             cancel = enumerator.Current(effectNode);
         }
     }
 }
示例#10
0
        protected override bool _DataListener(IEffectNode effectNode)
        {
            //*** compensation delta, user-configurable
            IEffectNode contextRelativeEffectNode = new EffectNode(effectNode.Effect, effectNode.StartTime + TimingSource.Position);

            Sequence.SequenceData.EffectData.AddData(contextRelativeEffectNode);
            // We don't want any handlers beyond the executor to get live data.
            return(true);
        }
示例#11
0
        private void RenderEffect(IEffectNode node)
        {
            if (node.Effect.SupportsMedia)
            {
                node.Effect.Media = _sequence.SequenceData.Media;
            }

            node.Effect.PreRender();
        }
示例#12
0
        public void AssignEffectNodeToLayer(IEffectNode node, Guid LayerId)
        {
            ILayer layer;

            if (_layerMap.TryGetValue(LayerId, out layer))
            {
                AssignEffectNodeToLayer(node, layer);
            }
        }
示例#13
0
 public void AssignEffectNodeToLayer(IEffectNode node, ILayer layer)
 {
     //First remove it from any already existing layers
     RemoveEffectNodeFromLayers(node);
     if (!IsDefaultLayer(layer) && _layerMap.ContainsKey(layer.Id))
     {
         //if it is not the default then assign it to the new layer
         _effectLayerMap[node.Effect.InstanceId] = layer.Id;
     }
 }
示例#14
0
        public void InsertData(IEffectNode effectNode)
        {
            bool cancel = false;

            using (IEnumerator <DataListener> enumerator = _listeners.GetEnumerator()) {
                while (!cancel && enumerator.MoveNext())
                {
                    cancel = enumerator.Current(effectNode);
                }
            }
        }
示例#15
0
        public ILayer GetLayer(IEffectNode node)
        {
            Guid layerId;

            if (_effectLayerMap.TryGetValue(node.Effect.InstanceId, out layerId))
            {
                ILayer layer;
                if (_layerMap.TryGetValue(layerId, out layer))
                {
                    return(layer);
                }
            }
            return(Layers[Layers.Count - 1]);
        }
示例#16
0
 public bool RemoveData(IEffectNode effectNode)
 {
     return SequenceData.EffectData.RemoveData(effectNode);
 }
示例#17
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return(_sequenceExecutor.SequenceLayers.GetLayer(node));
 }
示例#18
0
 protected virtual bool _DataListener(IEffectNode effectNode)
 {
     // We don't want any handlers beyond the executor to get live data.
     return true;
 }
示例#19
0
 public void Add(IEffectNode item)
 {
     _queue.Enqueue(item);
 }
示例#20
0
 //Let each context decide how to apply the layers.
 protected abstract ILayer GetLayerForNode(IEffectNode node);
示例#21
0
文件: Helper.cs 项目: stewmc/vixen
 public static TimeSpan GetEffectRelativeTime(TimeSpan currentTime, IEffectNode effectNode)
 {
     return currentTime - effectNode.StartTime;
 }
示例#22
0
 private void RenderEffect(IEffectNode node)
 {
     if (node.Effect.IsDirty)
     {
         node.Effect.PreRender();
     }
 }
示例#23
0
 public void AssignEffectNodeToDefaultLayer(IEffectNode node)
 {
     //We jusr remove it because if it is not found it will be in the default.
     RemoveEffectNodeFromLayers(node);
 }
示例#24
0
 public void RemoveEffectNodeFromLayers(IEffectNode node)
 {
     _effectLayerMap.Remove(node.Effect.InstanceId);
 }
示例#25
0
        public ILayer GetLayer(IEffectNode node)
        {
            Guid layerId;
            if(_effectLayerMap.TryGetValue(node.Effect.InstanceId, out layerId))
            {
                ILayer layer;
                if (_layerMap.TryGetValue(layerId, out layer))
                {
                    return layer;
                }

            }
            return Layers[Layers.Count-1];
        }
示例#26
0
 public void AssignEffectNodeToLayer(IEffectNode node, ILayer layer)
 {
     //First remove it from any already existing layers
     RemoveEffectNodeFromLayers(node);
     if (!IsDefaultLayer(layer) && _layerMap.ContainsKey(layer.Id))
     {
         //if it is not the default then assign it to the new layer
         _effectLayerMap[node.Effect.InstanceId] = layer.Id;
     }
 }
示例#27
0
 //Let each context decide how to apply the layers.
 protected abstract ILayer GetLayerForNode(IEffectNode node);
示例#28
0
 private void _AddToQueue(IEffectNode effectNode)
 {
     _effectNodeQueue.Add(effectNode);
     _LastBufferWritePoint = effectNode.StartTime;
 }
示例#29
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return Sequence.SequenceData.SequenceLayers.GetLayer(node);
 }
示例#30
0
 public void AssignEffectNodeToLayer(IEffectNode node, Guid LayerId)
 {
     ILayer layer;
     if(_layerMap.TryGetValue(LayerId, out layer))
     {
         AssignEffectNodeToLayer(node, layer);
     }
 }
示例#31
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return(Sequence.GetSequenceLayerManager().GetLayer(node));
 }
示例#32
0
 abstract public void Handle(IEffectNode effectNode);
示例#33
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return(Sequence.SequenceData.SequenceLayers.GetLayer(node));
 }
示例#34
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return(SequenceLayers.GetDefaultLayer());
 }
示例#35
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return Sequence.GetSequenceLayerManager().GetLayer(node);
 }
示例#36
0
 public void RemoveEffectNodeFromLayers(IEffectNode node)
 {
     _effectLayerMap.Remove(node.Effect.InstanceId);
 }
示例#37
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return _sequenceExecutor.SequenceLayers.GetLayer(node);
 }
示例#38
0
        private bool _DataListener(IEffectNode effectNode)
        {
            // Data has been inserted into the sequence.
            // Give every behavior a chance at the data.
            foreach(IRuntimeBehaviorModuleInstance behavior in _runtimeBehaviors) {
                if(behavior.Enabled) {
                    //*** Can't remember why this is being set here in this fashion.
                    //    Shouldn't it be done by whatever creates the node?
                    //effectNode.StartTime = _TimingSource.Position;
                    behavior.Handle(effectNode);
                }
            }

            // Data written to a sequence will go through the behaviors and then on to the
            // effect enumerator of the executor by way of the CommandNodeIntervalSync
            // to be executed against the sequence's time.  This has the side effect of
            // allowing timed-live behavior without an explicit runtime behavior that has
            // to manage timing on its own.
            _sequence.Data.AddLive(effectNode);

            // We don't want any handlers beyond the executor to get live data.
            return true;
        }
示例#39
0
 public int CompareTo(IEffectNode other)
 {
     return(DataNode.Compare(this, other));
 }
示例#40
0
 protected virtual bool _DataListener(IEffectNode effectNode)
 {
     // We don't want any handlers beyond the executor to get live data.
     return(true);
 }
示例#41
0
 public void InsertData(IEffectNode effectNode)
 {
     InsertDataListener.InsertData(effectNode);
 }
示例#42
0
 protected override ILayer GetLayerForNode(IEffectNode node)
 {
     return SequenceLayers.GetDefaultLayer();
 }
示例#43
0
 private bool _DataListener(IEffectNode effectNode)
 {
     SequenceData.EffectData.AddData(effectNode);
     SequenceData.LocalDataSet.AssignModuleInstanceData(effectNode.Effect);
     // Do not cancel the event.
     return false;
 }
        //private Guid _GetSequenceChannelId() {
        //    if(_sequenceChannelId == Guid.Empty) {
        //        _sequenceChannelId = _sequence.SequenceData.DataStreams.CreateStream("Recording");
        //    }
        //    return _sequenceChannelId;
        //}

        public override void Handle(IEffectNode effectNode)
        {
            _buffer.Add(effectNode);
        }
示例#45
0
        private void AddMedia(IEffectNode effectNode, ISequence sequence)
        {
            if (effectNode.Effect.SupportsMedia)
            {
                effectNode.Effect.Media = sequence.SequenceData.Media;

            }
        }
示例#46
0
 public void InsertData(IEffectNode effectNode)
 {
     InsertDataListener.InsertData(effectNode);
 }
示例#47
0
 public static TimeSpan GetEffectRelativeTime(TimeSpan currentTime, IEffectNode effectNode)
 {
     return(currentTime - effectNode.StartTime);
 }
示例#48
0
文件: Sequence.cs 项目: stewmc/vixen
 public bool RemoveData(IEffectNode effectNode)
 {
     return Data.RemoveData(effectNode);
 }
示例#49
0
		//private Guid _GetSequenceChannelId() {
		//    if(_sequenceChannelId == Guid.Empty) {
		//        _sequenceChannelId = _sequence.SequenceData.DataStreams.CreateStream("Recording");
		//    }
		//    return _sequenceChannelId;
		//}

		public override void Handle(IEffectNode effectNode)
		{
			_buffer.Add(effectNode);
		}
示例#50
0
 private void _AddToQueue(IEffectNode effectNode)
 {
     _effectNodeQueue.Add(effectNode);
     _LastBufferWritePoint = effectNode.StartTime;
 }
示例#51
0
        private void RenderEffect(IEffectNode node)
        {
            if (node.Effect.SupportsMedia)
            {
                node.Effect.Media = _sequence.SequenceData.Media;
            }

            node.Effect.PreRender();
        }
示例#52
0
 public void Add(IEffectNode item)
 {
     _queue.Enqueue(item);
 }
示例#53
0
 public bool RemoveData(IEffectNode effectNode)
 {
     return(Data.RemoveData(effectNode));
 }
示例#54
0
 private void AddMediaAndMarks(IEffectNode effectNode, ISequence sequence)
 {
     AddMedia(effectNode, sequence);
     AddMarks(effectNode, sequence);
 }
示例#55
0
 public bool RemoveData(IEffectNode effectNode)
 {
     return(SequenceData.EffectData.RemoveData(effectNode));
 }
示例#56
0
 public void AssignEffectNodeToDefaultLayer(IEffectNode node)
 {
     //We jusr remove it because if it is not found it will be in the default.
     RemoveEffectNodeFromLayers(node);
 }