コード例 #1
0
        protected void autoadd_add_chg(ExecutedRoutedEventArgs e, int code)
        {
            bool ret = false;

            try
            {
                AutoAddData data = GetData();
                if (data != null && CheckAutoAddChange(e, code) == 0)
                {
                    if (code == 0)
                    {
                        ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(data));
                        if (ret == true)
                        {
                            //割り当てられたIDが欲しいだけなのでEpgTimer内のもろもろは再構築せず、Srvからデータだけ取得する。
                            SetData(AutoAddData.GetAutoAddListSrv(typeof(S)).LastOrDefault() as S);
                            SetViewMode(AutoAddMode.Change);
                        }
                    }
                    else
                    {
                        ret = MenuUtil.AutoAddChange(CommonUtil.ToList(data));
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            StatusManager.StatusNotifySet(ret, AutoAddString + "を" + cmdMsg[code]);
        }
コード例 #2
0
        protected virtual int CheckAutoAddChange(ExecutedRoutedEventArgs e, int proc)
        {
            if (proc != 3)
            {
                if (CmdExeUtil.IsDisplayKgMessage(e) == true)
                {
                    if (MessageBox.Show(AutoAddString + "を" + cmdMsg[proc] + "します。\r\nよろしいですか?", cmdMsg[proc] + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                    {
                        return(-2);
                    }
                }
            }
            else
            {
                if (CmdExeUtil.CheckAllProcCancel(e, CommonUtil.ToList(autoAddData), true) == true)
                {
                    return(-1);
                }
            }

            if (proc != 0)
            {
                if (autoAddData == null)
                {
                    MessageBox.Show("項目がありません。\r\n" + "既に削除されています。", "データエラー", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    SetViewMode(AutoAddMode.NewAdd);
                    return(1);
                }
            }

            return(0);
        }
コード例 #3
0
 public static bool ReserveChangeResModeAutoAdded(List <ReserveData> itemList, AutoAddData autoAdd)
 {
     if (ReserveDelete(itemList, false) == false)
     {
         return(false);
     }
     return(AutoAddChange(CommonUtil.ToList(autoAdd), false, false, true, true));
 }
コード例 #4
0
        private void button_del2_click(object sender, ExecutedRoutedEventArgs e)
        {
            if (CheckAutoAddChange(e, 3) == false)
            {
                return;
            }
            //
            bool ret = MenuUtil.AutoAddDelete(CommonUtil.ToList(defKey), cmdDeleteType.Delete2);

            CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を予約ごと削除");
            DialogResult = true;
        }
コード例 #5
0
ファイル: SearchWindow.xaml.cs プロジェクト: nekopanda/EDCB
        private void button_chg_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e)
        {
            bool ret = false;

            try
            {
                ret = CheckAutoAddChange(e, 1);
                if (ret == true)
                {
                    ret = MenuUtil.AutoAddChange(CommonUtil.ToList(this.GetAutoAddData()));
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を変更", this);
        }
コード例 #6
0
        public RecInfoDescWindow(RecFileInfo info = null)
        {
            InitializeComponent();

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

                //最初にコマンド集の初期化
                mc = new CmdExeRecinfo(this);
                mc.SetFuncGetDataList(isAll => CommonUtil.ToList(recInfo));

                //コマンド集に無いもの,変更するもの
                mc.AddReplaceCommand(EpgCmds.Play, (sender, e) => CommonManager.Instance.FilePlay(recInfo.RecFilePath), (sender, e) => e.CanExecute = recInfo != null);
                mc.AddReplaceCommand(EpgCmds.Cancel, (sender, e) => this.Close());
                mc.AddReplaceCommand(EpgCmds.BackItem, (sender, e) => MoveViewNextItem(-1));
                mc.AddReplaceCommand(EpgCmds.NextItem, (sender, e) => MoveViewNextItem(1));
                mc.AddReplaceCommand(EpgCmds.DeleteInDialog, info_del, (sender, e) => e.CanExecute = recInfo != null && recInfo.ProtectFlag == 0);
                mc.AddReplaceCommand(EpgCmds.ChgOnOffCheck, (sender, e) => EpgCmds.ProtectChange.Execute(null, this));

                //コマンド集からコマンドを登録
                mc.ResetCommandBindings(this);

                //ボタンの設定
                mBinds.View = CtxmCode.RecInfoView;
                mBinds.SetCommandToButton(button_play, EpgCmds.Play);
                mBinds.SetCommandToButton(button_cancel, EpgCmds.Cancel);
                mBinds.SetCommandToButton(button_up, EpgCmds.BackItem);
                mBinds.SetCommandToButton(button_down, EpgCmds.NextItem);
                mBinds.SetCommandToButton(button_del, EpgCmds.DeleteInDialog);
                mBinds.AddInputCommand(EpgCmds.ProtectChange);//ショートカット登録
                RefreshMenu();

                button_del.ToolTipOpening += (sender, e) => button_del.ToolTip = (button_del.ToolTip as string +
                                                                                  (IniFileHandler.GetPrivateProfileBool("SET", "RecInfoDelFile", false, SettingPath.CommonIniPath) ?
                                                                                   "\r\n録画ファイルが存在する場合は一緒に削除されます。" : "")).Trim();

                grid_protect.ToolTipOpening += (sender, e) => grid_protect.ToolTip =
                    ("" + MenuBinds.GetInputGestureTextView(EpgCmds.ProtectChange, mBinds.View) + "\r\nプロテクト設定/解除").Trim();

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

                ChangeData(info);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
        }
コード例 #7
0
        private void button_add_reserve_Click(object sender, ExecutedRoutedEventArgs e)
        {
            if (CmdExeUtil.IsDisplayKgMessage(e) == true)
            {
                if (MessageBox.Show("予約を追加します。\r\nよろしいですか?", "追加の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                {
                    return;
                }
            }
            bool ret = MenuUtil.ReserveAdd(CommonUtil.ToList(eventInfo), recSettingView);

            CommonManager.Instance.StatusNotifySet(ret, "録画予約を追加");

            if (ret == false)
            {
                return;
            }
            DialogResult = true;
        }
コード例 #8
0
        private void reserve_proc(ExecutedRoutedEventArgs e, int proc)
        {
            if (CmdExeUtil.IsMessageBeforeCommand(e) == true)
            {
                if (MessageBox.Show("予約を" + cmdMsg[proc] + "します。\r\nよろしいですか?", cmdMsg[proc] + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                {
                    return;
                }
            }

            bool ret = false;

            if (proc == 0)
            {
                ret = MenuUtil.ReserveAdd(CommonUtil.ToList(eventInfo), recSettingView);
            }
            else
            {
                List <ReserveData> list = GetReserveList();
                if (proc == 1)
                {
                    RecSettingData recSet = recSettingView.GetRecSetting();
                    list.ForEach(data => data.RecSetting = recSet);
                    ret = MenuUtil.ReserveChange(list);
                }
                else
                {
                    ret = MenuUtil.ReserveDelete(list);
                }
            }

            StatusManager.StatusNotifySet(ret, "録画予約を" + cmdMsg[proc]);

            if (ret == false)
            {
                return;
            }
            if (KeepWin == false)
            {
                this.Close();
            }
        }
コード例 #9
0
ファイル: SearchWindow.xaml.cs プロジェクト: nekopanda/EDCB
        private void button_del_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e)
        {
            bool ret = false;

            try
            {
                ret = CheckAutoAddChange(e, 2);
                if (ret == true)
                {
                    ret = MenuUtil.AutoAddDelete(CommonUtil.ToList(CommonManager.Instance.DB.EpgAutoAddList[autoAddID]));
                    if (ret == true)
                    {
                        SetViewMode(SearchMode.NewAdd);
                        this.autoAddID = 0;
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を削除", this);
        }
コード例 #10
0
        private void button_del_reserve_Click(object sender, ExecutedRoutedEventArgs e)
        {
            if (CmdExeUtil.IsDisplayKgMessage(e) == true)
            {
                if (MessageBox.Show("この予約を削除します。\r\nよろしいですか?", "削除の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
                {
                    return;
                }
            }

            if (CheckExistReserveItem() == false)
            {
                return;
            }

            bool ret = MenuUtil.ReserveDelete(CommonUtil.ToList(reserveInfo));

            CommonManager.Instance.StatusNotifySet(ret, "録画予約を削除");

            DialogResult = true;
        }
コード例 #11
0
ファイル: SearchWindow.xaml.cs プロジェクト: nekopanda/EDCB
        private void button_add_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e)
        {
            bool ret = false;

            try
            {
                ret = CheckAutoAddChange(e, 0);
                if (ret == true)
                {
                    //一覧画面非表示の状態から実施する場合のためのコード
                    if (autoAddView.IsVisible == false && CommonManager.Instance.DB.EpgAutoAddList.Count == 0)
                    {
                        CommonManager.Instance.DB.SetUpdateNotify((UInt32)UpdateNotifyItem.AutoAddEpgInfo);
                        CommonManager.Instance.DB.ReloadEpgAutoAddInfo();
                    }

                    List <uint> oldlist = CommonManager.Instance.DB.EpgAutoAddList.Keys.ToList();

                    ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(this.GetAutoAddData()));
                    if (ret == true)
                    {
                        //以降の処理をEpgTimerSrvからの更新通知後に実行すればReload減らせるが、トラブル増えそうなのでこのまま。
                        CommonManager.Instance.DB.SetUpdateNotify((UInt32)UpdateNotifyItem.AutoAddEpgInfo);
                        CommonManager.Instance.DB.ReloadEpgAutoAddInfo();

                        List <uint> newlist = CommonManager.Instance.DB.EpgAutoAddList.Keys.ToList();
                        List <uint> diflist = newlist.Except(oldlist).ToList();

                        if (diflist.Count == 1)
                        {
                            ChangeAutoAddData(CommonManager.Instance.DB.EpgAutoAddList[diflist[0]], false);
                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を追加", this);
        }
コード例 #12
0
ファイル: SearchWindow.xaml.cs プロジェクト: nekopanda/EDCB
        private void SearchPg(bool addSearchLog = false)
        {
            if (addSearchLog == true)
            {
                searchKeyView.AddSearchLog();
            }

            lstCtrl.ReloadInfoData(dataList =>
            {
                EpgSearchKeyInfo key = GetSearchKey();
                key.keyDisabledFlag  = 0; //無効解除
                var list             = new List <EpgEventInfo>();

                cmd.SendSearchPg(CommonUtil.ToList(key), ref list);

                lstCtrl.dataList.AddFromEventList(list, false, true);
                return(true);
            });

            UpdateStatus();
            SetRecSettingTabHeader(null, null);
            WindowTitleSet();
        }
コード例 #13
0
ファイル: SearchWindow.xaml.cs プロジェクト: friendgo777/EDCB
        private void SearchPg(bool addSearchLog = false)
        {
            if (addSearchLog == true)
            {
                searchKeyView.AddSearchLog();
            }

            lstCtrl.ReloadInfoData(dataList =>
            {
                EpgSearchKeyInfo key = GetSearchKey();
                key.keyDisabledFlag  = 0; //無効解除
                var list             = new List <EpgEventInfo>();

                CommonManager.CreateSrvCtrl().SendSearchPg(CommonUtil.ToList(key), ref list);

                dataList.AddRange(list.ToSearchList(true));
                return(true);
            });

            UpdateStatus();
            SetRecSettingTabHeader(false);
            SetWindowTitle();
        }
コード例 #14
0
        private void reserve_del(object sender, ExecutedRoutedEventArgs e)
        {
            if (CheckReserveChange(e, 2) == false)
            {
                return;
            }

            bool ret = MenuUtil.ReserveDelete(CommonUtil.ToList(reserveInfo));

            StatusManager.StatusNotifySet(ret, "録画予約を削除");
            if (ret == false)
            {
                return;
            }

            if (KeepWin == false)
            {
                this.Close();
                return;
            }

            SetAddMode(AddMode.Re_Add);
            SetReserveTabHeader(false);
        }
コード例 #15
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);
        }
コード例 #16
0
        private void reserve_add_chg(ExecutedRoutedEventArgs e, int proc)
        {
            try
            {
                if (CheckReserveChange(e, proc) == false)
                {
                    return;
                }

                var resInfo = reserveInfo.DeepClone();

                if (resModeProgram == true)
                {
                    if (GetReserveTimeInfo(ref resInfo) == -2)
                    {
                        MessageBox.Show("終了日時が開始日時より前です");
                        return;
                    }

                    //サービスや時間が変わったら、個別予約扱いにする。タイトルのみ変更は見ない。
                    if (resInfo.EventID != 0xFFFF || reserveInfo.IsSamePg(resInfo) == false)
                    {
                        resInfo.EventID = 0xFFFF;
                        resInfo.ReleaseAutoAdd();
                    }
                }
                else
                {
                    //EPG予約に変える場合、またはEPG予約で別の番組に変わる場合
                    if (eventInfoNow != null && (reserveInfo.IsManual == true || reserveInfo.IsSamePg(eventInfoNow) == false))
                    {
                        //基本的にAddReserveEpgWindowと同じ処理内容
                        if (MenuUtil.CheckReservable(CommonUtil.ToList(eventInfoNow)) == null)
                        {
                            return;
                        }
                        eventInfoNow.ConvertToReserveData(ref resInfo);
                        resInfo.ReleaseAutoAdd();
                    }
                }
                if (checkBox_releaseAutoAdd.IsChecked == true)
                {
                    resInfo.ReleaseAutoAdd();
                }

                resInfo.RecSetting = recSettingView.GetRecSetting();

                bool           ret    = false;
                HashSet <uint> oldset = null;
                if (proc == 0)
                {
                    resInfo.Comment = "";
                    oldset          = new HashSet <uint>(CommonManager.Instance.DB.ReserveList.Keys);
                    ret             = MenuUtil.ReserveAdd(CommonUtil.ToList(resInfo));
                    StatusManager.StatusNotifySet(ret, "録画予約を追加");
                }
                else
                {
                    ret = MenuUtil.ReserveChange(CommonUtil.ToList(resInfo));
                    StatusManager.StatusNotifySet(ret, "録画予約を変更");
                }
                if (ret == false)
                {
                    return;
                }

                if (KeepWin == false)
                {
                    this.Close();
                    return;
                }

                if (proc == 0)
                {
                    var list = new List <ReserveData>();
                    CommonManager.CreateSrvCtrl().SendEnumReserve(ref list);
                    var newlist = list.Where(rs => oldset.Contains(rs.ReserveID) == false).ToList();
                    if (newlist.Count == 1)
                    {
                        ChangeData(newlist[0]);
                    }
                }
                SetReserveTabHeader(false);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
        }
コード例 #17
0
        private void button_chg_reserve_Click(object sender, ExecutedRoutedEventArgs e)
        {
            try
            {
                if (CmdExeUtil.IsDisplayKgMessage(e) == true)
                {
                    bool change_proc = false;
                    switch (addMode)
                    {
                    case AddMode.Add:
                        change_proc = (MessageBox.Show("予約を追加します。\r\nよろしいですか?", "予約の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK);
                        break;

                    case AddMode.Re_Add:
                        change_proc = (MessageBox.Show("この内容で再予約します。\r\nよろしいですか?", "再予約の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK);
                        break;

                    case AddMode.Change:
                        change_proc = (MessageBox.Show("この予約を変更します。\r\nよろしいですか?", "変更の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK);
                        break;
                    }
                    if (change_proc == false)
                    {
                        return;
                    }
                }

                if (addMode == AddMode.Change && CheckExistReserveItem() == false)
                {
                    return;
                }

                //ダイアログを閉じないときはreserveInfoを変更しないよう注意する
                if (ReserveMode == UIReserveMode.Program)
                {
                    var resInfo = new ReserveData();
                    if (GetReserveTimeInfo(ref resInfo) == -2)
                    {
                        MessageBox.Show("終了日時が開始日時より前です");
                        return;
                    }

                    //reserveInfo取得前に保存する。サービスや時間が変わったら、個別予約扱いにする。タイトルのみ変更は見ない。
                    bool chgManualMode = !CtrlCmdDefEx.EqualsPg(resInfo, reserveInfo, false, true);

                    GetReserveTimeInfo(ref reserveInfo);
                    if (reserveInfo.EventID != 0xFFFF || chgManualMode == true)
                    {
                        reserveInfo.EventID = 0xFFFF;
                        reserveInfo.Comment = "";
                    }
                    reserveInfo.StartTimeEpg = reserveInfo.StartTime;
                }
                else if (ReserveMode == UIReserveMode.EPGManual)
                {
                    //EPG予約に変える場合、またはEPG予約で別の番組に変わる場合
                    if (eventInfoNew != null)
                    {
                        //基本的にAddReserveEpgWindowと同じ処理内容
                        if (MenuUtil.IsEnableReserveAdd(eventInfoNew) == false)
                        {
                            return;
                        }
                        eventInfoNew.ConvertToReserveData(ref reserveInfo);
                        reserveInfo.Comment = "";
                    }
                    // 自動予約から個別予約に変える場合
                    else if (GetReserveModeFromInfo() == UIReserveMode.EPGAuto)
                    {
                        reserveInfo.Comment = "";
                    }
                }

                reserveInfo.RecSetting = recSettingView.GetRecSetting();

                if (addMode == AddMode.Change)
                {
                    bool ret = MenuUtil.ReserveChange(CommonUtil.ToList(reserveInfo));
                    CommonManager.Instance.StatusNotifySet(ret, "録画予約を変更");
                }
                else
                {
                    bool ret = MenuUtil.ReserveAdd(CommonUtil.ToList(reserveInfo));
                    CommonManager.Instance.StatusNotifySet(ret, "録画予約を追加");
                }

                // EPG自動予約以外になったら戻せないようにしておく
                if (ReserveMode != UIReserveMode.EPGAuto)
                {
                    CanSelectAutoAdd = false;
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }

            DialogResult = true;
        }
コード例 #18
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;
        }