Files
linker/cmonitor/plugins/display/DisplayStartup.cs
2024-05-10 16:48:13 +08:00

42 lines
1.5 KiB
C#

using cmonitor.config;
using cmonitor.plugins.display.messenger;
using cmonitor.plugins.display.report;
using cmonitor.startup;
using Microsoft.Extensions.DependencyInjection;
using System.Reflection;
namespace cmonitor.plugins.display
{
public sealed class DisplayStartup : IStartup
{
public StartupLevel Level => StartupLevel.Normal;
public string Name => "display";
public bool Required => false;
public string[] Dependent => Array.Empty<string>();
public StartupLoadType LoadType => StartupLoadType.Normal;
public void AddClient(ServiceCollection serviceCollection, Config config, Assembly[] assemblies)
{
serviceCollection.AddSingleton<DisplayReport>();
if (OperatingSystem.IsWindows()) serviceCollection.AddSingleton<IDisplay, DisplayWindows>();
else if (OperatingSystem.IsLinux()) serviceCollection.AddSingleton<IDisplay, DisplayLinux>();
else if (OperatingSystem.IsMacOS()) serviceCollection.AddSingleton<IDisplay, DisplayMacOS>();
serviceCollection.AddSingleton<DisplayClientMessenger>();
}
public void AddServer(ServiceCollection serviceCollection, Config config, Assembly[] assemblies)
{
serviceCollection.AddSingleton<DisplayApiController>();
}
public void UseClient(ServiceProvider serviceProvider, Config config, Assembly[] assemblies)
{
}
public void UseServer(ServiceProvider serviceProvider, Config config, Assembly[] assemblies)
{
}
}
}