protected virtual void InitModel() { if (_tvHandler == null) { ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) { return; } _tvHandler = tvHandler; } IList <IChannelGroup> channelGroups; if (_tvHandler.ChannelAndGroupInfo.GetChannelGroups(out channelGroups)) { ChannelContext.ChannelGroups.Clear(); ChannelContext.ChannelGroups.AddRange(channelGroups); } _dialogHeaderProperty = new WProperty(typeof(string), string.Empty); GetCurrentChannelGroup(); FillChannelGroupList(); GetCurrentChannel(); UpdateChannels(); UpdatePrograms(); }
// TODO: reimplement /// <summary> /// Constructor /// </summary> public TvInfo(MediaItem mediaItem) { try { if (mediaItem is LiveTvMediaItem tvItem && tvItem.TimeshiftContexes.FirstOrDefault()?.Channel is IChannel channel) { ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var result = tvHandler.ProgramInfo.GetNowNextProgramAsync(channel).Result; ChannelId = channel.ChannelId; ChannelName = channel.Name; if (result.Success) { CurrentProgramId = result.Result[0].ProgramId; CurrentProgramName = result.Result[0].Title; CurrentProgramDescription = result.Result[0].Description; CurrentProgramBegin = result.Result[0].StartTime; CurrentProgramEnd = result.Result[0].EndTime; NextProgramId = result.Result[1].ProgramId; NextProgramName = result.Result[1].Title; NextProgramDescription = result.Result[1].Description; NextProgramBegin = result.Result[1].StartTime; NextProgramEnd = result.Result[1].EndTime; } } } catch (Exception e) { ServiceRegistration.Get <ILogger>().Error("WifiRemote: Error getting tv info", e); } }
protected static async Task <bool> RemoveSchedulesAsync(int scheduleId) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: Remove Schedule: No tv handler"); return(false); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var schedules = await tvHandler.ScheduleControl.GetSchedulesAsync(); if (!schedules.Success) { Logger.Error($"WifiRemote: Remove Schedule: Error getting schedules"); return(false); } var schedule = schedules.Result.FirstOrDefault(s => s.ScheduleId == scheduleId); if (schedule == null) { Logger.Error($"WifiRemote: Remove Schedule: Schedule with id '{0}' not found", scheduleId); return(false); } return(await tvHandler.ScheduleControl.RemoveScheduleAsync(schedule)); }
protected static async Task <IList <IProgram> > GetEpgAsync(int channelGroupId, int hours, bool isTv) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: List EPG: No tv handler"); return(new List <IProgram>()); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var channelGroups = await tvHandler.ChannelAndGroupInfo.GetChannelGroupsAsync(); if (!channelGroups.Success) { Logger.Error($"WifiRemote: List EPG: Error getting groups"); return(new List <IProgram>()); } var channelGroup = channelGroups.Result.FirstOrDefault(g => g.ChannelGroupId == channelGroupId && g.MediaType == (isTv ? MediaType.TV : MediaType.Radio)); if (channelGroup == null) { Logger.Info($"WifiRemote: List EPG: Channel group with id '{0}' not found", channelGroupId); return(new List <IProgram>()); } var programs = await tvHandler.ProgramInfo.GetProgramsGroupAsync(channelGroup, DateTime.Now, DateTime.Now.AddHours(hours)); if (!programs.Success) { Logger.Error($"WifiRemote: List EPG: Error getting programs"); return(new List <IProgram>()); } return(programs.Result); }
protected static async Task <bool> PlayChannelAsync(int channelId) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: Play Channel: No tv handler"); return(false); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var channel = await tvHandler.ChannelAndGroupInfo.GetChannelAsync(channelId); if (!channel.Success) { Logger.Info($"WifiRemote: Play Channel: Channel with id '{0}' not found", channelId); return(false); } IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); SlimTvClientModel model = workflowManager.GetModel(SlimTvClientModel.MODEL_ID) as SlimTvClientModel; if (model != null) { await model.Tune(channel.Result); } return(true); }
protected static async Task <IList <IProgram> > GetChannelEpgAsync(int channelId, int hours, bool isTv) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: List Channel EPG: No tv handler"); return(new List <IProgram>()); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var channel = await tvHandler.ChannelAndGroupInfo.GetChannelAsync(channelId); if (!channel.Success) { Logger.Info($"WifiRemote: List Channel EPG: Channel with id '{0}' not found", channelId); return(new List <IProgram>()); } var programs = await tvHandler.ProgramInfo.GetProgramsAsync(channel.Result, DateTime.Now, DateTime.Now.AddHours(hours)); if (!programs.Success) { Logger.Error($"WifiRemote: List Channel EPG: Error getting programs"); return(new List <IProgram>()); } return(programs.Result); }
protected static async Task <IList <IChannel> > GetChannelsAsync(int channelGroupId, bool isTv) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: List Channels: No tv handler"); return(new List <IChannel>()); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var channelGroups = await tvHandler.ChannelAndGroupInfo.GetChannelGroupsAsync(); if (!channelGroups.Success) { Logger.Error($"WifiRemote: List Channels: Error getting groups"); return(new List <IChannel>()); } var channelGroup = channelGroups.Result.FirstOrDefault(g => g.ChannelGroupId == channelGroupId && g.MediaType == (isTv ? MediaType.TV : MediaType.Radio)); if (channelGroup == null) { Logger.Info($"WifiRemote: List Channels: Channel group with id '{0}' not found", channelGroupId); return(new List <IChannel>()); } var channels = await tvHandler.ChannelAndGroupInfo.GetChannelsAsync(channelGroup); if (!channels.Success) { Logger.Error($"WifiRemote: List Channels: Error getting channels"); return(new List <IChannel>()); } return(channels.Result); }
public void Dispose() { ITvHandler tv = ServiceRegistration.Get <ITvHandler>(false); if (tv != null) { tv.DisposeSlot(_slotIndex); } }
protected IChannel GetChannel(int channelId) { ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) { return(null); } var result = tvHandler.ChannelAndGroupInfo.GetChannelAsync(channelId).Result; return(result.Success ? result.Result : null); }
protected IChannel GetChannel(int channelId) { ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); tvHandler.Initialize(); IChannel channel; if (tvHandler.ChannelAndGroupInfo == null || !tvHandler.ChannelAndGroupInfo.GetChannel(channelId, out channel)) { channel = null; } return(channel); }
protected virtual void InitModel() { if (_tvHandler == null) { _tvHandler = ServiceRegistration.Get <ITvHandler>(); _tvHandler.Initialize(); } _tvHandler.ChannelAndGroupInfo.GetChannelGroups(out _channelGroups); GetCurrentChannelGroup(); GetCurrentChannel(); UpdateChannels(); UpdatePrograms(); }
protected virtual void InitModel() { if (_tvHandler == null) { ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) { return; } _tvHandler = tvHandler; } _dialogHeaderProperty = new WProperty(typeof(string), string.Empty); }
protected static async Task <IList <IChannelGroup> > GetChannelGroupsAsync(bool isTv) { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: List Channel Groups: No tv handler"); return(new List <IChannelGroup>()); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var channelGroups = await tvHandler.ChannelAndGroupInfo.GetChannelGroupsAsync(); if (!channelGroups.Success) { Logger.Error($"WifiRemote: List Channel Groups: Error getting groups"); return(new List <IChannelGroup>()); } return(channelGroups.Result.Where(g => g.MediaType == (isTv ? MediaType.TV : MediaType.Radio)).ToList()); }
protected static async Task <IList <ISchedule> > GetSchedulesAsync() { if (!ServiceRegistration.IsRegistered <ITvHandler>()) { Logger.Error($"WifiRemote: List Schedules: No tv handler"); return(new List <ISchedule>()); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var schedules = await tvHandler.ScheduleControl.GetSchedulesAsync(); if (!schedules.Success) { Logger.Error($"WifiRemote: List Schedules: Error getting schedules"); return(new List <ISchedule>()); } return(schedules.Result); }
/// <summary> /// Creates a schedule using the configured properties. /// </summary> public void CreateSchedule() { IChannel channel = Channel; DateTime startTime = StartTime; DateTime endTime = EndTime; ScheduleRecordingType recordingType = RecordingType; if (!CheckScheduleValid(channel, startTime, endTime)) { return; } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); ISchedule schedule; bool result = tvHandler.ScheduleControl.CreateScheduleByTime(channel, startTime, endTime, recordingType, out schedule); IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); workflowManager.NavigatePopToState(STATE_MANUAL_SCHEDULE, true); }
protected bool TryInitTvHandler() { if (_tvHandler != null) { return(true); } ITvProvider provider = ServiceRegistration.Get <ITvProvider>(false); if (provider == null) { return(false); } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) { return(false); } _tvHandler = tvHandler; return(true); }
/// <summary> /// Creates a schedule using the configured properties. /// </summary> public async Task CreateSchedule() { IChannel channel = Channel; DateTime startTime = StartTime; DateTime endTime = EndTime; ScheduleRecordingType recordingType = RecordingType; if (!CheckScheduleValid(channel, startTime, endTime)) { return; } ITvHandler tvHandler = ServiceRegistration.Get <ITvHandler>(); var result = await tvHandler.ScheduleControl.CreateScheduleByTimeAsync(channel, startTime, endTime, recordingType); if (!result.Success) { ServiceRegistration.Get <ILogger>().Warn("SlimTvManualScheduleModel: Could not create schedule."); } IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); workflowManager.NavigatePopToState(STATE_MANUAL_SCHEDULE, true); }
protected virtual void InitModel() { if (_tvHandler == null) { ITvHandler tvHandler = ServiceRegistration.Get<ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) return; _tvHandler = tvHandler; } _dialogHeaderProperty = new WProperty(typeof(string), string.Empty); }
protected virtual void InitModel() { if (_tvHandler == null) { ITvHandler tvHandler = ServiceRegistration.Get<ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) return; _tvHandler = tvHandler; } _tvHandler.ChannelAndGroupInfo.GetChannelGroups(out _channelGroups); GetCurrentChannelGroup(); FillChannelGroupList(); GetCurrentChannel(); UpdateChannels(); UpdatePrograms(); }
protected virtual void InitModel() { if (_tvHandler == null) { ITvHandler tvHandler = ServiceRegistration.Get<ITvHandler>(); tvHandler.Initialize(); if (tvHandler.ChannelAndGroupInfo == null) return; _tvHandler = tvHandler; } IList<IChannelGroup> channelGroups; if (_tvHandler.ChannelAndGroupInfo.GetChannelGroups(out channelGroups)) { ChannelContext.ChannelGroups.Clear(); ChannelContext.ChannelGroups.AddRange(channelGroups); } _dialogHeaderProperty = new WProperty(typeof(string), string.Empty); GetCurrentChannelGroup(); FillChannelGroupList(); GetCurrentChannel(); UpdateChannels(); UpdatePrograms(); }