Remotely/Desktop.Linux/Startup/IServiceCollectionExtensions.cs
2024-07-16 11:09:13 -07:00

36 lines
1.5 KiB
C#

using Remotely.Desktop.Shared.Abstractions;
using Remotely.Desktop.Shared.Startup;
using Microsoft.Extensions.DependencyInjection;
using Remotely.Desktop.Linux.Services;
using Remotely.Desktop.UI.ViewModels;
using Remotely.Desktop.UI.Services;
using Remotely.Desktop.UI.Startup;
namespace Remotely.Desktop.Linux.Startup;
public static class IServiceCollectionExtensions
{
/// <summary>
/// Adds Linux and cross-platform remote control services to the service collection.
/// All methods on <see cref="IRemoteControlClientBuilder"/> must be called to register
/// required services.
/// </summary>
/// <param name="services"></param>
/// <param name="clientConfig"></param>
public static void AddRemoteControlLinux(this IServiceCollection services)
{
services.AddRemoteControlXplat();
services.AddRemoteControlUi();
services.AddSingleton<IAppStartup, AppStartup>();
services.AddSingleton<ICursorIconWatcher, CursorIconWatcherLinux>();
services.AddSingleton<IKeyboardMouseInput, KeyboardMouseInputLinux>();
services.AddSingleton<IClipboardService, ClipboardService>();
services.AddSingleton<IAudioCapturer, AudioCapturerLinux>();
services.AddTransient<IScreenCapturer, ScreenCapturerLinux>();
services.AddScoped<IFileTransferService, FileTransferServiceLinux>();
services.AddSingleton<ISessionIndicator, SessionIndicator>();
services.AddSingleton<IShutdownService, ShutdownServiceLinux>();
}
}