Use DI for ILiveTvService

pull/10951/head
Patrick Barron 5 months ago
parent 775b7eadef
commit 34269dee58

@ -695,8 +695,6 @@ namespace Emby.Server.Implementations
GetExports<IMetadataSaver>(), GetExports<IMetadataSaver>(),
GetExports<IExternalId>()); GetExports<IExternalId>());
Resolve<ILiveTvManager>().AddParts(GetExports<ILiveTvService>());
Resolve<IMediaSourceManager>().AddParts(GetExports<IMediaSourceProvider>()); Resolve<IMediaSourceManager>().AddParts(GetExports<IMediaSourceProvider>());
} }

@ -67,12 +67,6 @@ namespace MediaBrowser.Controller.LiveTv
/// <returns>Task.</returns> /// <returns>Task.</returns>
Task CancelSeriesTimer(string id); Task CancelSeriesTimer(string id);
/// <summary>
/// Adds the parts.
/// </summary>
/// <param name="services">The services.</param>
void AddParts(IEnumerable<ILiveTvService> services);
/// <summary> /// <summary>
/// Gets the timer. /// Gets the timer.
/// </summary> /// </summary>

@ -28,6 +28,7 @@ public static class LiveTvServiceCollectionExtensions
services.AddSingleton<ITunerHostManager, TunerHostManager>(); services.AddSingleton<ITunerHostManager, TunerHostManager>();
services.AddSingleton<IGuideManager, GuideManager>(); services.AddSingleton<IGuideManager, GuideManager>();
services.AddSingleton<ILiveTvService, EmbyTV.EmbyTV>();
services.AddSingleton<ITunerHost, HdHomerunHost>(); services.AddSingleton<ITunerHost, HdHomerunHost>();
services.AddSingleton<ITunerHost, M3UTunerHost>(); services.AddSingleton<ITunerHost, M3UTunerHost>();
services.AddSingleton<IListingsProvider, SchedulesDirect>(); services.AddSingleton<IListingsProvider, SchedulesDirect>();

@ -47,10 +47,9 @@ namespace Jellyfin.LiveTv
private readonly ILocalizationManager _localization; private readonly ILocalizationManager _localization;
private readonly IChannelManager _channelManager; private readonly IChannelManager _channelManager;
private readonly LiveTvDtoService _tvDtoService; private readonly LiveTvDtoService _tvDtoService;
private readonly ILiveTvService[] _services;
private readonly IListingsProvider[] _listingProviders; private readonly IListingsProvider[] _listingProviders;
private ILiveTvService[] _services = Array.Empty<ILiveTvService>();
public LiveTvManager( public LiveTvManager(
IServerConfigurationManager config, IServerConfigurationManager config,
ILogger<LiveTvManager> logger, ILogger<LiveTvManager> logger,
@ -62,6 +61,7 @@ namespace Jellyfin.LiveTv
ILocalizationManager localization, ILocalizationManager localization,
IChannelManager channelManager, IChannelManager channelManager,
LiveTvDtoService liveTvDtoService, LiveTvDtoService liveTvDtoService,
IEnumerable<ILiveTvService> services,
IEnumerable<IListingsProvider> listingProviders) IEnumerable<IListingsProvider> listingProviders)
{ {
_config = config; _config = config;
@ -74,7 +74,12 @@ namespace Jellyfin.LiveTv
_userDataManager = userDataManager; _userDataManager = userDataManager;
_channelManager = channelManager; _channelManager = channelManager;
_tvDtoService = liveTvDtoService; _tvDtoService = liveTvDtoService;
_services = services.ToArray();
_listingProviders = listingProviders.ToArray(); _listingProviders = listingProviders.ToArray();
var defaultService = _services.OfType<EmbyTV.EmbyTV>().First();
defaultService.TimerCreated += OnEmbyTvTimerCreated;
defaultService.TimerCancelled += OnEmbyTvTimerCancelled;
} }
public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled; public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
@ -98,21 +103,6 @@ namespace Jellyfin.LiveTv
return EmbyTV.EmbyTV.Current.GetActiveRecordingPath(id); return EmbyTV.EmbyTV.Current.GetActiveRecordingPath(id);
} }
/// <inheritdoc />
public void AddParts(IEnumerable<ILiveTvService> services)
{
_services = services.ToArray();
foreach (var service in _services)
{
if (service is EmbyTV.EmbyTV embyTv)
{
embyTv.TimerCreated += OnEmbyTvTimerCreated;
embyTv.TimerCancelled += OnEmbyTvTimerCancelled;
}
}
}
private void OnEmbyTvTimerCancelled(object sender, GenericEventArgs<string> e) private void OnEmbyTvTimerCancelled(object sender, GenericEventArgs<string> e)
{ {
var timerId = e.Argument; var timerId = e.Argument;

Loading…
Cancel
Save