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); } }
private StreamView GetStream(int streamId) { if (Streams.ContainsKey(streamId)) { return(Streams[streamId]); } else { return(new StreamView(streamId)); } }
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); } }