0

我正在尝试为我的键盘设置驱动程序或类似的东西。我正在根据说明编辑别人的代码,但有一件事困扰着我。

这是代码

/* to add a new device, simply create a new DEVICE() in this list */
/* Fields are: "Name",VendorID,ProductID,Capabilities */
const libg15_devices_t g15_devices[] = {
    DEVICE("Logitech G510",0x46d,0xc22d, G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN|G15_DEVICE_IS_SHARED),
    DEVICE("Logitech G15",0x46d,0xc222,G15_LCD|G15_KEYS),
    DEVICE("Logitech G11",0x46d,0xc225,G15_KEYS),
    DEVICE("Logitech Z-10",0x46d,0x0a07,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED),
    DEVICE("Logitech G15 v2",0x46d,0xc227,G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN),
    DEVICE("Logitech Gamepanel",0x46d,0xc251,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED),
    DEVICE(NULL,0,0,0)
};


/* return device capabilities */
int g15DeviceCapabilities() {
    if(found_devicetype>-1)
        return g15_devices[found_devicetype].caps;
    else
        return -1;
}

第一个 DEVICE 条目是我的目标,也是我添加的代码的一部分。这是我停下来的地方。

int setLEDs(unsigned int leds)
{
    int retval = 0;
    unsigned char m_led_buf[4] = { 2, 4, 0, 0 };
    unsigned char g510_led_buf[2] = {4, 0};
    m_led_buf[2] = ~(unsigned char)leds;

    if(g15DeviceCapabilities() & G15_DEVICE_G510) {

在 G15_DEVICE_G510 上它停止。我不知道我应该用什么值代替它。

如果此信息不足,这是整个代码的粘贴箱。

Pastebin 链接

谢谢。:)

编辑:我发现函数是在另一个文件中定义的。他们来了。

Pastebin 链接

所以我真正需要做的是在该文件中以某种方式定义 G15_DEVICE_G510 。

4

1 回答 1

0

这就是它应该这样做的方式。

#define G15_DEVICE_G510 32
#define G510_STANDARD_KEYBOARD_INTERFACE    0x0

然后在代码的稍后位置

  int setG510LEDColor(unsigned char r, unsigned char g, unsigned char b);

我设法从这里找到了一个文件

然后我需要编辑我必须这样做的一行。DEVICE("Logitech G510",0x46d,0xc22d,G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN|G15_DEVICE_IS_SHARED|G15_DEVICE_G510), 它的代码原来是一个自称“众”的家伙写的

所以谢谢大家:)

于 2013-04-06T02:38:46.103 回答