2013-04-05 50 views
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; 
} 

第一設備條目就是我的目標,我添加的代碼的一部分。這裏是我停下來的地方。

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 Link

感謝。 :)

編輯:我發現功能是在另一個文件中定義的。他們來了。

Pastebin Link

所以我真正需要做的是在該文件中定義莫名其妙G15_DEVICE_G510。

+0

從我所看到的,你想一個人使用您提供的第二個pastebin鏈接中的'G15_LCD','G15_KEYS','G15_DEVICE_5BYTE_RETURN'和'G15_DEVICE_IS_SHARED'定義'G15_DEVICE_G510'。至少g15DeviceCapabilities()會返回。另外,如果你想確定'G15_DEVICE_G510'和'g15DeviceCapabilities()'是否是相同的值,我不認爲按位AND(&)會幫助你。 – stellarossa 2013-04-05 15:05:03

回答

0

這是應該如何完成的。

#define G15_DEVICE_G510 32 
#define G510_STANDARD_KEYBOARD_INTERFACE 0x0 

然後在代碼

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

稍後我設法從here

找到它一個文件,然後我需要編輯一條線,我不得不這樣。 設備(「羅技G510」,0x46d,0xc22d,G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN|G15_DEVICE_IS_SHARED|G15_DEVICE_G510), 它的代碼最初是寫誰自稱「羣衆」

所以感謝苠:)

相關問題