public void AddLogRecord(StreamTypes streamType, ChannelStreamTypes channelStreamType, string info) { if (!isWritingConnectionLog) { return; } string typeOfData = string.Empty; switch (channelStreamType) { case ChannelStreamTypes.MainVideo: case ChannelStreamTypes.AlternativeVideo: typeOfData = "видео"; break; case ChannelStreamTypes.MainSound: case ChannelStreamTypes.AlternativeSound: typeOfData = "звук"; break; case ChannelStreamTypes.MotionDetection: typeOfData = "детектор движения"; break; } string streamTypeName = string.Empty; if (streamType == StreamTypes.Main) { streamTypeName = "основной поток"; } else { streamTypeName = "альтернативный поток"; } string str = string.Format("[{0}, {1}, {2}] {3}", DateTime.Now.ToLongTimeString(), typeOfData, streamTypeName, info); lock (connectionLog) { connectionLog.Add(str); if (connectionLog.Count > maxLinesInConnectionLog) { connectionLog.RemoveAt(0); } } //уведомляем хоста о том, что содержимое лога изменилось NewLogRecord(this, new EventArgs()); }
public void StartStream(ChannelStreamTypes streamType) { try { if (streamType == ChannelStreamTypes.MainVideo) { mainVideoThread = new Thread(WorkFunc); mainVideoThread.IsBackground = true; mainVideoThread.Start(); } } catch (Exception ex) { SampleLogMgr.LogException(ex, string.Empty); } }
public void StopStream(ChannelStreamTypes streamType) { try { if (streamType == ChannelStreamTypes.MainVideo) { if (mainVideoThread != null) { mainVideoThread.Abort(); mainVideoThread = null; } } } catch (Exception ex) { SampleLogMgr.LogException(ex, string.Empty); } }
public bool IsStreamActive(ChannelStreamTypes streamType) { return(mainVideoThread != null); }
public void AddLogRecord(StreamTypes subType, ChannelStreamTypes subChannelType, string format, params object[] args) { AddLogRecord(subType, subChannelType, string.Format(format, args)); }