예제 #1
0
        public AutoAddDataAppend GetManualAutoAddDataAppend(ManualAutoAddData master)
        {
            if (master == null)
            {
                return(null);
            }

            //データ更新は必要になったときにまとめて行う
            //未使用か、ManualAutoAddData更新により古いデータ廃棄済みでデータが無い場合
            if (manualAutoAddAppendList == null)
            {
                manualAutoAddAppendList = ManualAutoAddList.Values.ToDictionary(item => item.dataID, item => new AutoAddDataAppend(
                                                                                    ReserveList.Values.Where(info => info != null && info.IsEpgReserve == false && item.CheckPgHit(info)).ToList()));

                foreach (AutoAddDataAppend item in manualAutoAddAppendList.Values)
                {
                    item.UpdateCounts();
                }
            }

            AutoAddDataAppend retv;

            manualAutoAddAppendList.TryGetValue(master.dataID, out retv);
            return(retv ?? new AutoAddDataAppend());
        }
예제 #2
0
        public AddManualAutoAddWindow(ManualAutoAddData data = null, AutoAddMode mode = AutoAddMode.NewAdd)
            : base(data, mode)
        {
            InitializeComponent();

            try
            {
                base.SetParam(false, checkBox_windowPinned, checkBox_dataReplace);

                //コマンドの登録
                this.CommandBindings.Add(new CommandBinding(EpgCmds.Cancel, (sender, e) => this.Close()));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.AddInDialog, autoadd_add));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.ChangeInDialog, autoadd_chg, (sender, e) => e.CanExecute   = winMode == AutoAddMode.Change));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.DeleteInDialog, autoadd_del1, (sender, e) => e.CanExecute  = winMode == AutoAddMode.Change));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.Delete2InDialog, autoadd_del2, (sender, e) => e.CanExecute = winMode == AutoAddMode.Change));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.BackItem, (sender, e) => MoveViewNextItem(-1)));
                this.CommandBindings.Add(new CommandBinding(EpgCmds.NextItem, (sender, e) => MoveViewNextItem(1)));

                //ボタンの設定
                mBinds.SetCommandToButton(button_cancel, EpgCmds.Cancel);
                mBinds.SetCommandToButton(button_chg, EpgCmds.ChangeInDialog);
                mBinds.SetCommandToButton(button_add, EpgCmds.AddInDialog);
                mBinds.SetCommandToButton(button_del, EpgCmds.DeleteInDialog);
                mBinds.SetCommandToButton(button_del2, EpgCmds.Delete2InDialog);
                mBinds.SetCommandToButton(button_up, EpgCmds.BackItem);
                mBinds.SetCommandToButton(button_down, EpgCmds.NextItem);
                RefreshMenu();

                //ステータスバーの登録
                this.statusBar.Status.Visibility = Visibility.Collapsed;
                StatusManager.RegisterStatusbar(this.statusBar, this);

                //その他設定
                chbxList = CommonManager.DayOfWeekArray.Select(wd =>
                                                               new CheckBox {
                    Content = wd, Margin = new Thickness(0, 0, 6, 0)
                }).ToList();
                chbxList.ForEach(chbx => stackPanel_week.Children.Add(chbx));

                comboBox_startHH.ItemsSource   = CommonManager.CustomHourList;
                comboBox_startHH.SelectedIndex = 0;
                comboBox_startMM.ItemsSource   = Enumerable.Range(0, 60);
                comboBox_startMM.SelectedIndex = 0;
                comboBox_startSS.ItemsSource   = Enumerable.Range(0, 60);
                comboBox_startSS.SelectedIndex = 0;
                comboBox_endHH.ItemsSource     = CommonManager.CustomHourList;
                comboBox_endHH.SelectedIndex   = 0;
                comboBox_endMM.ItemsSource     = Enumerable.Range(0, 60);
                comboBox_endMM.SelectedIndex   = 0;
                comboBox_endSS.ItemsSource     = Enumerable.Range(0, 60);
                comboBox_endSS.SelectedIndex   = 0;
                ViewUtil.Set_ComboBox_LostFocus_SelectItemUInt(panel_times);

                comboBox_service.ItemsSource   = ChSet5.ChListSelected;
                comboBox_service.SelectedIndex = 0;

                recSettingView.SetViewMode(false);
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }
예제 #3
0
        protected override bool SetData(ManualAutoAddData data)
        {
            if (data == null)
            {
                return(false);
            }

            data   = data.DeepClone();
            dataID = data.dataID;

            //深夜時間帯の処理
            if (Settings.Instance.LaterTimeUse == true && DateTime28.IsLateHour(data.PgStartTime.Hour) == true)
            {
                data.ShiftRecDay(-1);
            }

            //曜日の処理、0~6bit目:日~土
            int val = 0;

            chbxList.ForEach(chbx => chbx.IsChecked = (data.dayOfWeekFlag & (0x01 << val++)) != 0);

            checkBox_keyDisabled.IsChecked = data.IsEnabled == false;

            UInt32 hh = data.startTime / (60 * 60);
            UInt32 mm = (data.startTime % (60 * 60)) / 60;
            UInt32 ss = data.startTime % 60;

            comboBox_startHH.SelectedIndex = (int)hh;
            comboBox_startMM.SelectedIndex = (int)mm;
            comboBox_startSS.SelectedIndex = (int)ss;

            //深夜時間帯の処理も含む
            UInt32 endTime = data.startTime + data.durationSecond;

            if (endTime >= comboBox_endHH.Items.Count * 60 * 60 || endTime >= 24 * 60 * 60 &&
                DateTime28.JudgeLateHour(data.PgStartTime.AddSeconds(data.durationSecond), data.PgStartTime) == false)
            {
                //正規のデータであれば、必ず0~23時台かつstartTimeより小さくなる。
                endTime -= 24 * 60 * 60;
            }
            hh = endTime / (60 * 60);
            mm = (endTime % (60 * 60)) / 60;
            ss = endTime % 60;

            comboBox_endHH.SelectedIndex = (int)hh;
            comboBox_endMM.SelectedIndex = (int)mm;
            comboBox_endSS.SelectedIndex = (int)ss;

            textBox_title.Text = data.title;

            UInt64 key = data.Create64Key();

            if (ChSet5.ChList.ContainsKey(key) == true)
            {
                comboBox_service.SelectedItem = ChSet5.ChList[key];
            }
            recSettingView.SetDefSetting(data.recSetting);

            return(true);
        }
예제 #4
0
        public AutoAddDataAppend GetManualAutoAddDataAppend(ManualAutoAddData master)
        {
            if (master == null)
            {
                return(null);
            }

            //データ更新は必要になったときにまとめて行う
            //未使用か、ManualAutoAddData更新により古いデータ廃棄済みでデータが無い場合
            Dictionary <uint, AutoAddDataAppend> dict = manualAutoAddAppendList;

            if (dict == null)
            {
                ReloadReserveInfo();//notify残ってれば更新

                dict = manualAutoAddList.Values.ToDictionary(item => item.dataID, item => new AutoAddDataAppend(
                                                                 reserveList.Values.Where(info => info != null && info.IsEpgReserve == false && item.CheckPgHit(info)).ToList()));

                foreach (AutoAddDataAppend item in dict.Values)
                {
                    item.UpdateCounts();
                }

                manualAutoAddAppendList = dict;
            }

            AutoAddDataAppend retv;

            if (dict.TryGetValue(master.dataID, out retv) == false)
            {
                retv = new AutoAddDataAppend();
            }
            return(retv);
        }
예제 #5
0
 public static bool?OpenChangeManualAutoAddDialog(ManualAutoAddData Data)
 {
     if (AddManualAutoAddWindow.ChangeDataLastUsedWindow(Data) != null)
     {
         return(true);
     }
     return(OpenManualAutoAddDialog(Data, AutoAddMode.Change));
 }
예제 #6
0
        private void button_add_Click(object sender, RoutedEventArgs e)
        {
            var item = new ManualAutoAddData();

            item.dayOfWeekFlag = (byte)((checkBox_week0.IsChecked == true ? 0x01 : 0) |
                                        (checkBox_week1.IsChecked == true ? 0x02 : 0) |
                                        (checkBox_week2.IsChecked == true ? 0x04 : 0) |
                                        (checkBox_week3.IsChecked == true ? 0x08 : 0) |
                                        (checkBox_week4.IsChecked == true ? 0x10 : 0) |
                                        (checkBox_week5.IsChecked == true ? 0x20 : 0) |
                                        (checkBox_week6.IsChecked == true ? 0x40 : 0));

            item.startTime      = (uint)(comboBox_startHH.SelectedIndex * 60 * 60 + comboBox_startMM.SelectedIndex * 60 + comboBox_startSS.SelectedIndex);
            item.durationSecond = ((uint)(comboBox_endHH.SelectedIndex * 60 * 60 + comboBox_endMM.SelectedIndex * 60 + comboBox_endSS.SelectedIndex) +
                                   24 * 60 * 60 - item.startTime) % (24 * 60 * 60);

            item.title = textBox_title.Text;

            ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;

            if (chItem != null)
            {
                item.stationName       = chItem.ServiceName;
                item.originalNetworkID = chItem.ONID;
                item.transportStreamID = chItem.TSID;
                item.serviceID         = chItem.SID;
            }
            else if (defKey != null)
            {
                item.stationName       = defKey.stationName;
                item.originalNetworkID = defKey.originalNetworkID;
                item.transportStreamID = defKey.transportStreamID;
                item.serviceID         = defKey.serviceID;
            }
            else
            {
                MessageBox.Show("サービスが未選択です");
                return;
            }
            item.recSetting = recSettingView.GetRecSetting();

            if (defKey != null)
            {
                item.dataID = defKey.dataID;
                CommonManager.CreateSrvCtrl().SendChgManualAdd(new List <ManualAutoAddData>()
                {
                    item
                });
            }
            else
            {
                CommonManager.CreateSrvCtrl().SendAddManualAdd(new List <ManualAutoAddData>()
                {
                    item
                });
            }
            DialogResult = true;
        }
예제 #7
0
        /// <summary>
        /// 自動登録情報をセットし、ウィンドウを変更モードにする
        /// </summary>
        public void SetChangeModeData(ManualAutoAddData item)
        {
            defKey             = item;
            button_add.Content = "変更";

            {
                if ((defKey.dayOfWeekFlag & 0x01) != 0)
                {
                    checkBox_week0.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x02) != 0)
                {
                    checkBox_week1.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x04) != 0)
                {
                    checkBox_week2.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x08) != 0)
                {
                    checkBox_week3.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x10) != 0)
                {
                    checkBox_week4.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x20) != 0)
                {
                    checkBox_week5.IsChecked = true;
                }
                if ((defKey.dayOfWeekFlag & 0x40) != 0)
                {
                    checkBox_week6.IsChecked = true;
                }

                DateTime startTime = (new DateTime(2000, 1, 2)).AddSeconds(defKey.startTime);
                comboBox_startHH.SelectedIndex = startTime.Hour;
                comboBox_startMM.SelectedIndex = startTime.Minute;
                comboBox_startSS.SelectedIndex = startTime.Second;

                DateTime endTime = startTime.AddSeconds(defKey.durationSecond);
                comboBox_endHH.SelectedIndex = endTime.Hour;
                comboBox_endMM.SelectedIndex = endTime.Minute;
                comboBox_endSS.SelectedIndex = endTime.Second;

                textBox_title.Text = defKey.title;

                comboBox_service.SelectedItem = comboBox_service.Items.Cast <ChSet5Item>().FirstOrDefault(ch =>
                                                                                                          ch.ONID == defKey.originalNetworkID &&
                                                                                                          ch.TSID == defKey.transportStreamID &&
                                                                                                          ch.SID == defKey.serviceID);
                defKey.recSetting.PittariFlag = 0;
                defKey.recSetting.TuijyuuFlag = 0;
                recSettingView.SetDefSetting(defKey.recSetting);
            }
        }
예제 #8
0
 public static bool?OpenManualAutoAddDialog(ManualAutoAddData Data, AutoAddMode mode)
 {
     try
     {
         new AddManualAutoAddWindow(Data, mode).Show();
         return(true);
     }
     catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
     return(null);
 }
예제 #9
0
 private static void CopyData(ManualAutoAddData src, ManualAutoAddData dest)
 {
     dest.dataID = src.dataID;
     dest.dayOfWeekFlag = src.dayOfWeekFlag;
     dest.durationSecond = src.durationSecond;
     dest.originalNetworkID = src.originalNetworkID;
     dest.recSetting = src.recSetting.Clone();       //RecSettingData
     dest.serviceID = src.serviceID;
     dest.startTime = src.startTime;
     dest.stationName = src.stationName;
     dest.title = src.title;
     dest.transportStreamID = src.transportStreamID;
 }
예제 #10
0
 private static void CopyData(ManualAutoAddData src, ManualAutoAddData dest)
 {
     dest.dataID            = src.dataID;
     dest.dayOfWeekFlag     = src.dayOfWeekFlag;
     dest.durationSecond    = src.durationSecond;
     dest.originalNetworkID = src.originalNetworkID;
     dest.recSetting        = src.recSetting.Clone(); //RecSettingData
     dest.serviceID         = src.serviceID;
     dest.startTime         = src.startTime;
     dest.stationName       = src.stationName;
     dest.title             = src.title;
     dest.transportStreamID = src.transportStreamID;
     dest.keyDisabledFlag   = src.keyDisabledFlag;
 }
예제 #11
0
        public override AutoAddData GetData()
        {
            try
            {
                var data = new ManualAutoAddData();
                data.dataID = (uint)dataID;

                UInt32 startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
                UInt32 endTime   = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;
                while (endTime < startTime)
                {
                    endTime += 24 * 60 * 60;
                }
                UInt32 duration = endTime - startTime;
                if (duration >= 24 * 60 * 60)
                {
                    //深夜時間帯の処理の関係で、不可条件が新たに発生しているため、その対応。
                    MessageBox.Show("24時間以上の録画時間は設定出来ません。", "録画時間長の確認", MessageBoxButton.OK);
                    return(null);
                }

                data.startTime      = startTime;
                data.durationSecond = duration;

                //曜日の処理、0~6bit目:日~土
                data.dayOfWeekFlag = 0;
                int val = 0;
                chbxList.ForEach(chbx => data.dayOfWeekFlag |= (byte)((chbx.IsChecked == true ? 0x01 : 0x00) << val++));

                //開始時刻を0~24時に調整する。
                data.RegulateData();

                data.IsEnabled = checkBox_keyDisabled.IsChecked != true;

                data.title = textBox_title.Text;

                var chItem = comboBox_service.SelectedItem as EpgServiceInfo;
                data.stationName       = chItem.service_name;
                data.originalNetworkID = chItem.ONID;
                data.transportStreamID = chItem.TSID;
                data.serviceID         = chItem.SID;
                data.recSetting        = recSettingView.GetRecSetting();

                return(data);
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
            return(null);
        }
예제 #12
0
파일: MenuUtil.cs 프로젝트: nekopanda/EDCB
 public static bool?OpenManualAutoAddDialog(ManualAutoAddData Data, Control Owner)
 {
     try
     {
         var dlg = new AddManualAutoAddWindow();
         dlg.Owner = CommonUtil.GetTopWindow(Owner);
         if (Data != null)
         {
             dlg.SetChangeMode(true);
             dlg.SetDefaultSetting(Data);
         }
         return(dlg.ShowDialog());
     }
     catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
     return(null);
 }
예제 #13
0
        //proc 0:追加、1:変更、2:削除、3:予約ごと削除
        private bool CheckAutoAddChange(ExecutedRoutedEventArgs e, int proc)
        {
            if (proc != 3)
            {
                if (CmdExeUtil.IsDisplayKgMessage(e) == true)
                {
                    var strMode = new string[] { "追加", "変更", "削除" }[proc];
                    if (MessageBox.Show("プログラム予約登録を" + strMode + "します。\r\nよろしいですか?", strMode + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                    {
                        return(false);
                    }
                }
            }
            else
            {
                if (CmdExeUtil.CheckAllProcCancel(e, CommonUtil.ToList(defKey), cmdCheckType.Delete2) == true)
                {
                    return(false);
                }
            }

            if (proc != 0)
            {
                if (CommonManager.Instance.DB.ManualAutoAddList.ContainsKey(this.defKey.dataID) == false)
                {
                    MessageBox.Show("項目がありません。\r\n" + "既に削除されています。\r\n" + "(別のEpgtimerによる操作など)", "データエラー", MessageBoxButton.OK, MessageBoxImage.Exclamation);

                    //追加モードに変更
                    SetChangeMode(false);
                    defKey = null;
                    return(false);
                }
            }

            return(true);
        }
예제 #14
0
        private void button_add_chg(object sender, ExecutedRoutedEventArgs e, bool chgFlag)
        {
            try
            {
                if (defKey == null)
                {
                    defKey = new ManualAutoAddData();
                }
                defKey.dayOfWeekFlag = 0;
                if (checkBox_week0.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x01;
                }
                if (checkBox_week1.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x02;
                }
                if (checkBox_week2.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x04;
                }
                if (checkBox_week3.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x08;
                }
                if (checkBox_week4.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x10;
                }
                if (checkBox_week5.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x20;
                }
                if (checkBox_week6.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x40;
                }

                defKey.startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
                UInt32 endTime = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;
                if (endTime < defKey.startTime)
                {
                    defKey.durationSecond = (24 * 60 * 60 + endTime) - defKey.startTime;
                }
                else
                {
                    defKey.durationSecond = endTime - defKey.startTime;
                }

                defKey.title = textBox_title.Text;

                ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;
                defKey.stationName = chItem.ServiceName;
                defKey.originalNetworkID = chItem.ONID;
                defKey.transportStreamID = chItem.TSID;
                defKey.serviceID = chItem.SID;
                defKey.recSetting = recSettingView.GetRecSetting();

                if (chgFlag == true)
                {
                    mutil.ManualAutoAddChange(CommonUtil.ToList(defKey));
                }
                else
                {
                    mutil.ManualAutoAddAdd(CommonUtil.ToList(defKey));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
            }
            DialogResult = true;
        }
예제 #15
0
 public void SetDefaultSetting(ManualAutoAddData item)
 {
     defKey = item.Clone();
 }
예제 #16
0
        private bool CheckExistAutoAddItem()
        {
            bool retval = CommonManager.Instance.DB.ManualAutoAddList.ContainsKey(this.defKey.dataID);
            if (retval == false)
            {
                MessageBox.Show("項目がありません。\r\n" +
                    "既に削除されています。\r\n" +
                    "(別のEpgtimerによる操作など)");

                //追加モードに変更
                SetChangeMode(false);
                defKey = null;
            }
            return retval;
        }
예제 #17
0
        private void button_add_Click(object sender, RoutedEventArgs e)
        {
            if (defKey == null)
            {
                defKey = new ManualAutoAddData();
            }
            defKey.dayOfWeekFlag = 0;
            if (checkBox_week0.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x01;
            }
            if (checkBox_week1.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x02;
            }
            if (checkBox_week2.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x04;
            }
            if (checkBox_week3.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x08;
            }
            if (checkBox_week4.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x10;
            }
            if (checkBox_week5.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x20;
            }
            if (checkBox_week6.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x40;
            }

            defKey.startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
            UInt32 endTime = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;

            if (endTime < defKey.startTime)
            {
                defKey.durationSecond = (24 * 60 * 60 + endTime) - defKey.startTime;
            }
            else
            {
                defKey.durationSecond = endTime - defKey.startTime;
            }

            defKey.title = textBox_title.Text;

            ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;

            defKey.stationName       = chItem.ServiceName;
            defKey.originalNetworkID = chItem.ONID;
            defKey.transportStreamID = chItem.TSID;
            defKey.serviceID         = chItem.SID;

            RecSettingData recSet = new RecSettingData();

            recSettingView.GetRecSetting(ref recSet);
            defKey.recSetting = recSet;

            List <ManualAutoAddData> val = new List <ManualAutoAddData>();

            val.Add(defKey);

            if (changeModeFlag == true)
            {
                cmd.SendChgManualAdd(val);
            }
            else
            {
                cmd.SendAddManualAdd(val);
            }
            DialogResult = true;
        }
예제 #18
0
 public void SetDefaultSetting(ManualAutoAddData item)
 {
     defKey = item;
 }
예제 #19
0
        private void button_add_Click(object sender, RoutedEventArgs e)
        {
            if (defKey == null)
            {
                defKey = new ManualAutoAddData();
            }
            defKey.dayOfWeekFlag = 0;
            if (checkBox_week0.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x01;
            }
            if (checkBox_week1.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x02;
            }
            if (checkBox_week2.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x04;
            }
            if (checkBox_week3.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x08;
            }
            if (checkBox_week4.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x10;
            }
            if (checkBox_week5.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x20;
            }
            if (checkBox_week6.IsChecked == true)
            {
                defKey.dayOfWeekFlag |= 0x40;
            }

            defKey.startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
            UInt32 endTime = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;
            if (endTime < defKey.startTime)
            {
                defKey.durationSecond = (24 * 60 * 60 + endTime) - defKey.startTime;
            }
            else
            {
                defKey.durationSecond = endTime - defKey.startTime;
            }

            defKey.title = textBox_title.Text;

            ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;
            defKey.stationName = chItem.ServiceName;
            defKey.originalNetworkID = chItem.ONID;
            defKey.transportStreamID = chItem.TSID;
            defKey.serviceID = chItem.SID;

            RecSettingData recSet = new RecSettingData();
            recSettingView.GetRecSetting(ref recSet);
            defKey.recSetting = recSet;

            List<ManualAutoAddData> val = new List<ManualAutoAddData>();
            val.Add(defKey);

            if (changeModeFlag == true)
            {
                cmd.SendChgManualAdd(val);
            }
            else
            {
                cmd.SendAddManualAdd(val);
            }
            DialogResult = true;
        }
예제 #20
0
        public AutoAddDataAppend GetManualAutoAddDataAppend(ManualAutoAddData master)
        {
            if (master == null) return null;

            //データ更新は必要になったときにまとめて行う
            //未使用か、ManualAutoAddData更新により古いデータ廃棄済みでデータが無い場合
            Dictionary<uint, AutoAddDataAppend> dict = manualAutoAddAppendList;
            if (dict == null)
            {
                ReloadReserveInfo();//notify残ってれば更新

                dict = manualAutoAddList.Values.ToDictionary(item => item.dataID, item => new AutoAddDataAppend(
                    reserveList.Values.Where(info => info != null && info.IsEpgReserve == false && item.CheckPgHit(info)).ToList()));

                foreach (AutoAddDataAppend item in dict.Values) item.UpdateCounts();

                manualAutoAddAppendList = dict;
            }

            AutoAddDataAppend retv;
            if (dict.TryGetValue(master.dataID, out retv) == false)
            {
                retv = new AutoAddDataAppend();
            }
            return retv;
        }
예제 #21
0
 public static void CopyTo(this ManualAutoAddData src, ManualAutoAddData dest)
 {
     CopyObj.CopyTo(src, dest, CopyData);
 }
예제 #22
0
 public ManualAutoAddDataItem(ManualAutoAddData item)
 {
     this.ManualAutoAddInfo = item;
 }
예제 #23
0
        //proc 0:追加、1:変更、2:削除、3:予約ごと削除
        private bool CheckAutoAddChange(ExecutedRoutedEventArgs e, int proc)
        {
            if (proc != 3)
            {
                if (CmdExeUtil.IsDisplayKgMessage(e) == true)
                {
                    var strMode = new string[] { "追加", "変更", "削除" }[proc];
                    if (MessageBox.Show("プログラム予約登録を" + strMode + "します。\r\nよろしいですか?", strMode + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                    { return false; }
                }
            }
            else
            {
                if (CmdExeUtil.CheckAllProcCancel(e, CommonUtil.ToList(defKey), cmdCheckType.Delete2) == true)
                { return false; }
            }

            if (proc != 0)
            {
                if (CommonManager.Instance.DB.ManualAutoAddList.ContainsKey(this.defKey.dataID) == false)
                {
                    MessageBox.Show("項目がありません。\r\n" + "既に削除されています。\r\n" + "(別のEpgtimerによる操作など)", "データエラー", MessageBoxButton.OK, MessageBoxImage.Exclamation);

                    //追加モードに変更
                    SetChangeMode(false);
                    defKey = null;
                    return false;
                }
            }

            return true;
        }
예제 #24
0
 public static ManualAutoAddData Clone(this ManualAutoAddData src)
 {
     return(CopyObj.Clone(src, CopyData));
 }
예제 #25
0
 public static void CopyTo(this ManualAutoAddData src, ManualAutoAddData dest)
 {
     CopyObj.CopyTo(src, dest, CopyData);
 }
예제 #26
0
 public ManualAutoAddDataItem(ManualAutoAddData item)
 {
     this.ManualAutoAddInfo = item;
 }
예제 #27
0
        private void button_add_chg(object sender, ExecutedRoutedEventArgs e, bool chgFlag)
        {
            try
            {
                UInt32 startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
                UInt32 endTime = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;
                while (endTime < startTime) endTime += 24 * 60 * 60;
                UInt32 duration = endTime - startTime;
                if (duration >= 24 * 60 * 60)
                {
                    //深夜時間帯の処理の関係で、不可条件が新たに発生しているため、その対応。
                    MessageBox.Show("24時間以上の録画時間は設定出来ません。", "録画時間長の確認", MessageBoxButton.OK);
                    return;
                }

                if (CheckAutoAddChange(e, chgFlag == false ? 0 : 1) == false) return;
                //
                if (defKey == null)
                {
                    defKey = new ManualAutoAddData();
                }

                defKey.startTime = startTime;
                defKey.durationSecond = duration;

                defKey.dayOfWeekFlag = 0;
                if (checkBox_week0.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x01;
                }
                if (checkBox_week1.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x02;
                }
                if (checkBox_week2.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x04;
                }
                if (checkBox_week3.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x08;
                }
                if (checkBox_week4.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x10;
                }
                if (checkBox_week5.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x20;
                }
                if (checkBox_week6.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x40;
                }

                //開始時刻を0~24時に調整する。
                defKey.RegulateData();

                defKey.IsEnabled = checkBox_keyDisabled.IsChecked != true;

                defKey.title = textBox_title.Text;

                ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;
                defKey.stationName = chItem.ServiceName;
                defKey.originalNetworkID = chItem.ONID;
                defKey.transportStreamID = chItem.TSID;
                defKey.serviceID = chItem.SID;
                defKey.recSetting = recSettingView.GetRecSetting();

                if (chgFlag == true)
                {
                    bool ret = MenuUtil.AutoAddChange(CommonUtil.ToList(defKey));
                    CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を変更");
                }
                else
                {
                    bool ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(defKey));
                    CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を追加");
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            DialogResult = true;
        }
예제 #28
0
        private void button_add_chg(object sender, ExecutedRoutedEventArgs e, bool chgFlag)
        {
            try
            {
                UInt32 startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex;
                UInt32 endTime   = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex;
                while (endTime < startTime)
                {
                    endTime += 24 * 60 * 60;
                }
                UInt32 duration = endTime - startTime;
                if (duration >= 24 * 60 * 60)
                {
                    //深夜時間帯の処理の関係で、不可条件が新たに発生しているため、その対応。
                    MessageBox.Show("24時間以上の録画時間は設定出来ません。", "録画時間長の確認", MessageBoxButton.OK);
                    return;
                }

                if (CheckAutoAddChange(e, chgFlag == false ? 0 : 1) == false)
                {
                    return;
                }
                //
                if (defKey == null)
                {
                    defKey = new ManualAutoAddData();
                }

                defKey.startTime      = startTime;
                defKey.durationSecond = duration;

                defKey.dayOfWeekFlag = 0;
                if (checkBox_week0.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x01;
                }
                if (checkBox_week1.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x02;
                }
                if (checkBox_week2.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x04;
                }
                if (checkBox_week3.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x08;
                }
                if (checkBox_week4.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x10;
                }
                if (checkBox_week5.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x20;
                }
                if (checkBox_week6.IsChecked == true)
                {
                    defKey.dayOfWeekFlag |= 0x40;
                }

                //開始時刻を0~24時に調整する。
                defKey.RegulateData();

                defKey.IsEnabled = checkBox_keyDisabled.IsChecked != true;

                defKey.title = textBox_title.Text;

                ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item;
                defKey.stationName       = chItem.ServiceName;
                defKey.originalNetworkID = chItem.ONID;
                defKey.transportStreamID = chItem.TSID;
                defKey.serviceID         = chItem.SID;
                defKey.recSetting        = recSettingView.GetRecSetting();

                if (chgFlag == true)
                {
                    bool ret = MenuUtil.AutoAddChange(CommonUtil.ToList(defKey));
                    CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を変更");
                }
                else
                {
                    bool ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(defKey));
                    CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を追加");
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            DialogResult = true;
        }
예제 #29
0
파일: MenuUtil.cs 프로젝트: nekopanda/EDCB
 public static bool?OpenChangeManualAutoAddDialog(ManualAutoAddData Data, Control Owner)
 {
     return(OpenManualAutoAddDialog(Data, Owner));
 }