Added application session services, along with initial restore and tracker implementations.
This commit is contained in:
29
Harmonia.WinUI/Session/SessionTracker.cs
Normal file
29
Harmonia.WinUI/Session/SessionTracker.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Harmonia.Core.Player;
|
||||
using Harmonia.Core.Playlists;
|
||||
using System;
|
||||
|
||||
namespace Harmonia.WinUI.Session;
|
||||
|
||||
public class SessionTracker(
|
||||
ISessionService sessionService,
|
||||
IPlaylistManager playlistManager,
|
||||
IAudioPlayer audioPlayer) : ISessionTracker
|
||||
{
|
||||
public void Start()
|
||||
{
|
||||
playlistManager.CurrentPlaylistChanged += OnCurrentPlaylistChanged;
|
||||
audioPlayer.PlayingSongChanged += OnPlayingSongChanged;
|
||||
}
|
||||
|
||||
private void OnCurrentPlaylistChanged(object? sender, EventArgs e)
|
||||
{
|
||||
PlaylistState playlistState = sessionService.Session.Playlist;
|
||||
playlistState.OpenPlaylistUID = playlistManager.CurrentPlaylist?.UID;
|
||||
}
|
||||
|
||||
private void OnPlayingSongChanged(object? sender, PlayingSongChangedEventArgs e)
|
||||
{
|
||||
AudioPlayerState audioPlayerState = sessionService.Session.Player;
|
||||
audioPlayerState.PlaylistSongUID = e.NewSong?.UID;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user