public void AddToQueue(string ID, byte[] item)
        {
            if (Streams.ContainsKey(ID))
            {
                Stream stream;
                bool   couldGetValue = Streams.TryGetValue(ID, out stream);

                if (couldGetValue)
                {
                    Stream updatedStream = stream;
                    updatedStream.LatestReceivedTime = DateTime.Now;
                    updatedStream.VideoQueue.Enqueue(item);
                    Streams.TryUpdate(ID, updatedStream, stream);
                }

                return;
            }
            else
            {
                Stream stream = new Stream(ID);
                stream.LatestReceivedTime = DateTime.Now;
                stream.VideoQueue.Enqueue(item);
                Streams.TryAdd(ID, stream);
            }
        }
        /// <summary>
        /// Remove the Stream associated with this ExternalDevice
        /// </summary>
        /// <param name="name"></param>
        public void UnbindStream(string name)
        {
            if (Streams.ContainsKey(name))
            {
                IDAQStream stream = Streams[name];
                Streams.Remove(name);

                stream.RemoveDevice(this);
            }
        }
Example #3
0
 private StreamView GetStream(int streamId)
 {
     if (Streams.ContainsKey(streamId))
     {
         return(Streams[streamId]);
     }
     else
     {
         return(new StreamView(streamId));
     }
 }
Example #4
0
        public override void CloseStream(string name)
        {
            if (Streams.ContainsKey(name))
            {
                Stream          stream = Streams[name];
                TemporaryStream temp   = stream as TemporaryStream;
                if (temp != null && MyStreams.ContainsValue(stream))
                {
                    temp.ClosePersist();
                }
                else if (StreamOwnership)
                {
                    stream.Close();
                }
                else
                {
                    return;
                }

                Streams.Remove(name);
            }
        }