private void AddCameraLoad(object sender, EventArgs e)
{
int j;
if (CameraControl.Camobject.id == -1)
{
if (!SelectSource())
{
_forceClose = true;
Close();
return;
}
}
if (CameraControl.Camobject.id == -1)
{
CameraControl.Camobject.id = MainForm.NextCameraId;
MainForm.AddObject(CameraControl.Camobject);
}
_loaded = false;
CameraControl.NewFrame -= CameraNewFrame;
CameraControl.NewFrame += CameraNewFrame;
CameraControl.IsEdit = true;
if (CameraControl.VolumeControl != null)
CameraControl.VolumeControl.IsEdit = true;
ddlTimestamp.Text = CameraControl.Camobject.settings.timestampformatter;
//chkUploadYouTube.Checked = CameraControl.Camobject.settings.youtube.autoupload;
chkPublic.Checked = CameraControl.Camobject.settings.youtube.@public;
txtTags.Text = CameraControl.Camobject.settings.youtube.tags;
chkMovement.Checked = CameraControl.Camobject.alerts.active;
chkFill.Checked = CameraControl.Camobject.settings.fillMode == 1;
foreach(string dt in _detectortypes)
{
ddlMotionDetector.Items.Add(LocRm.GetString(dt));
}
foreach (string dt in _processortypes)
{
ddlProcessor.Items.Add(LocRm.GetString(dt));
}
for (j = 0; j < _detectortypes.Length; j++)
{
if ((string) _detectortypes[j] == CameraControl.Camobject.detector.type)
{
ddlMotionDetector.SelectedIndex = j;
break;
}
}
for (j = 0; j < _processortypes.Length; j++)
{
if ((string) _processortypes[j] == CameraControl.Camobject.detector.postprocessor)
{
ddlProcessor.SelectedIndex = j;
break;
}
}
foreach (string dt in _actiontypes)
{
ddlActionType.Items.Add(LocRm.GetString(dt));
}
ddlActionType.SelectedIndex = 0;
LoadAlertTypes();
ddlProcessFrames.SelectedItem = CameraControl.Camobject.detector.processeveryframe.ToString(CultureInfo.InvariantCulture);
txtCameraName.Text = CameraControl.Camobject.name;
ranger1.Maximum = 100;
ranger1.Minimum = 0.001;
ranger1.ValueMin = CameraControl.Camobject.detector.minsensitivity;
ranger1.ValueMax = CameraControl.Camobject.detector.maxsensitivity;
ranger1.Gain = CameraControl.Camobject.detector.gain;
ranger1.ValueMinChanged += Ranger1ValueMinChanged;
ranger1.ValueMaxChanged += Ranger1ValueMaxChanged;
ranger1.GainChanged += Ranger1GainChanged;
ranger1.SetText();
rdoRecordDetect.Checked = CameraControl.Camobject.detector.recordondetect;
rdoRecordAlert.Checked = CameraControl.Camobject.detector.recordonalert;
rdoNoRecord.Checked = !rdoRecordDetect.Checked && !rdoRecordAlert.Checked;
chkSchedule.Checked = CameraControl.Camobject.schedule.active;
var feats = Enum.GetNames(typeof(RotateFlipType));
int ind = 0;
j = 0;
foreach (var f in feats)
{
ddlRotateFlip.Items.Add(new ListItem(Regex.Replace(f, "([a-z,0-9])([A-Z])", "$1 $2"),f));
if (CameraControl.Camobject.rotateMode == f)
ind = j;
j++;
}
ddlRotateFlip.SelectedIndex = ind;
chkColourProcessing.Checked = CameraControl.Camobject.detector.colourprocessingenabled;
numMaxFR.Value = CameraControl.Camobject.settings.maxframerate;
numMaxFRRecording.Value = CameraControl.Camobject.settings.maxframeraterecord;
txtDirectory.Text = CameraControl.Camobject.directory;
rdoContinuous.Checked = CameraControl.Camobject.alerts.processmode == "continuous";
rdoMotion.Checked = CameraControl.Camobject.alerts.processmode == "motion";
rdoTrigger.Checked = CameraControl.Camobject.alerts.processmode == "trigger";
tbFTPQuality.Value = CameraControl.Camobject.ftp.quality;
tbSaveQuality.Value = CameraControl.Camobject.savelocal.quality;
txtLocalFilename.Text = CameraControl.Camobject.savelocal.filename;
if (CameraControl.Camera==null)
{
chkActive.Checked = false;
btnAdvanced.Enabled = btnCrossbar.Enabled = false;
}
else
{
chkActive.Checked = CameraControl.Camobject.settings.active;
}
AreaControl.MotionZones = CameraControl.Camobject.detector.motionzones;
chkActive.Enabled = !string.IsNullOrEmpty(CameraControl.Camobject.settings.videosourcestring);
Text = LocRm.GetString("EditCamera");
if (CameraControl.Camobject.id > -1)
Text += string.Format(" (ID: {0}, DIR: {1})", CameraControl.Camobject.id, CameraControl.Camobject.directory);
txtTimeLapse.Text = CameraControl.Camobject.recorder.timelapse.ToString(CultureInfo.InvariantCulture);
pnlMovement.Enabled = chkMovement.Checked;
chkSuppressNoise.Checked = CameraControl.Camobject.settings.suppressnoise;
gpbSubscriber2.Enabled = MainForm.Conf.Subscribed;
linkLabel9.Visible = !(MainForm.Conf.Subscribed);
txtBuffer.Value = CameraControl.Camobject.recorder.bufferseconds;
txtCalibrationDelay.Value = CameraControl.Camobject.detector.calibrationdelay;
txtInactiveRecord.Value = CameraControl.Camobject.recorder.inactiverecord;
txtMaxRecordTime.Value = CameraControl.Camobject.recorder.maxrecordtime;
numMinRecordTime.Value = CameraControl.Camobject.recorder.minrecordtime;
btnBack.Enabled = false;
txtUploadEvery.Text = CameraControl.Camobject.ftp.intervalnew.ToString(CultureInfo.InvariantCulture);
numSaveInterval.Text = CameraControl.Camobject.savelocal.intervalnew.ToString(CultureInfo.InvariantCulture);
numFTPMinimumDelay.Text = CameraControl.Camobject.ftp.minimumdelay.ToString(CultureInfo.InvariantCulture);
numSaveDelay.Text = CameraControl.Camobject.savelocal.minimumdelay.ToString(CultureInfo.InvariantCulture);
txtFTPFilename.Text = CameraControl.Camobject.ftp.filename;
chkFTP.Checked = CameraControl.Camobject.ftp.enabled;
chkLocalSaving.Checked = gbLocal.Enabled = CameraControl.Camobject.savelocal.enabled;
txtTimeLapseFrames.Text = CameraControl.Camobject.recorder.timelapseframes.ToString(CultureInfo.InvariantCulture);
chkTimelapse.Checked = CameraControl.Camobject.recorder.timelapseenabled;
if (!chkTimelapse.Checked)
groupBox1.Enabled = false;
txtMaskImage.Text = CameraControl.Camobject.settings.maskimage;
txtFTPText.Text = CameraControl.Camobject.ftp.text;
txtSaveOverlay.Text = CameraControl.Camobject.savelocal.text;
rdoFTPMotion.Checked = CameraControl.Camobject.ftp.mode == 0;
rdoFTPAlerts.Checked = CameraControl.Camobject.ftp.mode == 1;
rdoFTPInterval.Checked = CameraControl.Camobject.ftp.mode == 2;
rdoSaveMotion.Checked = CameraControl.Camobject.savelocal.mode == 0;
rdoSaveAlerts.Checked = CameraControl.Camobject.savelocal.mode == 1;
rdoSaveInterval.Checked = CameraControl.Camobject.savelocal.mode == 2;
txtUploadEvery.Enabled = rdoFTPInterval.Checked;
numSaveInterval.Enabled = rdoSaveInterval.Checked;
LoadPTZs();
txtAccessGroups.Text = CameraControl.Camobject.settings.accessgroups;
ddlCopyFrom.Items.Clear();
ddlCopyFrom.Items.Add(new ListItem(LocRm.GetString("CopyFrom"), "-1"));
foreach(objectsCamera c in MainForm.Cameras)
{
if (c.id != CameraControl.Camobject.id)
ddlCopyFrom.Items.Add(new ListItem(c.name,c.id.ToString(CultureInfo.InvariantCulture)));
}
ddlCopyFrom.SelectedIndex = 0;
tbQuality.Value = CameraControl.Camobject.recorder.quality;
numTimelapseSave.Value = CameraControl.Camobject.recorder.timelapsesave;
numFramerate.Value = CameraControl.Camobject.recorder.timelapseframerate;
try
{
ddlProfile.SelectedIndex = CameraControl.Camobject.recorder.profile;
}
catch
{
ddlProfile.SelectedIndex = 0;
}
var m = MainForm.Microphones.SingleOrDefault(p => p.id == CameraControl.Camobject.settings.micpair);
lblMicSource.Text = m != null ? m.name : LocRm.GetString("None");
PopulateTalkDevices();
numTalkPort.Value = CameraControl.Camobject.settings.audioport > -1 ? CameraControl.Camobject.settings.audioport : 80;
txtAudioOutIP.Text = CameraControl.Camobject.settings.audioip;
txtTalkUsername.Text = CameraControl.Camobject.settings.audiousername;
txtTalkPassword.Text = CameraControl.Camobject.settings.audiopassword;
string t2 = CameraControl.Camobject.recorder.trigger ?? "";
ddlTriggerRecording.Items.Add(new ListItem("None", ""));
foreach (var c in MainForm.Cameras.Where(p=>p.id!=CameraControl.Camobject.id))
{
ddlTriggerRecording.Items.Add(new ListItem(c.name, "2," + c.id));
}
foreach (var c in MainForm.Microphones.Where(p => p.id != CameraControl.Camobject.settings.micpair))
{
ddlTriggerRecording.Items.Add(new ListItem(c.name, "1," + c.id));
}
foreach (ListItem li in ddlTriggerRecording.Items)
{
if (li.Value == t2)
ddlTriggerRecording.SelectedItem = li;
}
if (ddlTriggerRecording.SelectedIndex == -1)
ddlTriggerRecording.SelectedIndex = 0;
numMaxCounter.Value = CameraControl.Camobject.ftp.countermax;
numSaveCounter.Value = CameraControl.Camobject.savelocal.countermax;
chkIgnoreAudio.Checked = CameraControl.Camobject.settings.ignoreaudio;
tblStorage.Enabled = chkStorageManagement.Checked = CameraControl.Camobject.settings.storagemanagement.enabled;
numMaxAge.Value = CameraControl.Camobject.settings.storagemanagement.maxage;
numMaxFolderSize.Value = CameraControl.Camobject.settings.storagemanagement.maxsize;
actionEditor1.LoginRequested += ActionEditor1LoginRequested;
//chkNotifyDisconnect.Checked = CameraControl.Camobject.settings.notifyondisconnect;
numAutoOff.Value = CameraControl.Camobject.detector.autooff;
chkArchive.Checked = CameraControl.Camobject.settings.storagemanagement.archive;
chkUploadGrabs.Checked = CameraControl.Camobject.settings.cloudprovider.images;
chkUploadRecordings.Checked = CameraControl.Camobject.settings.cloudprovider.recordings;
txtCloudPath.Text = CameraControl.Camobject.settings.cloudprovider.path;
chkMessaging.Checked = CameraControl.Camobject.settings.messaging;
LoadMediaDirectories();
PopFTPServers();
ddlCloudProviders.Items.Add(LocRm.GetString("PleaseSelect"));
ddlCloudProviders.Items.AddRange(Settings.CloudProviders);
ddlCloudProviders.SelectedIndex = 0;
foreach (var o in ddlCloudProviders.Items)
{
if (o.ToString() == CameraControl.Camobject.settings.cloudprovider.provider)
{
ddlCloudProviders.SelectedItem = o;
break;
}
}
intervalConfig1.Init(CameraControl);
ptzui1.CameraControl = CameraControl;
scheduleEditor1.Io = CameraControl;
chkFTPRecordingsEnabled.Checked = CameraControl.Camobject.recorder.ftpenabled;
txtFTPRecordingFilename.Text = CameraControl.Camobject.recorder.ftpfilename;
numFTPRecordingCounterMax.Value = CameraControl.Camobject.recorder.ftpcountermax;
_loaded = true;
}