コード例 #1
0
        private void ClearSessions()
        {
            foreach (var session in MediaSessions)
            {
                session.Dispose();
            }

            MediaSessions.Clear();
        }
コード例 #2
0
        private void ClearSessions()
        {
            foreach (var session in MediaSessions)
            {
                session.Disconnect();
            }

            MediaSessions.Clear();

            RaiseMediaSessionsChanged();
        }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
        private void LoadSessions()
        {
            ClearSessions();

            if (GSMTCSessionManager != null)
            {
                var sessions = GSMTCSessionManager.GetSessions();

                foreach (var session in sessions)
                {
                    MediaSessions.Add(new GSMTCMediaSession(session));
                }
            }
        }
コード例 #5
0
        private void LoadSessions()
        {
            ClearSessions();

            if (NPSessionManager != null)
            {
                var sessions = NPSessionManager.GetSessions();

                foreach (var session in sessions)
                {
                    MediaSessions.Add(new NowPlayingMediaSession(session));
                }
            }

            RaiseMediaSessionsChanged();
        }