// Close current file private void CloseFile() { Camera camera = cameraWindow.Camera; if (camera != null) { // detach camera from camera window cameraWindow.Camera = null; // signal camera to stop camera.SignalToStop(); camera.Stop(); //// wait for the camera //camera.WaitForStop(); camera = null; IsPlaying = false; if (detector != null) { detector.Reset(); } } if (writer != null) { writer.Dispose(); writer = null; } intervalsToSave = 0; if (saveOnMotion) { toolStripStatusLabel1.Text = "Monitor.."; } else { toolStripStatusLabel1.Text = "View.."; } //cameraWindow.BackColor = SystemColors.ButtonFace; Graphics.FromHwnd(cameraWindow.Handle).Clear(SystemColors.ButtonFace); Rectangle rec = new Rectangle(); rec.Size = new Size(cameraWindow.Size.Width - 2, cameraWindow.Size.Height - 2); rec.X = 0; rec.Y = 0; Graphics.FromHwnd(cameraWindow.Handle).DrawRectangle(Pens.Black, rec); DidMailSent = false; }
private void timer1_Tick(object sender, EventArgs e) { // descrease save counter if (intervalsToSave > 0) { if ((--intervalsToSave == 0)) { if (writer != null) { writer.Dispose(); writer = null; statusStrip1.Items[0].Text = "Monitoring.."; } } } }
void RecordInVideoFile() { if ((intervalsToSave != 0) && (saveOnMotion == true)) { // lets save the frame if (writer == null) { // create file name DateTime date = DateTime.Now; string fileName = _VideoPath + String.Format("{0}-{1}-{2} {3}-{4}-{5}.avi", date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second); try { // create AVI writer if (Settings.General.UseVideoCompression) { writer = new AVIWriter(Settings.General.VideoCompressionCodec + ""); } else { writer = new AVIWriter(); } Directory.CreateDirectory(_VideoPath); // open AVI file writer.Open(fileName, cameraWindow.Camera.Width, cameraWindow.Camera.Height); } catch (ApplicationException ex) { if (writer != null) { writer.Dispose(); writer = null; } } } else { string x = Path.GetFileName(writer.FileName + ""); x = x.Substring(0, x.IndexOf(" ")); DateTime FDate = DateTime.Parse(x); if (FDate.Day != DateTime.Now.Day) { writer.Close(); writer.Dispose(); writer = null; } } toolStripStatusLabel1.Text = "Recording.."; // save the frame Camera camera = cameraWindow.Camera; try { camera.Lock(); writer.AddFrame(camera.LastFrame); camera.Unlock(); } catch (ApplicationException er) { MakeMoreFreeSpace(1024 * 1024); //MessageBox.Show(er.Message); } finally { camera.Unlock(); } } }