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); }
private UPnPError OnCreateSchedule(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.CreateSchedule(program); outParams = new List <object> { result }; 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); }