private UPnPError OnCreateScheduleByTime(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context)
        {
            outParams = new List <object>();
            IScheduleControl     scheduleControl     = ServiceRegistration.Get <ITvProvider>() as IScheduleControl;
            IChannelAndGroupInfo channelAndGroupInfo = ServiceRegistration.Get <ITvProvider>() as IChannelAndGroupInfo;

            if (scheduleControl == null || channelAndGroupInfo == null)
            {
                return(new UPnPError(500, "IChannelAndGroupInfo or IScheduleControl service not available"));
            }

            int      channelId = (int)inParams[0];
            DateTime startTime = (DateTime)inParams[1];
            DateTime endTime   = (DateTime)inParams[2];
            ScheduleRecordingType recordingType = (ScheduleRecordingType)inParams[3];
            ISchedule             schedule      = null;

            IChannel channel;
            bool     result = channelAndGroupInfo.GetChannel(channelId, out channel) && scheduleControl.CreateScheduleByTime(channel, startTime, endTime, recordingType, out schedule);

            outParams = new List <object> {
                result, schedule
            };
            return(null);
        }
Exemplo n.º 2
0
        public void SetProgram(IProgram program)
        {
            IProgramRecordingStatus recordingStatus = program as IProgramRecordingStatus;

            if (recordingStatus != null)
            {
                UpdateState(recordingStatus.RecordingStatus);
            }
            try
            {
                IChannel             channel;
                IChannelAndGroupInfo channelAndGroupInfo = ServiceRegistration.Get <ITvHandler>().ChannelAndGroupInfo;
                if (program != null && channelAndGroupInfo != null && channelAndGroupInfo.GetChannel(program.ChannelId, out channel))
                {
                    ChannelName = channel.Name;
                }

                _settingProgram = true;
                IProgramSeries series = program as IProgramSeries;
                if (series != null)
                {
                    SeasonNumber  = series.SeasonNumber;
                    EpisodeNumber = series.EpisodeNumber;
                    EpisodeTitle  = series.EpisodeTitle;
                    Series        = BuildSeriesText(this);
                }
                else
                {
                    SeasonNumber  = string.Empty;
                    EpisodeNumber = string.Empty;
                    EpisodeTitle  = string.Empty;
                    Series        = string.Empty;
                }
                if (program != null)
                {
                    ProgramId   = program.ProgramId;
                    Title       = program.Title;
                    Description = program.Description;
                    StartTime   = program.StartTime;
                    EndTime     = program.EndTime;
                    Genre       = program.Genre;
                }
                else
                {
                    ProgramId   = 0;
                    Title       = string.Empty;
                    Description = string.Empty;
                    StartTime   = DateTime.Now.GetDay();
                    EndTime     = StartTime.AddDays(1);
                    Genre       = string.Empty;
                }
                UpdateDuration();
            }
            finally
            {
                _settingProgram = false;
            }
        }
Exemplo n.º 3
0
        private UPnPError OnGetChannelGroups(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context)
        {
            outParams = new List <object>();
            IChannelAndGroupInfo channelAndGroupInfo = ServiceRegistration.Get <ITvProvider>() as IChannelAndGroupInfo;

            if (channelAndGroupInfo == null)
            {
                return(new UPnPError(500, "IChannelAndGroupInfo service not available"));
            }

            IList <IChannelGroup> groups;
            bool result = channelAndGroupInfo.GetChannelGroups(out groups);

            outParams = new List <object> {
                result, groups
            };
            return(null);
        }
        private UPnPError OnGetChannel(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context)
        {
            outParams = new List <object>();
            IChannelAndGroupInfo channelAndGroupInfo = ServiceRegistration.Get <ITvProvider>() as IChannelAndGroupInfo;

            if (channelAndGroupInfo == null)
            {
                return(new UPnPError(500, "IChannelAndGroupInfo service not available"));
            }

            int channelId = (int)inParams[0];

            IChannel channel;
            bool     result = channelAndGroupInfo.GetChannel(channelId, out channel);

            outParams = new List <object> {
                result, new List <IChannel> {
                    channel
                }
            };
            return(null);
        }