Получить строковое представление Constant или Enum в IOKit, возможно? - PullRequest
0 голосов
/ 13 сентября 2010

Есть ли способ получить строковое представление для констант и перечислений, определенных в IOKit?

Я ввожу фураж в IOKit и пытаюсь вывести из консоли какой-либо параметр, который возвращают USB-устройства.Но я заканчиваю списками чисел.Есть ли другой способ перечислить, что они означают?

Например, в IOHIDKeys.h

enum IOHIDElementType {
    kIOHIDElementTypeInput_Misc        = 1,
    kIOHIDElementTypeInput_Button      = 2,
    kIOHIDElementTypeInput_Axis        = 3,
    kIOHIDElementTypeInput_ScanCodes   = 4,
    kIOHIDElementTypeOutput            = 129,
    kIOHIDElementTypeFeature           = 257,
    kIOHIDElementTypeCollection        = 513
};
typedef enum IOHIDElementType IOHIDElementType;

или еще хуже (для меня) в IOHIDUsageTables.h Я должен посмотретьшестнадцатеричное значение и найти его в заголовке ... например:

kHIDUsage_GD_Joystick   = 0x04, /* Application Collection */
kHIDUsage_GD_GamePad    = 0x05, /* Application Collection */
kHIDUsage_GD_Keyboard   = 0x06, /* Application Collection */
kHIDUsage_GD_Keypad = 0x07, /* Application Collection */

1 Ответ

1 голос
/ 13 сентября 2010

Вы можете использовать классический метод переключения, например.

const char *IOHIDElemtType2str(IOHIDElementType type)
{
    switch(type)
    {
        case kIOHIDElementTypeInput_Misc:
            return "kIOHidElementTypeInput_Misc";
    }
}

и т. Д.

...