private void listView_recinfo_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (listView_recinfo.SelectedItem != null) { if (Settings.Instance.PlayDClick == false) { RecInfoItem info = listView_recinfo.SelectedItem as RecInfoItem; RecInfoDescWindow dlg = new RecInfoDescWindow(); dlg.Owner = (Window)PresentationSource.FromVisual(this).RootVisual; RecFileInfo extraRecInfo = new RecFileInfo(); if (CommonManager.CreateSrvCtrl().SendGetRecInfo(info.RecInfo.ID, ref extraRecInfo) == ErrCode.CMD_SUCCESS) { info.RecInfo.ProgramInfo = extraRecInfo.ProgramInfo; info.RecInfo.ErrInfo = extraRecInfo.ErrInfo; } dlg.SetRecInfo(info.RecInfo); dlg.ShowDialog(); } else { RecInfoItem info = listView_recinfo.SelectedItem as RecInfoItem; if (info.RecInfo.RecFilePath.Length > 0) { try { CommonManager.Instance.FilePlay(info.RecInfo.RecFilePath); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } }
private void button_del_Click(object sender, RoutedEventArgs e) { if (recInfo != null) { if (Settings.Instance.ConfirmDelRecInfo) { if ((recInfo.RecFilePath.Length > 0 || Settings.Instance.ConfirmDelRecInfoAlways) && MessageBox.Show("削除してよろしいですか?" + (recInfo.RecFilePath.Length > 0 ? "\r\n\r\n「録画ファイルも削除する」設定が有効な場合、ファイルも削除されます。" : ""), "確認", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.OK) != MessageBoxResult.OK) { return; } } try { CommonManager.CreateSrvCtrl().SendDelRecInfo(new List <uint>() { recInfo.ID }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } DialogResult = false; }
/// <summary> /// 指定IDの番組情報を取得する。できるだけServiceEventListを利用する /// </summary> public EpgEventInfo GetPgInfo(ushort onid, ushort tsid, ushort sid, ushort eventID, bool cacheOnly) { var eventInfo = new EpgEventInfo(); EpgServiceAllEventInfo allInfo; if (serviceEventList.TryGetValue(CommonManager.Create64Key(onid, tsid, sid), out allInfo)) { //過去でない番組情報は必ずID順になっている eventInfo.event_id = eventID; int index = allInfo.eventList.BinarySearch(eventInfo, new EpgEventInfoComparer()); if (index >= 0) { return(allInfo.eventList[index]); } } try { if (cacheOnly == false && CommonManager.CreateSrvCtrl().SendGetPgInfo(CommonManager.Create64PgKey(onid, tsid, sid, eventID), ref eventInfo) == ErrCode.CMD_SUCCESS) { return(eventInfo); } } catch { } return(null); }
private void MenuItem_Click_Priority(object sender, RoutedEventArgs e) { if (listView_result.SelectedItem != null) { List <ReserveData> list = new List <ReserveData>(); foreach (SearchItem item in listView_result.SelectedItems) { if (item.IsReserved == true) { item.ReserveInfo.RecSetting.Priority = byte.Parse((string)((MenuItem)sender).Tag); list.Add(item.ReserveInfo); } } if (list.Count > 0) { try { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約変更でエラーが発生しました。"); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } } } }
public void ReadRecFileAppend(IEnumerable <RecFileInfo> rlist = null) { var list = (rlist ?? RecFileInfo.Values).Where(info => recFileAppendList.ContainsKey(info.ID) == false).ToList(); if (list.Count == 0) { return; } try { var extraDatalist = new List <RecFileInfo>(); if (CommonManager.CreateSrvCtrl().SendGetRecInfoList(list.Select(info => info.ID).ToList(), ref extraDatalist) == ErrCode.CMD_SUCCESS) { extraDatalist.ForEach(item => recFileAppendList[item.ID] = new RecFileInfoAppend(item)); } } catch { } //何か問題があった場合でも何度もSendGetRecInfoList()しないよう残りも全て登録してしまう。 foreach (var item in list.Where(info => recFileAppendList.ContainsKey(info.ID) == false)) { recFileAppendList[item.ID] = new RecFileInfoAppend(item, false); } }
/// <summary>録画済み情報の更新があれば再読み込みする</summary> public ErrCode ReloadRecFileInfo(bool immediately = false, bool noRaiseChanged = false) { return(ReloadWork(UpdateNotifyItem.RecInfo, immediately, noRaiseChanged, ret => { RecFileInfo = new Dictionary <uint, RecFileInfo>(); RecFileUIDList = new Dictionary <UInt64, List <RecFileInfo> >(); var list = new List <RecFileInfo>(); try { ret = CommonManager.CreateSrvCtrl().SendEnumRecInfoBasic(ref list); } catch { ret = ErrCode.CMD_ERR; } if (ret != ErrCode.CMD_SUCCESS) { return ret; } list.ForEach(info => RecFileInfo[info.ID] = info); //追加の検索用リスト RecFileUIDList = list.GroupBy(item => item.CurrentPgUID()).ToDictionary(gr => gr.Key, gr => gr.ToList()); //無効データ(通信エラーなどで仮登録されたもの)と録画結果一覧に無いデータを削除して再構築。 recFileAppendList = recFileAppendList.Where(item => item.Value.IsValid == true && RecFileInfo.ContainsKey(item.Key) == true).ToDictionary(item => item.Key, item => item.Value); return ret; })); }
private void ReloadList() { string notifyLog = ""; if (CommonManager.CreateSrvCtrl().SendGetNotifyLog(Math.Max(Settings.Instance.NotifyLogMax, 1), ref notifyLog) == ErrCode.CMD_SUCCESS) { //サーバに保存されたログを使う listView_log.ItemsSource = notifyLog.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(text => new NotifySrvInfoItem(text)).ToList(); textBox_logMax.IsEnabled = true; } else { //クライアントで蓄積したログを使う listView_log.ItemsSource = CommonManager.Instance.NotifyLogList.Select(info => new NotifySrvInfoItem(info)).ToList(); textBox_logMax.IsEnabled = false; } if (_lastHeaderClicked != null) { Sort(_lastHeaderClicked, _lastDirection); } else { string header = ((Binding)gridView_log.Columns[0].DisplayMemberBinding).Path.Path; Sort(header, _lastDirection); _lastHeaderClicked = header; } }
private void cm_chg_priority_Click(object sender, RoutedEventArgs e) { try { List <ReserveData> list = new List <ReserveData>(); foreach (SearchItem item in listView_event.SelectedItems) { if (item.IsReserved == true) { item.ReserveInfo.RecSetting.Priority = (byte)(sender == priority_1 ? 1 : sender == priority_2 ? 2 : sender == priority_3 ? 3 : sender == priority_4 ? 4 : 5); list.Add(item.ReserveInfo); } } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約変更でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary>SPKeyが無ければ指定サービスのみ過去EPGを読み込む</summary> public ErrCode LoadEpgArcData(DateTime start, DateTime end, ref List <EpgServiceEventInfo> list, IEnumerable <ulong> keys = null) { try { List <long> keyList; if (keys == null || keys.Any(key => EpgServiceInfo.IsSPKey(key))) { keyList = new List <long> { 0xFFFFFFFFFFFF, 0xFFFFFFFFFFFF }; } else { keyList = keys.Select(key => new List <long> { 0, (long)key }).SelectMany(lst => lst).ToList(); } //EDCB系の時刻は、UTCじゃないけどUTC扱いなので keyList.Add(start.ToFileTimeUtc()); keyList.Add(end == DateTime.MaxValue ? long.MaxValue : end.ToFileTimeUtc()); return(CommonManager.CreateSrvCtrl().SendEnumPgArc(keyList, ref list)); } catch { return(ErrCode.CMD_ERR); } }
/// <summary> /// 自動予約登録情報の更新があれば再読み込みする /// </summary> /// <returns></returns> public ErrCode ReloadManualAutoAddInfo() { ErrCode ret = ErrCode.CMD_SUCCESS; if (updateAutoAddManualInfo) { manualAutoAddList = new Dictionary <uint, ManualAutoAddData>(); var list = new List <ManualAutoAddData>(); try { ret = ErrCode.CMD_ERR; ret = CommonManager.CreateSrvCtrl().SendEnumManualAdd(ref list); } catch { } if (ret == ErrCode.CMD_SUCCESS) { foreach (ManualAutoAddData info in list) { manualAutoAddList.Add(info.dataID, info); } updateAutoAddManualInfo = false; } } return(ret); }
public EpgEventInfo GetPgInfo(bool isSrv = true) { //まずは手持ちのデータを探す EpgEventInfo pg = MenuUtil.GetPgInfoUidAll(CurrentPgUID()); if (pg != null || isSrv == false) { return(pg); } //過去番組情報を探してみる if (PgStartTime >= CommonManager.Instance.DB.EventTimeMinArc) { var arcList = new List <EpgServiceEventInfo>(); CommonManager.Instance.DB.LoadEpgArcData(PgStartTime, PgStartTime.AddSeconds(1), ref arcList, Create64Key().IntoList()); if (arcList.Any()) { return(arcList[0].eventList.FirstOrDefault()); } } //現在番組情報も探してみる ※EPGデータ未読み込み時で、録画直後の場合 if (CommonManager.Instance.DB.IsEpgLoaded == false) { var list = new List <EpgEventInfo>(); try { CommonManager.CreateSrvCtrl().SendGetPgInfoList(Create64PgKey().IntoList(), ref list); } catch { } return(list.FirstOrDefault()); } return(null); }
public void ReadRecFileAppend(IEnumerable <RecFileInfo> rlist = null) { if (recFileAppendList == null) { recFileAppendList = new Dictionary <uint, RecFileInfoAppend>(); } var list = (rlist ?? RecFileInfo.Values).Where(info => recFileAppendList.ContainsKey(info.ID) == false).ToList(); if (list.Count == 0) { return; } try { var extraDatalist = new List <RecFileInfo>(); if (CommonManager.CreateSrvCtrl().SendGetRecInfoList(list.Select(info => info.ID).ToList(), ref extraDatalist) == ErrCode.CMD_SUCCESS) { extraDatalist.ForEach(item => recFileAppendList.Add(item.ID, new RecFileInfoAppend(item))); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } //何か問題があった場合でも何度もSendGetRecInfoList()しないよう残りも全て登録してしまう。 foreach (var item in list.Where(info => recFileAppendList.ContainsKey(info.ID) == false)) { recFileAppendList.Add(item.ID, new RecFileInfoAppend(item, false)); } }
void setRecMode(int redMode0) { try { List <ReserveData> list = new List <ReserveData>(); foreach (ReserveItem item in listView_reserve.SelectedItems) { ReserveData reserveInfo = item.ReserveInfo; reserveInfo.RecSetting.RecMode = BitConverter.GetBytes(redMode0)[0]; list.Add(reserveInfo); } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "チューナー一覧の取得でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
private void button_del_Click(object sender, RoutedEventArgs e) { try { List <UInt32> list = new List <UInt32>(); foreach (ReserveItem item in listView_reserve.SelectedItems) { ReserveData reserveInfo = item.ReserveInfo; list.Add(reserveInfo.ReserveID); } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendDelReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "チューナー一覧の取得でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
/// <summary>録画済み情報の更新があれば再読み込みする</summary> public ErrCode ReloadRecFileInfo(bool immediately = false) { if (immediately == true) { SetUpdateNotify(UpdateNotifyItem.RecInfo); } var ret = ErrCode.CMD_SUCCESS; try { if (updateRecInfo == true) { RecFileInfo = new Dictionary <uint, RecFileInfo>(); var list = new List <RecFileInfo>(); ret = CommonManager.CreateSrvCtrl().SendEnumRecInfoBasic(ref list); if (ret != ErrCode.CMD_SUCCESS) { return(ret); } list.ForEach(info => RecFileInfo.Add(info.ID, info)); ClearRecFileAppend(); updateRecInfo = false; } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return(ret); }
void saveItemOrder() { if (resultListMoved == null) { return; } // List <uint> dataIdList1 = new List <uint>(); foreach (EpgAutoDataItem item1 in resultListMoved) { dataIdList1.Add(item1.EpgAutoAddInfo.dataID); } dataIdList1.Sort(); // List <EpgAutoAddData> addList1 = new List <EpgAutoAddData>(); for (int i1 = 0; i1 < resultListMoved.Count; i1++) { EpgAutoDataItem item1 = resultListMoved[i1]; item1.EpgAutoAddInfo.dataID = dataIdList1[i1]; addList1.Add(item1.EpgAutoAddInfo); } if (CommonManager.CreateSrvCtrl().SendChgEpgAutoAdd(addList1) != ErrCode.CMD_SUCCESS) { MessageBox.Show("変更に失敗しました"); } }
private void priority_Click(object sender, RoutedEventArgs e) { try { byte priority = byte.Parse(((MenuItem)sender).Name.Substring("priority_".Length)); List <ReserveData> list = new List <ReserveData>(); foreach (ReserveItem item in listView_reserve.SelectedItems) { ReserveData reserveInfo = item.ReserveInfo; reserveInfo.RecSetting.Priority = priority; list.Add(reserveInfo); } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "チューナー一覧の取得でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
/// <summary>自動予約登録情報の更新があれば再読み込みする</summary> public ErrCode ReloadManualAutoAddInfo(bool immediately = false) { if (immediately == true) { SetUpdateNotify(UpdateNotifyItem.AutoAddManualInfo); } var ret = ErrCode.CMD_SUCCESS; try { if (updateAutoAddManualInfo == true) { ManualAutoAddList = new Dictionary <uint, ManualAutoAddData>(); var list = new List <ManualAutoAddData>(); ret = CommonManager.CreateSrvCtrl().SendEnumManualAdd(ref list); if (ret != ErrCode.CMD_SUCCESS) { return(ret); } list.ForEach(info => ManualAutoAddList.Add(info.dataID, info)); updateAutoAddManualInfo = false; } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return(ret); }
private void button_del_Click(object sender, RoutedEventArgs e) { try { if (listView_recinfo.SelectedItems.Count > 0) { if ((sender is ListViewItem) || Settings.Instance.ConfirmDelRecInfo) { bool hasPath = listView_recinfo.SelectedItems.Cast <RecInfoItem>().Any(info => info.RecFilePath.Length > 0); if ((hasPath || (sender is ListViewItem) || Settings.Instance.ConfirmDelRecInfoAlways) && MessageBox.Show(listView_recinfo.SelectedItems.Count + "項目を削除してよろしいですか?" + (hasPath ? "\r\n\r\n「録画ファイルも削除する」設定が有効な場合、ファイルも削除されます。" : ""), "確認", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.OK) != MessageBoxResult.OK) { return; } } List <UInt32> IDList = new List <uint>(); foreach (RecInfoItem info in listView_recinfo.SelectedItems) { IDList.Add(info.RecInfo.ID); } CommonManager.CreateSrvCtrl().SendDelRecInfo(IDList); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void cm_del_Click(object sender, RoutedEventArgs e) { try { List <UInt32> list = new List <UInt32>(); foreach (SearchItem item in listView_event.SelectedItems) { if (item.IsReserved == true) { list.Add(item.ReserveInfo.ReserveID); } } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendDelReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約削除でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
/// <summary>PlugInFileの再読み込み指定があればする</summary> public ErrCode ReloadPlugInFile(bool immediately = false) { if (immediately == true) { SetUpdateNotify(UpdateNotifyItem.PlugInFile); } var ret = ErrCode.CMD_SUCCESS; try { if (updatePlugInFile == true) { var recNameList = new List <string>(); var writeList = new List <string>(); RecNamePlugInList = recNameList; WritePlugInList = writeList; ret = CommonManager.CreateSrvCtrl().SendEnumPlugIn(1, ref recNameList); if (ret != ErrCode.CMD_SUCCESS) { return(ret); } ret = CommonManager.CreateSrvCtrl().SendEnumPlugIn(2, ref writeList); if (ret != ErrCode.CMD_SUCCESS) { return(ret); } updatePlugInFile = false; } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return(ret); }
public RecFileInfoAppend GetRecFileAppend(RecFileInfo master, bool UpdateDB = false) { if (master == null) { return(null); } if (recFileAppendList == null) { recFileAppendList = new Dictionary <uint, RecFileInfoAppend>(); } RecFileInfoAppend retv = null; if (recFileAppendList.TryGetValue(master.ID, out retv) == false) { //UpdataDBのときは、取得出来なくても取得済み扱いにする。 if (UpdateDB == true) { ReadRecFileAppend(RecFileInfo.Values.Where(info => info.HasErrPackets == true)); recFileAppendList.TryGetValue(master.ID, out retv); } else { var extraRecInfo = new RecFileInfo(); if (CommonManager.CreateSrvCtrl().SendGetRecInfo(master.ID, ref extraRecInfo) == ErrCode.CMD_SUCCESS) { retv = new RecFileInfoAppend(extraRecInfo); recFileAppendList.Add(master.ID, retv); } } } return(retv ?? new RecFileInfoAppend(master)); }
private void cm_chg_no_Click(object sender, RoutedEventArgs e) { try { var list = new List <ReserveData>(); foreach (SearchItem item in listView_event.SelectedItems) { if (item.IsReserved) { byte recMode = item.ReserveInfo.RecSetting.GetRecMode(); if (item.ReserveInfo.RecSetting.IsNoRec() == false) { //録画モード情報を維持して無効化 recMode = (byte)(CommonManager.Instance.DB.FixNoRecToServiceOnly ? 5 : 5 + (recMode + 4) % 5); } item.ReserveInfo.RecSetting.RecMode = recMode; list.Add(item.ReserveInfo); } } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約変更でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// 録画済み情報の更新があれば再読み込みする /// </summary> /// <returns></returns> public ErrCode ReloadrecFileInfo() { ErrCode ret = ErrCode.CMD_SUCCESS; if (updateRecInfo) { recFileInfo = new Dictionary <uint, RecFileInfo>(); var list = new List <RecFileInfo>(); try { ret = ErrCode.CMD_ERR; ret = CommonManager.CreateSrvCtrl().SendEnumRecInfoBasic(ref list); if (ret == ErrCode.CMD_NON_SUPPORT) { ret = ErrCode.CMD_ERR; ret = CommonManager.CreateSrvCtrl().SendEnumRecInfo(ref list); } } catch { } if (ret == ErrCode.CMD_SUCCESS) { foreach (RecFileInfo info in list) { recFileInfo.Add(info.ID, info); } updateRecInfo = false; } } return(ret); }
private void recmode_Click(object sender, RoutedEventArgs e) { try { List <ReserveData> list = new List <ReserveData>(); foreach (ReserveItem item in listView_reserve.SelectedItems) { byte recMode = byte.Parse((string)((MenuItem)sender).Tag); if (item.ReserveInfo.RecSetting.IsNoRec()) { //録画モード情報を維持して無効化 recMode = (byte)(CommonManager.Instance.DB.FixNoRecToServiceOnly ? 5 : 5 + (recMode + 4) % 5); } item.ReserveInfo.RecSetting.RecMode = recMode; list.Add(item.ReserveInfo); } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "チューナー一覧の取得でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// baseTimeから1週間分(EventBaseTimeをしきい値とし、このとき上限なし)のEPGデータを読み込む /// </summary> public ErrCode LoadWeeklyEpgData(DateTime baseTime, out Dictionary <ulong, EpgServiceAllEventInfo> list) { list = null; List <EpgServiceEventInfo> arcList = null; ErrCode ret = ReloadEpgData(); if (ret == ErrCode.CMD_SUCCESS) { baseTime = baseTime > EventBaseTime ? EventBaseTime : baseTime; if (baseTime < EventBaseTime) { ret = ErrCode.CMD_ERR; arcList = new List <EpgServiceEventInfo>(); try { //1週間分の過去番組情報 CommonManager.CreateSrvCtrl().SendEnumPgArc( new List <long> { 0xFFFFFFFFFFFF, 0xFFFFFFFFFFFF, baseTime.ToFileTime(), baseTime.AddDays(7).ToFileTime() }, ref arcList); ret = ErrCode.CMD_SUCCESS; } catch { } } } if (ret == ErrCode.CMD_SUCCESS) { list = new Dictionary <ulong, EpgServiceAllEventInfo>(); foreach (var info in serviceEventList) { if (arcList != null) { //対応する過去番組情報があれば付加する int i = arcList.FindIndex(a => info.Key == CommonManager.Create64Key(a.serviceInfo.ONID, a.serviceInfo.TSID, a.serviceInfo.SID)); list.Add(info.Key, new EpgServiceAllEventInfo(info.Value.serviceInfo, info.Value.eventList.Where(a => a.StartTimeFlag != 0 && a.start_time >= baseTime && a.start_time < baseTime.AddDays(7)).ToList(), i < 0 ? new List <EpgEventInfo>() : arcList[i].eventList)); } else { list.Add(info.Key, new EpgServiceAllEventInfo(info.Value.serviceInfo, info.Value.eventList.Where(a => a.StartTimeFlag == 0 || a.start_time >= baseTime).ToList(), info.Value.eventArcList)); } } if (arcList != null) { foreach (EpgServiceEventInfo info in arcList) { ulong id = CommonManager.Create64Key(info.serviceInfo.ONID, info.serviceInfo.TSID, info.serviceInfo.SID); if (list.ContainsKey(id) == false) { //過去番組情報のみ存在 list.Add(id, new EpgServiceAllEventInfo(info.serviceInfo, new List <EpgEventInfo>(), info.eventList)); } } } } return(ret); }
/// <summary> /// 初期値の予約情報をセットする /// </summary> /// <param name="info">[IN] 初期値の予約情報</param> public void SetReserveInfo(ReserveData info) { try { reserveInfo = info; recSettingView.SetDefSetting(info.RecSetting); if (info.EventID != 0xFFFF) { UInt64 key = CommonManager.Create64Key(info.OriginalNetworkID, info.TransportStreamID, info.ServiceID); EpgEventInfo eventInfo = null; if (CommonManager.Instance.DB.ServiceEventList.ContainsKey(key) == true) { foreach (EpgEventInfo eventChkInfo in CommonManager.Instance.DB.ServiceEventList[key].eventList) { if (eventChkInfo.event_id == info.EventID) { eventInfo = eventChkInfo; break; } } } if (eventInfo == null) { UInt64 pgId = CommonManager.Create64PgKey(info.OriginalNetworkID, info.TransportStreamID, info.ServiceID, info.EventID); eventInfo = new EpgEventInfo(); CommonManager.CreateSrvCtrl().SendGetPgInfo(pgId, ref eventInfo); } if (eventInfo != null) { String text = CommonManager.Instance.ConvertProgramText(eventInfo, EventInfoTextMode.All); int searchFrom = 0; Paragraph para = new Paragraph(); string rtext = CommonManager.ReplaceText(text, CommonManager.Instance.ReplaceUrlDictionary); if (rtext.Length == text.Length) { for (Match m = Regex.Match(rtext, @"https?://[0-9A-Za-z!#$%&'()~=@;:?_+\-*/.]+"); m.Success; m = m.NextMatch()) { para.Inlines.Add(text.Substring(searchFrom, m.Index - searchFrom)); Hyperlink h = new Hyperlink(new Run(text.Substring(m.Index, m.Length))); h.MouseLeftButtonDown += new MouseButtonEventHandler(h_MouseLeftButtonDown); h.Foreground = Brushes.Blue; h.Cursor = Cursors.Hand; h.NavigateUri = new Uri(m.Value); para.Inlines.Add(h); searchFrom = m.Index + m.Length; } } para.Inlines.Add(text.Substring(searchFrom)); richTextBox_descInfo.Document = new FlowDocument(para); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
private void cm_chg_recmode_Click(object sender, RoutedEventArgs e) { try { List <ReserveData> list = new List <ReserveData>(); foreach (SearchItem item in listView_event.SelectedItems) { if (item.IsReserved == true) { ReserveData reserveInfo = item.ReserveInfo; byte recMode = 0; if (sender == recmode_all) { recMode = 0; } else if (sender == recmode_only) { recMode = 1; } else if (sender == recmode_all_nodec) { recMode = 2; } else if (sender == recmode_only_nodec) { recMode = 3; } else if (sender == recmode_view) { recMode = 4; } else if (sender == recmode_no) { recMode = 5; } else { return; } reserveInfo.RecSetting.RecMode = recMode; list.Add(reserveInfo); } } if (list.Count > 0) { ErrCode err = CommonManager.CreateSrvCtrl().SendChgReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約変更でエラーが発生しました。"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
private void button_add_reserve_Click(object sender, RoutedEventArgs e) { try { if (eventInfo.StartTimeFlag == 0) { MessageBox.Show("開始時間未定のため予約できません"); if (this.Visibility == System.Windows.Visibility.Visible) { DialogResult = false; } } ReserveData reserveInfo = new ReserveData(); if (eventInfo.ShortInfo != null) { reserveInfo.Title = eventInfo.ShortInfo.event_name; } reserveInfo.StartTime = eventInfo.start_time; reserveInfo.StartTimeEpg = eventInfo.start_time; if (eventInfo.DurationFlag == 0) { reserveInfo.DurationSecond = 10 * 60; } else { reserveInfo.DurationSecond = eventInfo.durationSec; } UInt64 key = CommonManager.Create64Key(eventInfo.original_network_id, eventInfo.transport_stream_id, eventInfo.service_id); if (ChSet5.Instance.ChList.ContainsKey(key) == true) { reserveInfo.StationName = ChSet5.Instance.ChList[key].ServiceName; } reserveInfo.OriginalNetworkID = eventInfo.original_network_id; reserveInfo.TransportStreamID = eventInfo.transport_stream_id; reserveInfo.ServiceID = eventInfo.service_id; reserveInfo.EventID = eventInfo.event_id; reserveInfo.RecSetting = recSettingView.GetRecSetting(); List <ReserveData> list = new List <ReserveData>(); list.Add(reserveInfo); ErrCode err = CommonManager.CreateSrvCtrl().SendAddReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約登録でエラーが発生しました。終了時間がすでに過ぎている可能性があります。"); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } if (this.Visibility == System.Windows.Visibility.Visible) { DialogResult = true; } }
private void AddReserveFromPreset(uint presetID) { try { if (listView_event.SelectedItem == null) { return; } SearchItem item = listView_event.SelectedItem as SearchItem; EpgEventInfo eventInfo = item.EventInfo; if (eventInfo.StartTimeFlag == 0) { MessageBox.Show("開始時間未定のため予約できません"); return; } ReserveData reserveInfo = new ReserveData(); if (eventInfo.ShortInfo != null) { reserveInfo.Title = eventInfo.ShortInfo.event_name; } reserveInfo.StartTime = eventInfo.start_time; reserveInfo.StartTimeEpg = eventInfo.start_time; if (eventInfo.DurationFlag == 0) { reserveInfo.DurationSecond = 10 * 60; } else { reserveInfo.DurationSecond = eventInfo.durationSec; } UInt64 key = CommonManager.Create64Key(eventInfo.original_network_id, eventInfo.transport_stream_id, eventInfo.service_id); if (ChSet5.Instance.ChList.ContainsKey(key) == true) { reserveInfo.StationName = ChSet5.Instance.ChList[key].ServiceName; } reserveInfo.OriginalNetworkID = eventInfo.original_network_id; reserveInfo.TransportStreamID = eventInfo.transport_stream_id; reserveInfo.ServiceID = eventInfo.service_id; reserveInfo.EventID = eventInfo.event_id; reserveInfo.RecSetting = Settings.CreateRecSetting(presetID); List <ReserveData> list = new List <ReserveData>(); list.Add(reserveInfo); ErrCode err = CommonManager.CreateSrvCtrl().SendAddReserve(list); if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show(CommonManager.GetErrCodeText(err) ?? "予約登録でエラーが発生しました。終了時間がすでに過ぎている可能性があります。"); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }