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; } }