30 lines
905 B
C#
30 lines
905 B
C#
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;
|
|
}
|
|
}
|