private void RaiseServerChangedEvent(MediaControllerServerState state, MediaController controller)
        {
            if (controller == null)
            {
                return;
            }

            if (state == MediaControllerServerState.Activated)
            {
                ServerStarted?.Invoke(this, new MediaControlServerStartedEventArgs(controller));
            }
            else
            {
                controller.RaiseStoppedEvent();
                ServerStopped?.Invoke(this, new MediaControlServerStoppedEventArgs(controller.ServerAppId));
            }
        }
        private MediaController HandleServerUpdated(string serverName, MediaControllerServerState state)
        {
            try
            {
                _lock.EnterWriteLock();

                if (state == MediaControllerServerState.Activated)
                {
                    return(HandleActivation(serverName));
                }

                return(HandleDeactivation(serverName));
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
 internal static extern MediaControllerError GetLatestServer(MediaControllerClientHandle handle,
                                                             out IntPtr serverName, out MediaControllerServerState serverState);