コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
                }
            }
        }