private void OnSessionsChanged(NowPlayingSessionInfo nowPlayingSessionInfo, NowPlayingSessionManagerNotificationType notificationType) { nowPlayingSessionInfo.GetInfo(out _, out uint pid, out _); if (NPSessionManager == null) { //T H I S S H O U L D N E V E R H A P P E N. return; } if (notificationType == NowPlayingSessionManagerNotificationType.SessionCreated) { var session = NPSessionManager.FindSession(nowPlayingSessionInfo); if (session != null) { MediaSessions.Add(new NowPlayingMediaSession(session)); RaiseMediaSessionsChanged(); } } else if (notificationType == NowPlayingSessionManagerNotificationType.CurrentSessionChanged) { var mediaSession = MediaSessions .Cast <NowPlayingMediaSession>() .FirstOrDefault(x => x.NowPlayingSession.GetSessionInfo().Equals(nowPlayingSessionInfo)); if (mediaSession != null) { CurrentMediaSession = mediaSession; foreach (var s in MediaSessions) { s.IsCurrent = false; } mediaSession.IsCurrent = true; RaiseCurrentMediaSessionChanged(); } } else if (notificationType == NowPlayingSessionManagerNotificationType.SessionDisconnected) { var mediaSession = MediaSessions .Cast <NowPlayingMediaSession>() .FirstOrDefault(x => x.NowPlayingSession.GetSessionInfo().Equals(nowPlayingSessionInfo)); if (mediaSession != null) { mediaSession.Disconnect(); MediaSessions.Remove(mediaSession); RaiseMediaSessionsChanged(); } } }
private void LoadSessions() { ClearSessions(); if (GSMTCSessionManager != null) { var sessions = GSMTCSessionManager.GetSessions(); foreach (var session in sessions) { MediaSessions.Add(new GSMTCMediaSession(session)); } } }
private void LoadSessions() { ClearSessions(); if (NPSessionManager != null) { var sessions = NPSessionManager.GetSessions(); foreach (var session in sessions) { MediaSessions.Add(new NowPlayingMediaSession(session)); } } RaiseMediaSessionsChanged(); }