예제 #1
0
        private void lbSchedule_DrawItem(object sender, DrawItemEventArgs e)
        {
            e.DrawBackground();
            int _i = e.Index;
            objectsMicrophoneScheduleEntry _sched = VolumeLevel.Micobject.schedule.entries[_i];

            Font  _f;
            Brush _b;

            if (_sched.active)
            {
                _f = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold);
            }
            else
            {
                _f = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular);
            }
            if (!chkSchedule.Checked)
            {
                _b = Brushes.Gray;
            }
            else
            {
                _b = Brushes.Black;
            }

            e.Graphics.DrawString(lbSchedule.Items[e.Index].ToString(), _f, _b, e.Bounds);
            e.DrawFocusRectangle();
        }
예제 #2
0
        private void BtnUpdateClick(object sender, EventArgs e)
        {
            int i = lbSchedule.SelectedIndex;
            objectsMicrophoneScheduleEntry sched = VolumeLevel.Micobject.schedule.entries[i];

            if (ConfigureSchedule(sched))
            {
                ShowSchedule(i);
            }
        }
예제 #3
0
        private void Button2Click(object sender, EventArgs e)
        {
            List <objectsMicrophoneScheduleEntry> scheds = VolumeLevel.Micobject.schedule.entries.ToList();
            var sched = new objectsMicrophoneScheduleEntry();

            if (ConfigureSchedule(sched))
            {
                scheds.Add(sched);
                VolumeLevel.Micobject.schedule.entries = scheds.ToArray();
                ShowSchedule(VolumeLevel.Micobject.schedule.entries.Count() - 1);
            }
        }
예제 #4
0
        private void LbScheduleDrawItem(object sender, DrawItemEventArgs e)
        {
            e.DrawBackground();
            int i = e.Index;

            if (i >= 0)
            {
                objectsMicrophoneScheduleEntry sched = VolumeLevel.Micobject.schedule.entries[i];

                Font  f = sched.active ? new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold) : new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular);
                Brush b = !chkSchedule.Checked ? Brushes.Gray : Brushes.Black;

                e.Graphics.DrawString(lbSchedule.Items[i].ToString(), f, b, e.Bounds);
                e.DrawFocusRectangle();
            }
        }
예제 #5
0
        private void LbScheduleSelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbSchedule.Items.Count == 0)
            {
                btnDelete.Enabled = btnUpdate.Enabled = false;
            }
            else
            {
                btnUpdate.Enabled = btnDelete.Enabled = (lbSchedule.SelectedIndex > -1);
                if (btnUpdate.Enabled)
                {
                    int i = lbSchedule.SelectedIndex;
                    objectsMicrophoneScheduleEntry sched = VolumeLevel.Micobject.schedule.entries[i];

                    string[] start = sched.start.Split(':');
                    string[] stop  = sched.stop.Split(':');


                    ddlHourStart.SelectedItem   = start[0];
                    ddlHourEnd.SelectedItem     = stop[0];
                    ddlMinuteStart.SelectedItem = start[1];
                    ddlMinuteEnd.SelectedItem   = stop[1];

                    chkMon.Checked = sched.daysofweek.IndexOf("1", StringComparison.Ordinal) != -1;
                    chkTue.Checked = sched.daysofweek.IndexOf("2", StringComparison.Ordinal) != -1;
                    chkWed.Checked = sched.daysofweek.IndexOf("3", StringComparison.Ordinal) != -1;
                    chkThu.Checked = sched.daysofweek.IndexOf("4", StringComparison.Ordinal) != -1;
                    chkFri.Checked = sched.daysofweek.IndexOf("5", StringComparison.Ordinal) != -1;
                    chkSat.Checked = sched.daysofweek.IndexOf("6", StringComparison.Ordinal) != -1;
                    chkSun.Checked = sched.daysofweek.IndexOf("0", StringComparison.Ordinal) != -1;

                    chkRecordSchedule.Checked         = sched.recordonstart;
                    chkScheduleActive.Checked         = sched.active;
                    chkScheduleRecordOnDetect.Checked = sched.recordondetect;
                    chkScheduleAlerts.Checked         = sched.alerts;
                }
            }
        }
예제 #6
0
        public void ApplySchedule()
        {
            if (!Micobject.schedule.active || Micobject.schedule == null || Micobject.schedule.entries == null ||
                Micobject.schedule.entries.Count() == 0)
            {
                return;
            }
            //find most recent schedule entry
            DateTime dNow     = DateTime.Now;
            TimeSpan shortest = TimeSpan.MaxValue;
            objectsMicrophoneScheduleEntry mostrecent = null;
            bool isstart = true;

            foreach (objectsMicrophoneScheduleEntry entry in Micobject.schedule.entries)
            {
                string[] dows = entry.daysofweek.Split(',');
                foreach (string dayofweek in dows)
                {
                    int dow = Convert.ToInt32(dayofweek);
                    //when did this last fire?
                    if (entry.start.IndexOf("-") == -1)
                    {
                        string[] start   = entry.start.Split(':');
                        var      dtstart = new DateTime(dNow.Year, dNow.Month, dNow.Day, Convert.ToInt32(start[0]),
                                                        Convert.ToInt32(start[1]), 0);
                        while ((int)dtstart.DayOfWeek != dow || dtstart > dNow)
                        {
                            dtstart = dtstart.AddDays(-1);
                        }
                        if (dNow - dtstart < shortest)
                        {
                            shortest   = dNow - dtstart;
                            mostrecent = entry;
                            isstart    = true;
                        }
                    }
                    if (entry.stop.IndexOf("-") == -1)
                    {
                        string[] stop   = entry.stop.Split(':');
                        var      dtstop = new DateTime(dNow.Year, dNow.Month, dNow.Day, Convert.ToInt32(stop[0]),
                                                       Convert.ToInt32(stop[1]), 0);
                        while ((int)dtstop.DayOfWeek != dow || dtstop > dNow)
                        {
                            dtstop = dtstop.AddDays(-1);
                        }
                        if (dNow - dtstop < shortest)
                        {
                            shortest   = dNow - dtstop;
                            mostrecent = entry;
                            isstart    = false;
                        }
                    }
                }
            }
            if (mostrecent != null)
            {
                if (isstart)
                {
                    Micobject.alerts.active = mostrecent.alerts;
                    if (!Micobject.settings.active)
                    {
                        Enable();
                    }
                }
                else
                {
                    if (Micobject.settings.active)
                    {
                        Disable();
                    }
                }
            }
        }
예제 #7
0
        private bool ConfigureSchedule(objectsMicrophoneScheduleEntry sched)
        {
            if (ddlHourStart.SelectedItem.ToString() == "-" || ddlMinuteStart.SelectedItem.ToString() == "-")
            {
                sched.start = "-:-";
            }
            else
            {
                sched.start = ddlHourStart.SelectedItem + ":" + ddlMinuteStart.SelectedItem;
            }
            if (ddlHourEnd.SelectedItem.ToString() == "-" || ddlMinuteEnd.SelectedItem.ToString() == "-")
            {
                sched.stop = "-:-";
            }
            else
            {
                sched.stop = ddlHourEnd.SelectedItem + ":" + ddlMinuteEnd.SelectedItem;
            }

            sched.daysofweek = "";
            if (chkMon.Checked)
            {
                sched.daysofweek += "1,";
            }
            if (chkTue.Checked)
            {
                sched.daysofweek += "2,";
            }
            if (chkWed.Checked)
            {
                sched.daysofweek += "3,";
            }
            if (chkThu.Checked)
            {
                sched.daysofweek += "4,";
            }
            if (chkFri.Checked)
            {
                sched.daysofweek += "5,";
            }
            if (chkSat.Checked)
            {
                sched.daysofweek += "6,";
            }
            if (chkSun.Checked)
            {
                sched.daysofweek += "0,";
            }
            sched.daysofweek = sched.daysofweek.Trim(',');
            if (sched.daysofweek == "")
            {
                MessageBox.Show(LocRm.GetString("Validate_Camera_SelectOneDay")); //"Please select at least one day");
                return(false);
            }

            sched.recordonstart  = chkRecordSchedule.Checked;
            sched.active         = chkScheduleActive.Checked;
            sched.recordondetect = chkScheduleRecordOnDetect.Checked;
            sched.alerts         = chkScheduleAlerts.Checked;
            sched.messaging      = chkScheduleMessaging.Checked;
            return(true);
        }
예제 #8
0
        private bool ConfigureSchedule(objectsMicrophoneScheduleEntry sched)
        {
            if (ddlHourStart.SelectedItem.ToString() == "-" || ddlMinuteStart.SelectedItem.ToString() == "-")
            {
                sched.start = "-:-";
            }
            else
                sched.start = ddlHourStart.SelectedItem + ":" + ddlMinuteStart.SelectedItem;
            if (ddlHourEnd.SelectedItem.ToString() == "-" || ddlMinuteEnd.SelectedItem.ToString() == "-")
            {
                sched.stop = "-:-";
            }
            else
                sched.stop = ddlHourEnd.SelectedItem + ":" + ddlMinuteEnd.SelectedItem;

            sched.daysofweek = "";
            if (chkMon.Checked)
            {
                sched.daysofweek += "1,";
            }
            if (chkTue.Checked)
            {
                sched.daysofweek += "2,";
            }
            if (chkWed.Checked)
            {
                sched.daysofweek += "3,";
            }
            if (chkThu.Checked)
            {
                sched.daysofweek += "4,";
            }
            if (chkFri.Checked)
            {
                sched.daysofweek += "5,";
            }
            if (chkSat.Checked)
            {
                sched.daysofweek += "6,";
            }
            if (chkSun.Checked)
            {
                sched.daysofweek += "0,";
            }
            sched.daysofweek = sched.daysofweek.Trim(',');
            if (sched.daysofweek == "")
            {
                MessageBox.Show(LocRm.GetString("Validate_Camera_SelectOneDay")); //"Please select at least one day");
                return false;
            }

            sched.recordonstart = chkRecordSchedule.Checked;
            sched.active = chkScheduleActive.Checked;
            sched.recordondetect = chkScheduleRecordOnDetect.Checked;
            sched.alerts = chkScheduleAlerts.Checked;
            return true;
        }
예제 #9
0
 private void Button2Click(object sender, EventArgs e)
 {
     List<objectsMicrophoneScheduleEntry> scheds = VolumeLevel.Micobject.schedule.entries.ToList();
     var sched = new objectsMicrophoneScheduleEntry();
     if (ConfigureSchedule(sched))
     {
         scheds.Add(sched);
         VolumeLevel.Micobject.schedule.entries = scheds.ToArray();
         ShowSchedule(VolumeLevel.Micobject.schedule.entries.Count() - 1);
     }
 }