Use DI for IListingsProvider

This commit is contained in:
Patrick Barron 2024-01-17 12:02:12 -05:00
parent 81cf4b6c50
commit efd024bafe
4 changed files with 10 additions and 8 deletions

View File

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

View File

@ -71,8 +71,7 @@ namespace MediaBrowser.Controller.LiveTv
/// Adds the parts.
/// </summary>
/// <param name="services">The services.</param>
/// <param name="listingProviders">The listing providers.</param>
void AddParts(IEnumerable<ILiveTvService> services, IEnumerable<IListingsProvider> listingProviders);
void AddParts(IEnumerable<ILiveTvService> services);
/// <summary>
/// Gets the timer.

View File

@ -1,5 +1,6 @@
using Jellyfin.LiveTv.Channels;
using Jellyfin.LiveTv.Guide;
using Jellyfin.LiveTv.Listings;
using Jellyfin.LiveTv.TunerHosts;
using Jellyfin.LiveTv.TunerHosts.HdHomerun;
using MediaBrowser.Controller.Channels;
@ -29,5 +30,7 @@ public static class LiveTvServiceCollectionExtensions
services.AddSingleton<ITunerHost, HdHomerunHost>();
services.AddSingleton<ITunerHost, M3UTunerHost>();
services.AddSingleton<IListingsProvider, SchedulesDirect>();
services.AddSingleton<IListingsProvider, XmlTvListingsProvider>();
}
}

View File

@ -47,9 +47,9 @@ namespace Jellyfin.LiveTv
private readonly ILocalizationManager _localization;
private readonly IChannelManager _channelManager;
private readonly LiveTvDtoService _tvDtoService;
private readonly IListingsProvider[] _listingProviders;
private ILiveTvService[] _services = Array.Empty<ILiveTvService>();
private IListingsProvider[] _listingProviders = Array.Empty<IListingsProvider>();
public LiveTvManager(
IServerConfigurationManager config,
@ -61,7 +61,8 @@ namespace Jellyfin.LiveTv
ITaskManager taskManager,
ILocalizationManager localization,
IChannelManager channelManager,
LiveTvDtoService liveTvDtoService)
LiveTvDtoService liveTvDtoService,
IEnumerable<IListingsProvider> listingProviders)
{
_config = config;
_logger = logger;
@ -73,6 +74,7 @@ namespace Jellyfin.LiveTv
_userDataManager = userDataManager;
_channelManager = channelManager;
_tvDtoService = liveTvDtoService;
_listingProviders = listingProviders.ToArray();
}
public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
@ -97,12 +99,10 @@ namespace Jellyfin.LiveTv
}
/// <inheritdoc />
public void AddParts(IEnumerable<ILiveTvService> services, IEnumerable<IListingsProvider> listingProviders)
public void AddParts(IEnumerable<ILiveTvService> services)
{
_services = services.ToArray();
_listingProviders = listingProviders.ToArray();
foreach (var service in _services)
{
if (service is EmbyTV.EmbyTV embyTv)