Example #1
0
        private void FloorPlanControlClick(object sender, MouseEventArgs e)
        {
            var    local      = new Point(e.X, e.Y);
            double xRat       = Convert.ToDouble(Width) / ImageWidth;
            double yRat       = Convert.ToDouble(Height) / ImageHeight;
            double hittargetw = 22 * xRat;
            double hittargeth = 22 * yRat;

            double wrat = Convert.ToDouble(ImageWidth) / 533d;
            double hrat = Convert.ToDouble(ImageHeight) / 400d;

            foreach (objectsFloorplanObjectsEntry fpoe in Fpobject.objects.@object)
            {
                if (((fpoe.x * wrat) - hittargetw) * xRat <= local.X && ((fpoe.x * wrat) + hittargetw) * xRat > local.X &&
                    ((fpoe.y * hrat) - hittargeth) * yRat <= local.Y && ((fpoe.y * hrat) + hittargeth) * yRat > local.Y)
                {
                    switch (fpoe.type)
                    {
                    case "camera":
                        CameraWindow cw = Owner.GetCameraWindow(fpoe.id);
                        cw.Location = new Point(Location.X + e.X, Location.Y + e.Y);
                        cw.BringToFront();
                        break;

                    case "microphone":
                        VolumeLevel vl = Owner.GetMicrophone(fpoe.id);
                        vl.Location = new Point(Location.X + e.X, Location.Y + e.Y);
                        vl.BringToFront();
                        break;
                    }
                    break;
                }
            }
        }
Example #2
0
        private VolumeLevel NewVolumeLevel(int audioSourceIndex)
        {
            var om = new objectsMicrophone
            {
                alerts = new objectsMicrophoneAlerts(),
                detector = new objectsMicrophoneDetector(),
                notifications = new objectsMicrophoneNotifications(),
                recorder = new objectsMicrophoneRecorder(),
                schedule = new objectsMicrophoneSchedule
                {
                    entries
                        =
                        new objectsMicrophoneScheduleEntry
                        [
                        0
                        ]
                },
                settings = new objectsMicrophoneSettings(),
                id = -1,
                directory = RandomString(5),
                x = Convert.ToInt32(Random.NextDouble() * 100),
                y = Convert.ToInt32(Random.NextDouble() * 100),
                width = 160,
                height = 40,
                description = "",
                newrecordingcount = 0
            };

            string friendlyName = LocRm.GetString("Microphone") + " " + NextMicrophoneId;

            string t = friendlyName;
            int i = 1;
            while (Microphones.FirstOrDefault(p => p.name == t) != null)
            {
                t = friendlyName + " (" + i + ")";
                i++;
            }

            om.name = t;

            om.settings.typeindex = audioSourceIndex;
            om.settings.deletewav = true;
            om.settings.ffmpeg = Conf.FFMPEG_Microphone;
            om.settings.buffer = 4;
            om.settings.samples = 8000;
            om.settings.bits = 16;
            om.settings.gain = 100;
            om.settings.channels = 1;
            om.settings.decompress = true;
            om.settings.smsnumber = MobileNumber;
            om.settings.emailaddress = EmailAddress;
            om.settings.active = false;
            om.settings.notifyondisconnect = false;
            om.settings.directoryIndex = Conf.MediaDirectories.First().ID;
            om.settings.vlcargs = VlcHelper.VlcInstalled ? "--rtsp-caching=100" : "";

            om.settings.storagemanagement = new objectsMicrophoneSettingsStoragemanagement
            {
                enabled = false,
                maxage = 72,
                maxsize = 1024

            };

            om.detector.sensitivity = 60;
            om.detector.minsensitivity = 60;
            om.detector.maxsensitivity = 100;

            om.detector.nosoundinterval = 30;
            om.detector.soundinterval = 0;
            om.detector.recordondetect = Conf.DefaultRecordOnDetect;
            om.detector.recordonalert = Conf.DefaultRecordOnAlert;

            om.alerts.mode = "sound";
            om.alerts.minimuminterval = 180;
            om.alerts.executefile = "";
            om.alerts.active = true;
            om.alerts.alertoptions = "false,false";
            om.alerts.trigger = "";

            om.recorder.inactiverecord = 5;
            om.recorder.maxrecordtime = 900;

            om.notifications.sendemail = false;
            om.notifications.sendsms = false;

            om.schedule.active = false;
            om.alertevents = new objectsMicrophoneAlertevents { entries = new objectsMicrophoneAlerteventsEntry[] { } };

            var volumeControl = new VolumeLevel(om,this) { BackColor = Conf.BackColor.ToColor() };
            _pnlCameras.Controls.Add(volumeControl);

            volumeControl.Location = new Point(om.x, om.y);
            volumeControl.Size = new Size(160, 40);
            volumeControl.BringToFront();
            SetMicrophoneEvents(volumeControl);

            if (Conf.AutoLayout)
                LayoutObjects(0, 0);

            volumeControl.Tag = GetControlIndex();

            return volumeControl;
        }
Example #3
0
        public void DisplayMicrophone(objectsMicrophone mic)
        {
            var micControl = new VolumeLevel(mic,this);
            SetMicrophoneEvents(micControl);
            micControl.BackColor = Conf.BackColor.ToColor();
            _pnlCameras.Controls.Add(micControl);
            micControl.Location = new Point(mic.x, mic.y);
            micControl.Size = new Size(mic.width, mic.height);
            micControl.BringToFront();
            micControl.Tag = GetControlIndex();

            try
            {
                string path = Helper.GetMediaDirectory(1, mic.id) + "audio\\" + mic.directory + "\\";
                if (!Directory.Exists(path))
                    Directory.CreateDirectory(path);
            }
            catch (Exception ex)
            {
                LogExceptionToFile(ex);
            }
            micControl.GetFiles();
        }
Example #4
0
        private void FloorPlanControlClick(object sender, MouseEventArgs e)
        {
            var    local      = new Point(e.X, e.Y);
            double xRat       = Convert.ToDouble(Width) / ImageWidth;
            double yRat       = Convert.ToDouble(Height) / ImageHeight;
            double hittargetw = 22 * xRat;
            double hittargeth = 22 * yRat;

            double wrat = Convert.ToDouble(ImageWidth) / 533d;
            double hrat = Convert.ToDouble(ImageHeight) / 400d;


            bool changeHighlight = true;

            if (Highlighted)
            {
                foreach (objectsFloorplanObjectsEntry fpoe in Fpobject.objects.@object)
                {
                    if (((fpoe.x * wrat) - hittargetw) * xRat <= local.X && ((fpoe.x * wrat) + hittargetw) * xRat > local.X &&
                        ((fpoe.y * hrat) - hittargeth) * yRat <= local.Y && ((fpoe.y * hrat) + hittargeth) * yRat > local.Y)
                    {
                        switch (fpoe.type)
                        {
                        case "camera":
                            CameraWindow cw = MainClass.GetCameraWindow(fpoe.id);
                            if (cw != null)
                            {
                                //cw.Location = new Point(Location.X + e.X, Location.Y + e.Y);
                                cw.BringToFront();
                                cw.Focus();
                            }

                            changeHighlight = false;
                            break;

                        case "microphone":
                            VolumeLevel vl = MainClass.GetVolumeLevel(fpoe.id);
                            if (vl != null)
                            {
                                //vl.Location = new Point(Location.X + e.X, Location.Y + e.Y);
                                vl.BringToFront();
                                vl.Focus();
                            }

                            changeHighlight = false;
                            break;
                        }
                        break;
                    }
                }
            }

            if (changeHighlight)
            {
                bool hl = Highlighted;
                MainClass._pnlCameras.ClearHighlights();

                Highlighted = !hl;
            }
            if (Highlighted)
            {
                foreach (objectsFloorplanObjectsEntry fpoe in Fpobject.objects.@object)
                {
                    switch (fpoe.type)
                    {
                    case "camera":
                        CameraWindow cw = MainClass.GetCameraWindow(fpoe.id);
                        if (cw != null)
                        {
                            cw.Highlighted = true;
                        }
                        break;

                    case "microphone":
                        VolumeLevel vl = MainClass.GetVolumeLevel(fpoe.id);
                        if (vl != null)
                        {
                            vl.Highlighted = true;
                        }

                        break;
                    }
                }
            }

            MainClass.Invalidate(true);
        }
Example #5
0
        private VolumeLevel NewVolumeLevel(int audioSourceIndex)
        {
            var om = new objectsMicrophone
            {
                alerts = new objectsMicrophoneAlerts(),
                detector = new objectsMicrophoneDetector(),
                notifications = new objectsMicrophoneNotifications(),
                recorder = new objectsMicrophoneRecorder(),
                schedule = new objectsMicrophoneSchedule
                {
                    entries
                        =
                        new objectsMicrophoneScheduleEntry
                        [
                        0
                        ]
                },
                settings = new objectsMicrophoneSettings(),
                id = -1,
                directory = MainForm.RandomString(5),
                x = Convert.ToInt32(MainForm.Random.NextDouble() * 100),
                y = Convert.ToInt32(MainForm.Random.NextDouble() * 100),
                width = 160,
                height = 40,
                description = "",
                newrecordingcount = 0,
                name = LocRm.GetString("Microphone") + " " + MainForm.NextMicrophoneId
            };

            om.settings.typeindex = audioSourceIndex;
            om.settings.deletewav = true;
            om.settings.ffmpeg = MainForm.Conf.FFMPEG_Microphone;
            om.settings.buffer = 4;
            om.settings.samples = 8000;
            om.settings.bits = 16;
            om.settings.gain = 100;
            om.settings.channels = 1;
            om.settings.decompress = true;
            om.settings.smsnumber = MainForm.MobileNumber;
            om.settings.emailaddress = MainForm.EmailAddress;
            om.settings.active = false;
            om.settings.notifyondisconnect = false;
            if (VlcHelper.VlcInstalled)
                om.settings.vlcargs = "-I" + NL + "dummy" + NL + "--ignore-config";
            else
                om.settings.vlcargs = "";

            om.settings.storagemanagement = new objectsMicrophoneSettingsStoragemanagement
            {
                enabled = false,
                maxage = 72,
                maxsize = 1024

            };

            om.detector.sensitivity = 60;
            om.detector.nosoundinterval = 30;
            om.detector.soundinterval = 0;
            om.detector.recordondetect = true;

            om.alerts.mode = "sound";
            om.alerts.minimuminterval = 180;
            om.alerts.executefile = "";
            om.alerts.active = true;
            om.alerts.alertoptions = "false,false";
            om.alerts.trigger = "";

            om.recorder.inactiverecord = 5;
            om.recorder.maxrecordtime = 900;

            om.notifications.sendemail = false;
            om.notifications.sendsms = false;

            om.schedule.active = false;
            om.alertevents = new objectsMicrophoneAlertevents { entries = new objectsMicrophoneAlerteventsEntry[] { } };

            var volumeControl = new VolumeLevel(om) { BackColor = MainForm.Conf.BackColor.ToColor() };
            _pnlCameras.Controls.Add(volumeControl);

            volumeControl.Location = new Point(om.x, om.y);
            volumeControl.Size = new Size(160, 40);
            volumeControl.BringToFront();
            SetMicrophoneEvents(volumeControl);

            if (MainForm.Conf.AutoLayout)
                LayoutObjects(0, 0);

            volumeControl.Tag = GetControlIndex();

            return volumeControl;
        }
Example #6
0
        internal void DisplayMicrophone(objectsMicrophone mic)
        {
            var micControl = new VolumeLevel(mic);
            SetMicrophoneEvents(micControl);
            micControl.BackColor = Conf.BackColor.ToColor();
            _pnlCameras.Controls.Add(micControl);
            micControl.Location = new Point(mic.x, mic.y);
            micControl.Size = new Size(mic.width, mic.height);
            micControl.BringToFront();
            micControl.Tag = GetControlIndex();

            if (Conf.AutoSchedule && mic.schedule.active && mic.schedule.entries.Count() > 0)
            {
                mic.settings.active = false;
                micControl.ApplySchedule();
            }
            else
            {
                if (mic.settings.active)
                    micControl.Enable();
            }

            string path = Conf.MediaDirectory + "audio\\" + mic.directory + "\\";
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);
        }