コード例 #1
0
        /// <summary>
        /// Get a button event if available
        /// </summary>
        /// <returns>Button Event, null if there is no event</returns>
        public IMetaButton GetButtonEvent()
        {
            var originalResult = _interop.GetButtonEvent();

            if (originalResult != null)
            {
                return(originalResult);
            }

            if (ButtonEvents.Count <= 0)
            {
                return(null);
            }

            return(ButtonEvents.Dequeue());
        }
コード例 #2
0
        /// <summary>
        /// Calls the update loop to get new values from the localizer.
        /// </summary>
        private void Update()
        {
            IMetaButton buttonEvent = null;

            // Pull buttons until button queue is exhausted for this update.
            while ((buttonEvent = _interop.GetButtonEvent()) != null)
            {
                // Make sure we send a Release event
                if (buttonEvent.Type != _lastType && _lastState != ButtonState.ButtonRelease)
                {
                    var forceRelease = new MetaButton(_lastType, ButtonState.ButtonRelease, buttonEvent.Timestamp);
                    SendEvent(forceRelease);
                }
                SendEvent(buttonEvent);

                _lastType  = buttonEvent.Type;
                _lastState = buttonEvent.State;
            }
        }