using Jellyfin.Plugin.SRFPlay.Api; using Jellyfin.Plugin.SRFPlay.Channels; using Jellyfin.Plugin.SRFPlay.LiveTv; using Jellyfin.Plugin.SRFPlay.Providers; using Jellyfin.Plugin.SRFPlay.ScheduledTasks; using Jellyfin.Plugin.SRFPlay.Services; using Jellyfin.Plugin.SRFPlay.Services.Interfaces; using MediaBrowser.Controller; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.DependencyInjection; namespace Jellyfin.Plugin.SRFPlay; /// /// Service registrator for dependency injection. /// public class ServiceRegistrator : IPluginServiceRegistrator { /// public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost) { // Register API client factory serviceCollection.AddSingleton(); // Register core services with interfaces serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); // Register metadata providers serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); // Register media source provider serviceCollection.AddSingleton(); // Register scheduled tasks serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); // Register channel - must register as IChannel interface for Jellyfin to discover it serviceCollection.AddSingleton(); // Register Live TV service - provides virtual channels for scheduled livestreams serviceCollection.AddSingleton(); } }