From ca831ae88aaefb07f98d1a337792ea4af608fed0 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 15 Jan 2014 00:38:08 -0500 Subject: added live tv events --- .../LiveTv/LiveTvManager.cs | 24 +++++++++++++++++++++- .../LiveTv/RefreshChannelsScheduledTask.cs | 1 - 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index eff919f17..5da6e697d 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -1,5 +1,6 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; +using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Drawing; @@ -37,6 +38,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv private readonly IUserDataManager _userDataManager; private readonly ILibraryManager _libraryManager; private readonly IMediaEncoder _mediaEncoder; + private readonly ITaskManager _taskManager; private readonly LiveTvDtoService _tvDtoService; @@ -81,7 +83,27 @@ namespace MediaBrowser.Server.Implementations.LiveTv { _services.AddRange(services); - ActiveService = _services.FirstOrDefault(); + SetActiveService(_services.FirstOrDefault()); + } + + private void SetActiveService(ILiveTvService service) + { + if (ActiveService != null) + { + ActiveService.DataSourceChanged -= service_DataSourceChanged; + } + + ActiveService = service; + + if (service != null) + { + service.DataSourceChanged += service_DataSourceChanged; + } + } + + void service_DataSourceChanged(object sender, EventArgs e) + { + _taskManager.CancelIfRunningAndQueue(); } public Task> GetChannels(ChannelQuery query, CancellationToken cancellationToken) diff --git a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs b/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs index fe565e094..1edd79d69 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs @@ -42,7 +42,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv { return new ITaskTrigger[] { - new StartupTrigger(), new SystemEventTrigger{ SystemEvent = SystemEvent.WakeFromSleep}, -- cgit v1.2.3