private static bool PromptDeleteRecording(int idSchedule, Program prg) { bool confirmed = false; bool isRec = false; if (prg != null) { isRec = TvDatabase.Schedule.IsScheduleRecording(idSchedule, prg); } else { var tvServer = new TvServer(); VirtualCard vCard; isRec = tvServer.IsRecordingSchedule(idSchedule, out vCard); } if (isRec) { confirmed = SetupConfirmDelRecDialogue(); } else { confirmed = true; } return(confirmed); }
private void LoadDirectory() { GUIControl.ClearControl(GetID, listPriorities.GetID); SqlBuilder sb = new SqlBuilder(StatementType.Select, typeof(Schedule)); sb.AddOrderByField(false, "priority"); SqlStatement stmt = sb.GetStatement(true); IList itemlist = ObjectFactory.GetCollection(typeof(Schedule), stmt.Execute()); int total = 0; foreach (Schedule rec in itemlist) { if (rec.IsSerieIsCanceled(rec.StartTime, rec.IdChannel)) { continue; } GUIListItem item = new GUIListItem(); item.Label = String.Format("{0}.{1}", total, rec.ProgramName); item.TVTag = rec; string strLogo = Utils.GetCoverArt(Thumbs.TVChannel, rec.ReferencedChannel().DisplayName); if (string.IsNullOrEmpty(strLogo)) { strLogo = "defaultVideoBig.png"; } TvServer server = new TvServer(); VirtualCard card; if (server.IsRecordingSchedule(rec.IdSchedule, out card)) { if (rec.ScheduleType != (int)ScheduleRecordingType.Once) { item.PinImage = Thumbs.TvRecordingSeriesIcon; } else { item.PinImage = Thumbs.TvRecordingIcon; } } else if (rec.ReferringConflicts().Count > 0) { item.PinImage = Thumbs.TvConflictRecordingIcon; } item.ThumbnailImage = strLogo; item.IconImageBig = strLogo; item.IconImage = strLogo; listPriorities.Add(item); total++; } //set object count label GUIPropertyManager.SetProperty("#itemcount", Utils.GetObjectCountLabel(total)); GUIControl.SelectItemControl(GetID, listPriorities.GetID, m_iSelectedItem); }
private void OnClick(int iItem) { m_iSelectedItem = GetSelectedItemNo(); GUIListItem item = GetItem(iItem); if (item == null) { return; } Schedule rec = (Schedule)item.TVTag; GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(rec.ProgramName); if (rec.Series == false) { dlg.AddLocalizedString(618); //delete } else { dlg.AddLocalizedString(981); //Delete this recording dlg.AddLocalizedString(982); //Delete series recording dlg.AddLocalizedString(888); //Episodes management } VirtualCard card; TvServer server = new TvServer(); if (server.IsRecordingSchedule(rec.IdSchedule, out card)) { dlg.AddLocalizedString(979); //Play recording from beginning dlg.AddLocalizedString(980); //Play recording from live point } else { IList <TuningDetail> details = Channel.Retrieve(rec.IdChannel).ReferringTuningDetail(); foreach (TuningDetail detail in details) { if (detail.ChannelType == 0) { dlg.AddLocalizedString(882); //Quality settings break; } } } dlg.DoModal(GetID); if (dlg.SelectedLabel == -1) { return; } switch (dlg.SelectedId) { case 888: ////Episodes management OnSetEpisodesToKeep(rec); break; case 882: OnSetQuality(rec); break; case 981: //Delete this recording only { if (server.IsRecordingSchedule(rec.IdSchedule, out card)) { GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_YES_NO); if (null != dlgYesNo) { dlgYesNo.SetHeading(GUILocalizeStrings.Get(653)); //Delete this recording? dlgYesNo.SetLine(1, GUILocalizeStrings.Get(730)); //This schedule is recording. If you delete dlgYesNo.SetLine(2, GUILocalizeStrings.Get(731)); //the schedule then the recording is stopped. dlgYesNo.SetLine(3, GUILocalizeStrings.Get(732)); //are you sure dlgYesNo.DoModal(GUIWindowManager.ActiveWindow); if (dlgYesNo.IsConfirmed) { server.StopRecordingSchedule(rec.IdSchedule); CanceledSchedule schedule = new CanceledSchedule(rec.IdSchedule, rec.IdChannel, rec.StartTime); rec.Persist(); server.OnNewSchedule(); } } } else { server.StopRecordingSchedule(rec.IdSchedule); CanceledSchedule schedule = new CanceledSchedule(rec.IdSchedule, rec.IdChannel, rec.StartTime); rec.Persist(); server.OnNewSchedule(); } LoadDirectory(); } break; case 982: //Delete series recording goto case 618; case 618: // delete entire recording { if (server.IsRecordingSchedule(rec.IdSchedule, out card)) { GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_YES_NO); if (null != dlgYesNo) { dlgYesNo.SetHeading(GUILocalizeStrings.Get(653)); //Delete this recording? dlgYesNo.SetLine(1, GUILocalizeStrings.Get(730)); //This schedule is recording. If you delete dlgYesNo.SetLine(2, GUILocalizeStrings.Get(731)); //the schedule then the recording is stopped. dlgYesNo.SetLine(3, GUILocalizeStrings.Get(732)); //are you sure dlgYesNo.DoModal(GUIWindowManager.ActiveWindow); if (dlgYesNo.IsConfirmed) { server.StopRecordingSchedule(rec.IdSchedule); rec.Delete(); server.OnNewSchedule(); } } } else { rec.Delete(); server.OnNewSchedule(); } LoadDirectory(); } break; case 979: // Play recording from beginning if (g_Player.Playing && g_Player.IsTVRecording) { g_Player.Stop(true); } //TVHome.IsTVOn = true; TVHome.ViewChannel(rec.ReferencedChannel()); g_Player.SeekAbsolute(0); if (TVHome.Card.IsTimeShifting) { g_Player.ShowFullScreenWindow(); return; } break; case 980: // Play recording from live point //TVHome.IsTVOn = true; TVHome.ViewChannel(rec.ReferencedChannel()); if (TVHome.Card.IsTimeShifting) { if (g_Player.Playing) { g_Player.SeekAsolutePercentage(99); } g_Player.ShowFullScreenWindow(); return; } break; } while (m_iSelectedItem >= GetItemCount() && m_iSelectedItem > 0) { m_iSelectedItem--; } GUIControl.SelectItemControl(GetID, listPriorities.GetID, m_iSelectedItem); }
private void SetLabels() { for (int i = 0; i < GetItemCount(); ++i) { GUIListItem item = GetItem(i); Schedule rec = (Schedule)item.TVTag; //@ /* * switch (rec.Status) * { * case Schedule.RecordingStatus.Waiting: * item.Label3 = GUILocalizeStrings.Get(681);//waiting * break; * case Schedule.RecordingStatus.Finished: * item.Label3 = GUILocalizeStrings.Get(683);//Finished * break; * case Schedule.RecordingStatus.Canceled: * item.Label3 = GUILocalizeStrings.Get(684);//Canceled * break; * }*/ // check with recorder. VirtualCard card; TvServer server = new TvServer(); if (server.IsRecordingSchedule(rec.IdSchedule, out card)) { item.Label3 = GUILocalizeStrings.Get(682); //Recording if (rec.ScheduleType != (int)ScheduleRecordingType.Once) { item.PinImage = Thumbs.TvRecordingSeriesIcon; } else { item.PinImage = Thumbs.TvRecordingIcon; } } else if (rec.ReferringConflicts().Count > 0) { item.PinImage = Thumbs.TvConflictRecordingIcon; } else { item.PinImage = String.Empty; } string strType = String.Empty; item.Label = rec.ProgramName; string strTime = String.Format("{0} {1} - {2}", rec.StartTime.ToShortDateString(), rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); string day; switch ((ScheduleRecordingType)rec.ScheduleType) { case ScheduleRecordingType.Once: item.Label2 = String.Format("{0} {1} - {2}", Utils.GetShortDayString(rec.StartTime), rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); ; break; case ScheduleRecordingType.Daily: strTime = String.Format("{0}-{1}", rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); strType = GUILocalizeStrings.Get(648); item.Label2 = String.Format("{0} {1}", strType, strTime); break; case ScheduleRecordingType.WorkingDays: strTime = String.Format("{0}-{1} {2}-{3}", GUILocalizeStrings.Get(WeekEndTool.GetText(DayType.FirstWorkingDay)), GUILocalizeStrings.Get(WeekEndTool.GetText(DayType.LastWorkingDay)), rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); strType = GUILocalizeStrings.Get(648); item.Label2 = String.Format("{0} {1}", strType, strTime); break; case ScheduleRecordingType.Weekends: strTime = String.Format("{0}-{1} {2}-{3}", GUILocalizeStrings.Get(WeekEndTool.GetText(DayType.FirstWeekendDay)), GUILocalizeStrings.Get(WeekEndTool.GetText(DayType.LastWeekendDay)), rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); strType = GUILocalizeStrings.Get(649); item.Label2 = String.Format("{0} {1}", strType, strTime); break; case ScheduleRecordingType.Weekly: switch (rec.StartTime.DayOfWeek) { case DayOfWeek.Monday: day = GUILocalizeStrings.Get(11); break; case DayOfWeek.Tuesday: day = GUILocalizeStrings.Get(12); break; case DayOfWeek.Wednesday: day = GUILocalizeStrings.Get(13); break; case DayOfWeek.Thursday: day = GUILocalizeStrings.Get(14); break; case DayOfWeek.Friday: day = GUILocalizeStrings.Get(15); break; case DayOfWeek.Saturday: day = GUILocalizeStrings.Get(16); break; default: day = GUILocalizeStrings.Get(17); break; } strTime = String.Format("{0}-{1}", rec.StartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat), rec.EndTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); strType = GUILocalizeStrings.Get(649); item.Label2 = String.Format("{0} {1} {2}", strType, day, strTime); break; case ScheduleRecordingType.WeeklyEveryTimeOnThisChannel: switch (rec.StartTime.DayOfWeek) { case DayOfWeek.Monday: day = GUILocalizeStrings.Get(11); break; case DayOfWeek.Tuesday: day = GUILocalizeStrings.Get(12); break; case DayOfWeek.Wednesday: day = GUILocalizeStrings.Get(13); break; case DayOfWeek.Thursday: day = GUILocalizeStrings.Get(14); break; case DayOfWeek.Friday: day = GUILocalizeStrings.Get(15); break; case DayOfWeek.Saturday: day = GUILocalizeStrings.Get(16); break; default: day = GUILocalizeStrings.Get(17); break; } item.Label = rec.ProgramName; item.Label2 = GUILocalizeStrings.Get(990001, new object[] { day, rec.ReferencedChannel().DisplayName }); break; case ScheduleRecordingType.EveryTimeOnThisChannel: item.Label = rec.ProgramName; item.Label2 = GUILocalizeStrings.Get(650); break; case ScheduleRecordingType.EveryTimeOnEveryChannel: item.Label = rec.ProgramName; item.Label2 = GUILocalizeStrings.Get(651); break; } } }