private static IntPtr TryGetDeviceState(InputDevice device, BufferSelector selector)
        {
            var manager     = InputSystem.s_Manager;
            var deviceIndex = device.m_DeviceIndex;

            switch (selector)
            {
            case BufferSelector.DynamicUpdateFrontBuffer:
                if (manager.m_StateBuffers.m_DynamicUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_DynamicUpdateBuffers.GetFrontBuffer(deviceIndex));
                }
                break;

            case BufferSelector.DynamicUpdateBackBuffer:
                if (manager.m_StateBuffers.m_DynamicUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_DynamicUpdateBuffers.GetBackBuffer(deviceIndex));
                }
                break;

            case BufferSelector.FixedUpdateFrontBuffer:
                if (manager.m_StateBuffers.m_FixedUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_FixedUpdateBuffers.GetFrontBuffer(deviceIndex));
                }
                break;

            case BufferSelector.FixedUpdateBackBuffer:
                if (manager.m_StateBuffers.m_FixedUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_FixedUpdateBuffers.GetBackBuffer(deviceIndex));
                }
                break;

            case BufferSelector.EditorUpdateFrontBuffer:
                if (manager.m_StateBuffers.m_EditorUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_EditorUpdateBuffers.GetFrontBuffer(deviceIndex));
                }
                break;

            case BufferSelector.EditorUpdateBackBuffer:
                if (manager.m_StateBuffers.m_EditorUpdateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_EditorUpdateBuffers.GetBackBuffer(deviceIndex));
                }
                break;
            }

            return(IntPtr.Zero);
        }
        private static unsafe void *TryGetDeviceState(InputDevice device, BufferSelector selector)
        {
            var manager     = InputSystem.s_Manager;
            var deviceIndex = device.m_DeviceIndex;

            switch (selector)
            {
            case BufferSelector.PlayerUpdateFrontBuffer:
                if (manager.m_StateBuffers.m_PlayerStateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_PlayerStateBuffers.GetFrontBuffer(deviceIndex));
                }
                break;

            case BufferSelector.PlayerUpdateBackBuffer:
                if (manager.m_StateBuffers.m_PlayerStateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_PlayerStateBuffers.GetBackBuffer(deviceIndex));
                }
                break;

            case BufferSelector.EditorUpdateFrontBuffer:
                if (manager.m_StateBuffers.m_EditorStateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_EditorStateBuffers.GetFrontBuffer(deviceIndex));
                }
                break;

            case BufferSelector.EditorUpdateBackBuffer:
                if (manager.m_StateBuffers.m_EditorStateBuffers.valid)
                {
                    return(manager.m_StateBuffers.m_EditorStateBuffers.GetBackBuffer(deviceIndex));
                }
                break;
            }

            return(null);
        }