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); }
protected virtual RecordingStatus?CreateOrDeleteSchedule(IProgram program, ScheduleRecordingType recordingType = ScheduleRecordingType.Once) { IScheduleControl scheduleControl = _tvHandler.ScheduleControl; RecordingStatus? newStatus = null; if (scheduleControl != null) { RecordingStatus?recordingStatus = GetRecordingStatus(program); if (!recordingStatus.HasValue) { return(null); } if (recordingStatus.Value.HasFlag(RecordingStatus.Scheduled) || recordingStatus.Value.HasFlag(RecordingStatus.SeriesScheduled)) { if (scheduleControl.RemoveScheduleForProgram(program, recordingType)) { newStatus = RecordingStatus.None; } } else { ISchedule schedule; if (scheduleControl.CreateSchedule(program, recordingType, out schedule)) { newStatus = recordingType == ScheduleRecordingType.Once ? RecordingStatus.Scheduled : RecordingStatus.SeriesScheduled; } } } return(newStatus); }
protected virtual RecordingStatus?CreateOrDeleteScheduleByTime(IChannel program, DateTime start, DateTime end) { IScheduleControl scheduleControl = _tvHandler.ScheduleControl; RecordingStatus? newStatus = null; if (scheduleControl != null) { ISchedule schedule; if (scheduleControl.CreateScheduleByTime(program, start, end, ScheduleRecordingType.Once, out schedule)) { newStatus = RecordingStatus.Scheduled; } } return(newStatus); }
protected virtual RecordingStatus?GetRecordingStatus(IProgram program) { IScheduleControl scheduleControl = _tvHandler.ScheduleControl; if (scheduleControl == null) { return(null); } RecordingStatus recordingStatus; if (scheduleControl.GetRecordingStatus(program, out recordingStatus)) { return(recordingStatus); } return(null); }
private UPnPError OnGetProgramsForSchedule(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { outParams = new List <object>(); IScheduleControl scheduleControl = ServiceRegistration.Get <ITvProvider>() as IScheduleControl; if (scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } ISchedule schedule = (ISchedule)inParams[0]; IList <IProgram> programs; bool result = scheduleControl.GetProgramsForSchedule(schedule, out programs); outParams = new List <object> { result, programs }; return(null); }
private UPnPError OnGetSchedules(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { outParams = new List <object>(); IProgramInfo programInfo = ServiceRegistration.Get <ITvProvider>() as IProgramInfo; IScheduleControl scheduleControl = ServiceRegistration.Get <ITvProvider>() as IScheduleControl; if (programInfo == null || scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } IList <ISchedule> schedules; bool result = scheduleControl.GetSchedules(out schedules); outParams = new List <object> { result, schedules }; return(null); }
private UPnPError OnIsCurrentlyRecording(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { outParams = new List <object>(); IScheduleControl scheduleControl = ServiceRegistration.Get <ITvProvider>() as IScheduleControl; if (scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } string fileName = (string)inParams[0]; ISchedule schedule; bool result = scheduleControl.IsCurrentlyRecording(fileName, out schedule); outParams = new List <object> { result, schedule }; return(null); }
private UPnPError OnRemoveSchedule(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { outParams = new List <object>(); IProgramInfo programInfo = ServiceRegistration.Get <ITvProvider>() as IProgramInfo; IScheduleControl scheduleControl = ServiceRegistration.Get <ITvProvider>() as IScheduleControl; if (programInfo == null || scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } int programId = (int)inParams[0]; IProgram program; bool result = programInfo.GetProgram(programId, out program) && scheduleControl.RemoveSchedule(program); outParams = new List <object> { result }; return(null); }
private UPnPError OnGetRecordingStatus(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context) { outParams = new List <object>(); IProgramInfo programInfo = ServiceRegistration.Get <ITvProvider>() as IProgramInfo; IScheduleControl scheduleControl = ServiceRegistration.Get <ITvProvider>() as IScheduleControl; if (programInfo == null || scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } int programId = (int)inParams[0]; IProgram program; RecordingStatus recordingStatus = RecordingStatus.None; bool result = programInfo.GetProgram(programId, out program) && scheduleControl.GetRecordingStatus(program, out recordingStatus); outParams = new List <object> { result, recordingStatus.ToString() }; return(null); }
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; if (scheduleControl == null) { return(new UPnPError(500, "IProgramInfo or IScheduleControl service not available")); } int channelId = (int)inParams[0]; DateTime startTime = (DateTime)inParams[1]; DateTime endTime = (DateTime)inParams[2]; IProgram program = new Program { ChannelId = channelId, StartTime = startTime, EndTime = endTime, Title = "Manual" }; // TODO: localize bool result = scheduleControl.CreateSchedule(program); outParams = new List <object> { result }; return(null); }