private static void RegisterPlaybackCommandReceivedEvent()
 {
     _playbackCommandCallback = (clientName, playbackCode, _) =>
     {
         PlaybackCommandReceived?.Invoke(null, new PlaybackCommandReceivedEventArgs(clientName, playbackCode.ToPublic()));
     };
     Native.SetPlaybackStateCommandReceivedCb(Handle, _playbackCommandCallback).
     ThrowIfError("Failed to init PlaybackStateCommandReceived event.");
 }
        private static void RegisterPlaybackActionCommandReceivedEvent()
        {
            _playbackActionCommandCallback = (clientName, requestId, playbackCommand, _) =>
            {
                // SendPlaybackCommand doesn't use requestId. It'll be removed in Level 7.
                if (requestId == null)
                {
                    PlaybackCommandReceived?.Invoke(null, new PlaybackCommandReceivedEventArgs(clientName, playbackCommand.ToPublic()));
                }
                else
                {
                    var command = new PlaybackCommand(playbackCommand.ToPublic());
                    command.SetResponseInformation(clientName, requestId);

                    PlaybackActionCommandReceived?.Invoke(null, new PlaybackActionCommandReceivedEventArgs(command));
                }
            };
            Native.SetPlaybackActionCommandReceivedCb(Handle, _playbackActionCommandCallback).
            ThrowIfError("Failed to init PlaybackActionCommandReceived event.");
        }