iSpyApplication.MainForm.NewCameraWindow C# (CSharp) Method

NewCameraWindow() private method

private NewCameraWindow ( int videoSourceIndex ) : CameraWindow
videoSourceIndex int
return CameraWindow
        private CameraWindow NewCameraWindow(int videoSourceIndex)
        {
            var oc = new objectsCamera
            {
                alerts = new objectsCameraAlerts(),
                detector = new objectsCameraDetector
                {
                    motionzones =
                        new objectsCameraDetectorZone
                        [0]
                },
                notifications = new objectsCameraNotifications(),
                recorder = new objectsCameraRecorder(),
                schedule = new objectsCameraSchedule { entries = new objectsCameraScheduleEntry[0] },
                settings = new objectsCameraSettings { pip = new objectsCameraSettingsPip { enabled = false, config = ""}},
                ftp = new objectsCameraFtp(),
                savelocal = new objectsCameraSavelocal(),
                id = -1,
                directory = RandomString(5),
                ptz = -1,
                x = Convert.ToInt32(Random.NextDouble() * 100),
                y = Convert.ToInt32(Random.NextDouble() * 100),
                ptzschedule = new objectsCameraPtzschedule
                {
                    active = false,
                    entries = new objectsCameraPtzscheduleEntry[] { }
                }

            };

            string friendlyName = LocRm.GetString("Camera") + " " + NextCameraId;

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

            oc.name = t;

            oc.flipx = oc.flipy = false;
            oc.width = 320;
            oc.height = 240;
            oc.description = "";
            oc.resolution = "320x240";
            oc.newrecordingcount = 0;

            oc.alerts.active = true;
            oc.alerts.mode = "movement";
            oc.alerts.alertoptions = "false,false";
            oc.alerts.objectcountalert = 1;
            oc.alerts.minimuminterval = 180;
            oc.alerts.processmode = "continuous";
            oc.alerts.pluginconfig = "";
            oc.alerts.trigger = "";

            oc.notifications.sendemail = false;
            oc.notifications.sendsms = false;
            oc.notifications.sendmms = false;
            oc.notifications.emailgrabinterval = 0;

            oc.ftp.enabled = false;
            oc.ftp.port = 21;
            oc.ftp.mode = 0;
            oc.ftp.server = "ftp://";
            oc.ftp.interval = 10;
            oc.ftp.intervalnew = 10;
            oc.ftp.filename = "mylivecamerafeed.jpg";
            oc.ftp.ready = true;
            oc.ftp.text = "www.ispyconnect.com";
            oc.ftp.quality = 75;
            oc.ftp.counter = 0;
            oc.ftp.countermax = 20;
            oc.ftp.minimumdelay = 0;

            oc.savelocal.enabled = false;
            oc.savelocal.mode = 0;
            oc.savelocal.intervalnew = 10;
            oc.savelocal.filename = "{0:yyyy-MM-dd_HH-mm-ss_fff}.jpg";
            oc.savelocal.text = "www.ispyconnect.com";
            oc.savelocal.quality = 75;
            oc.savelocal.counter = 0;
            oc.savelocal.countermax = 20;
            oc.savelocal.minimumdelay = 0;

            oc.schedule.active = false;

            oc.settings.active = false;
            oc.settings.deleteavi = true;
            oc.settings.ffmpeg = Conf.FFMPEG_Camera;
            oc.settings.emailaddress = EmailAddress;
            oc.settings.smsnumber = MobileNumber;
            oc.settings.suppressnoise = true;
            oc.settings.login = "";
            oc.settings.password = "";
            oc.settings.useragent = "Mozilla/5.0";
            oc.settings.frameinterval = 10;
            oc.settings.sourceindex = videoSourceIndex;
            oc.settings.micpair = -1;
            oc.settings.frameinterval = 200;
            oc.settings.maxframerate = 10;
            oc.settings.maxframeraterecord = 10;
            oc.settings.ptzautotrack = false;
            oc.settings.framerate = 10;
            oc.settings.timestamplocation = 1;
            oc.settings.ptztimetohome = 100;
            oc.settings.ptzchannel = "0";
            oc.settings.timestampformatter = "FPS: {FPS} {0:G} ";
            oc.settings.timestampfontsize = 10;
            oc.settings.notifyondisconnect = false;
            oc.settings.ptzautohomedelay = 30;
            oc.settings.accessgroups = "";
            oc.settings.nobuffer = true;
            oc.settings.reconnectinterval = 0;
            oc.settings.timestampforecolor = "255,255,255";
            oc.settings.timestampbackcolor = "70,70,70";
            oc.settings.timestampfont = FontXmlConverter.ConvertToString(Drawfont);
            oc.settings.timestampshowback = true;

            oc.settings.youtube = new objectsCameraSettingsYoutube
            {
                category = Conf.YouTubeDefaultCategory,
                tags = "iSpy, Motion Detection, Surveillance",
                @public = true
            };
            oc.settings.cloudprovider = new objectsCameraSettingsCloudprovider();

            oc.settings.storagemanagement = new objectsCameraSettingsStoragemanagement
            {
                enabled = false,
                maxage = 72,
                maxsize = 1024

            };

            oc.alertevents = new objectsCameraAlertevents { entries = new objectsCameraAlerteventsEntry[] { } };

            oc.settings.desktopresizeheight = 480;
            oc.settings.desktopresizewidth = 640;
            oc.settings.resize = false;
            oc.settings.directoryIndex = Conf.MediaDirectories.First().ID;

            oc.settings.vlcargs = VlcHelper.VlcInstalled ? "--rtsp-caching=100" : "";

            oc.detector.recordondetect = Conf.DefaultRecordOnDetect;
            oc.detector.recordonalert = Conf.DefaultRecordOnAlert;
            oc.detector.keepobjectedges = false;
            oc.detector.processeveryframe = 1;
            oc.detector.nomovementintervalnew = oc.detector.nomovementinterval = 30;
            oc.detector.movementintervalnew = oc.detector.movementinterval = 0;

            oc.detector.calibrationdelay = 15;
            oc.detector.color = ColorTranslator.ToHtml(Conf.TrackingColor.ToColor());
            oc.detector.type = "Two Frames";
            oc.detector.postprocessor = "None";
            oc.detector.minsensitivity = 20;
            oc.detector.maxsensitivity = 100;
            oc.detector.minwidth = 20;
            oc.detector.minheight = 20;
            oc.detector.highlight = true;

            oc.recorder.bufferseconds = 2;
            oc.recorder.inactiverecord = 8;
            oc.recorder.timelapse = 0;
            oc.recorder.timelapseframes = 0;
            oc.recorder.maxrecordtime = 900;
            oc.recorder.timelapsesave = 60;
            oc.recorder.quality = 8;
            oc.recorder.timelapseframerate = 5;
            oc.recorder.crf = true;

            oc.settings.audioport = 80;
            oc.settings.audiomodel = "None";
            oc.settings.audioip = "";
            oc.rotateMode = "RotateNoneFlipNone";

            var cameraControl = new CameraWindow(oc,this) { BackColor = Conf.BackColor.ToColor() };
            _pnlCameras.Controls.Add(cameraControl);

            cameraControl.Location = new Point(oc.x, oc.y);
            cameraControl.Size = new Size(320, 240);
            cameraControl.AutoSize = true;
            cameraControl.BringToFront();
            SetCameraEvents(cameraControl);
            if (Conf.AutoLayout)
                _pnlCameras.LayoutObjects(0, 0);

            cameraControl.Tag = GetControlIndex();
            LayoutPanel.NeedsRedraw = true;

            return cameraControl;
        }
MainForm