Files
Hyperbar/Hyperbar.Windows.MediaController/Lifecycles/MediaControllerWidgetBuilder.cs
T
2024-01-19 22:37:12 +00:00

28 lines
1.5 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Windows.Media.Control;
namespace Hyperbar.Windows.MediaController;
public class MediaControllerWidgetBuilder :
IWidgetBuilder
{
public void Create(IServiceCollection services) =>
WidgetBuilder.Config(services, config =>
{
config.Id = Guid.Parse("1667a800-ec5a-4d39-aa75-4f5ee95bb9f1");
config.Name = "Media controller";
services.AddWidgetTemplate<MediaControllerWidgetViewModel, MediaControllerWidgetView>()
.AddSingleton<IInitializer, MediaControllerManager>()
.AddTransient<IServiceScopeFactory<MediaController>, ServiceScopeFactory<MediaController>>()
.AddTransient<IServiceScopeProvider<MediaController>, ServiceScopeProvider<MediaController>>()
.AddCache<MediaController, IServiceScope>()
.AddTransient<IFactory<GlobalSystemMediaTransportControlsSession, MediaController?>, MediaControllerFactory>()
.AddHandler<MediaControllerHandler>()
.AddTransient<IFactory<MediaController, MediaControllerViewModel?>, MediaControllerViewModelFactory>()
.AddCache<MediaController, MediaControllerViewModel>()
.AddContentTemplate<MediaControllerViewModel, MediaControllerView>()
.AddContentTemplate<MediaInformationViewModel, MediaInformationView>()
.AddContentTemplate<MediaButtonViewModel, MediaButtonView>();
});
}