Too much to name... but damn, it got where we are needed

This commit is contained in:
TheXamlGuy
2024-01-14 15:06:30 +00:00
parent 66f4bb8757
commit 1283e8ff58
59 changed files with 511 additions and 250 deletions
@@ -1,19 +1,34 @@
using Windows.Media.Control;
namespace Hyperbar.Windows.Primary;
namespace Hyperbar.Windows.MediaController;
public class MediaController :
INotificationHandler<PlayRequest>
INotificationHandler<Play>,
INotificationHandler<Pause>
{
private readonly IMediator mediator;
private readonly GlobalSystemMediaTransportControlsSession session;
public MediaController(GlobalSystemMediaTransportControlsSession session,
IMediator mediator)
public MediaController(IMediator mediator,
GlobalSystemMediaTransportControlsSession session)
{
this.mediator = mediator;
this.session = session;
mediator.Subscribe(this);
session.MediaPropertiesChanged += OnMediaPropertiesChanged;
}
public async ValueTask Handle(PlayRequest notification, CancellationToken cancellationToken) =>
private void OnMediaPropertiesChanged(GlobalSystemMediaTransportControlsSession sender,
MediaPropertiesChangedEventArgs args)
{
mediator.PublishAsync(new Changed<Media>());
}
public async ValueTask Handle(Play notification, CancellationToken cancellationToken) =>
await session.TryPlayAsync();
public async ValueTask Handle(Pause notification, CancellationToken cancellationToken) =>
await session.TryPauseAsync();
}