using Daybreak.Extensions; using Daybreak.Linux.Services.Api; using Daybreak.Linux.Services.ApplicationLauncher; using Daybreak.Linux.Services.Credentials; using Daybreak.Linux.Services.Injection; using Daybreak.Linux.Services.Keyboard; using Daybreak.Linux.Services.Privilege; using Daybreak.Linux.Services.Screens; using Daybreak.Linux.Services.Startup.Actions; using Daybreak.Linux.Services.Startup.Notifications; using Daybreak.Linux.Services.UMod; using Daybreak.Linux.Services.DirectSong; using Daybreak.Linux.Services.Registry; using Daybreak.Linux.Services.Themes; using Daybreak.Linux.Services.SevenZip; using Daybreak.Linux.Services.Window; using Daybreak.Linux.Services.ExceptionHandling; using Daybreak.Linux.Services.Wine; using Daybreak.Services.DXVK; using Daybreak.Shared.Models.Plugins; using Daybreak.Shared.Services.DXVK; using Daybreak.Shared.Services.ApplicationLauncher; using Daybreak.Shared.Services.Credentials; using Daybreak.Shared.Services.DirectSong; using Daybreak.Shared.Services.Registry; using Daybreak.Shared.Services.FileProviders; using Daybreak.Shared.Services.Initialization; using Daybreak.Shared.Services.Injection; using Daybreak.Shared.Services.Keyboard; using Daybreak.Shared.Services.Api; using Daybreak.Shared.Services.Privilege; using Daybreak.Shared.Services.Screens; using Daybreak.Shared.Services.Themes; using Daybreak.Shared.Services.SevenZip; using Daybreak.Shared.Services.UMod; using Daybreak.Shared.Services.ExceptionHandling; using Daybreak.Shared.Services.Window; using Microsoft.Extensions.DependencyInjection; namespace Daybreak.Linux.Configuration; /// /// Linux-specific platform configuration. /// Registers Linux-specific services and overrides. /// public sealed class LinuxPlatformConfiguration : PluginConfigurationBase { public override void RegisterServices(IServiceCollection services) { services.AddHostedSingleton(); services.AddHostedSingleton(); services.AddScoped(); services.AddScoped(); services.AddSingleton(); services.AddSingleton(); services.AddScoped(); services.AddScoped(); services.AddSingleton(); services.AddSingleton(); services.AddScoped(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); } public override void RegisterStartupActions(IStartupActionProducer startupActionProducer) { // Check Wine prefix setup on startup startupActionProducer.RegisterAction(); } public override void RegisterProviderAssemblies(IFileProviderProducer fileProviderProducer) { fileProviderProducer.RegisterAssembly(typeof(LinuxPlatformConfiguration).Assembly); } public override void RegisterNotificationHandlers( INotificationHandlerProducer notificationHandlerProducer ) { notificationHandlerProducer.RegisterNotificationHandler(); } public override void RegisterMods(IModsProducer modsProducer) { modsProducer.RegisterMod(singleton: true); modsProducer.RegisterMod(); } }