Esempio n. 1
0
        public static bool IsDefinedHIDUsage(HIDElementDescriptor hidElement)
        {
            bool isKnown = false;

            if (PageId.IsDefined(typeof(PageId), hidElement.usagePageID))
            {
                switch ((PageId)hidElement.usagePageID)
                {
                case PageId.GenericDesktopPage:
                {
                    isKnown = GenericDesktopUsage.IsDefined(typeof(GenericDesktopUsage), hidElement.usageID);
                }
                break;

                case PageId.SimulationPage:
                {
                    isKnown = SimulationUsage.IsDefined(typeof(SimulationUsage), hidElement.usageID);
                }
                break;

                case PageId.ButtonPage:
                {
                    isKnown = hidElement.usageID > 0 && hidElement.usageID <= kMaxButtons;
                }
                break;
                }
            }
            return(isKnown);
        }
Esempio n. 2
0
        static string GetUsageName(int pageId, int usageId)
        {
            string usageName = string.Format("Unknown[{0}][{1}]", pageId, usageId);

            switch ((PageId)pageId)
            {
            case PageId.GenericDesktopPage:
            {
                if (GenericDesktopUsage.IsDefined(typeof(GenericDesktopUsage), usageId))
                {
                    usageName = ((GenericDesktopUsage)usageId).ToString();
                }
            }
            break;

            case PageId.SimulationPage:
            {
                if (SimulationUsage.IsDefined(typeof(SimulationUsage), usageId))
                {
                    usageName = ((SimulationUsage)usageId).ToString();
                }
            }
            break;

            case PageId.ButtonPage:
            {
                usageName = string.Format("Button {0}", usageId);
            }
            break;

            default:
                break;
            }
            return(usageName);
        }
Esempio n. 3
0
        public static void AddDefaultControls(ControlSetup controlSetup)
        {
            System.Array usagesArray = GenericDesktopUsage.GetValues(typeof(GenericDesktopUsage));
            for (int i = 0; i < usagesArray.Length; i++)
            {
                GenericDesktopUsage usageId = (GenericDesktopUsage)usagesArray.GetValue(i);
                string usageType            = GetGenericDesktopUsageType(usageId);
                int    controlId            = GetControlId((int)PageId.GenericDesktopPage, (int)usageId);
                string usageName            = GetUsageName((int)PageId.GenericDesktopPage, (int)usageId);
                AddHIDControl(controlSetup, new HIDElementDescriptor(controlId, usageName, usageType, (int)usageId, (int)PageId.GenericDesktopPage));
            }

            usagesArray = SimulationUsage.GetValues(typeof(SimulationUsage));
            for (int i = 0; i < usagesArray.Length; i++)
            {
                SimulationUsage usageId   = (SimulationUsage)usagesArray.GetValue(i);
                string          usageType = GetSimulationUsageType(usageId);
                int             controlId = GetControlId((int)PageId.SimulationPage, (int)usageId);
                string          usageName = GetUsageName((int)PageId.SimulationPage, (int)usageId);
                AddHIDControl(controlSetup, new HIDElementDescriptor(controlId, usageName, usageType, (int)usageId, (int)PageId.SimulationPage));
            }

            // Usages are 1 based
            for (int i = 1; i <= kMaxButtons; i++)
            {
                string usageType = "Button";
                int    controlId = GetControlId((int)PageId.ButtonPage, i);
                string usageName = GetUsageName((int)PageId.ButtonPage, i);
                AddHIDControl(controlSetup, new HIDElementDescriptor(controlId, usageName, usageType, i, (int)PageId.ButtonPage));
            }
        }
Esempio n. 4
0
        static string GetGenericDesktopUsageType(GenericDesktopUsage usageId)
        {
            string usageType;

            switch (usageId)
            {
            case GenericDesktopUsage.Start:
            case GenericDesktopUsage.Select:
            case GenericDesktopUsage.SystemMenuContext:
            case GenericDesktopUsage.SystemMenuMain:
            case GenericDesktopUsage.SystemMenuApp:
            case GenericDesktopUsage.SystemMenuHelp:
            case GenericDesktopUsage.SystemMenuExit:
            case GenericDesktopUsage.SystemMenuSelect:
            case GenericDesktopUsage.SystemMenuRight:
            case GenericDesktopUsage.SystemMenuLeft:
            case GenericDesktopUsage.SystemMenuUp:
            case GenericDesktopUsage.SystemMenuDown:
            case GenericDesktopUsage.DPadUp:
            case GenericDesktopUsage.DPadDown:
            case GenericDesktopUsage.DPadRight:
            case GenericDesktopUsage.DPadLeft:
                usageType = "Button";
                break;

            case GenericDesktopUsage.X:
            case GenericDesktopUsage.Y:
            case GenericDesktopUsage.Z:
            case GenericDesktopUsage.Rx:
            case GenericDesktopUsage.Ry:
            case GenericDesktopUsage.Rz:
            case GenericDesktopUsage.Slider:
            case GenericDesktopUsage.Dial:
            case GenericDesktopUsage.Wheel:
            case GenericDesktopUsage.HatSwitch:
            default:
                usageType = "Axis";
                break;
            }
            return(usageType);
        }