예제 #1
0
        // 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;
        }
예제 #2
0
 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..";
             }
         }
     }
 }
예제 #3
0
        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();
                }
            }
        }