원 소스제작자에게 USB 고속 디바이스로 할 경우 키가 여러번 찍히는 현상을 제보(?)하였고, 그것이 OSX에서만 나타나는 문제임을 알려줬었습니다. 또한 Interrupt handling에서 그러한 문제가 생기는 듯 한 것으로 보고를 했었는데 오늘 원 제작자가 해결책(?)을 제시 했습니다.
Windows/OSX가 다르게 반응하는 이유는 OSX의 경우 HID SET_IDLE(24ms)를 요청하는 반명 Windows는 HID SET_IDLE(0ms)를 요청합니다. 그런데 재미있는 것은 Apple Keyboard(즉 Vendor ID가 Apple 0x05AC)인 경우는 HID SET_IDLE(0ms)를 요청한다는 것입니다. 그래서 Vendor ID를 Apple것으로 바꿀 경우 키가 여러번 찍히는 문제가 없어집니다. 그로인해 코그에 잠재적인 버그가 바로 노출이 된다는 설명입니다. (Bug fix는 나중에 릴리즈를 하겠다고 하는군요. )
다음 링크는 문제의 키보드처리 코드입니다.
// For Keyboards, set the idle millecs to 24 or to 0 if from Apple // if ( (_interface->GetInterfaceClass() == kUSBHIDClass) && (_interface->GetInterfaceSubClass() == kUSBHIDBootInterfaceSubClass) && (_interface->GetInterfaceProtocol() == kHIDKeyboardInterfaceProtocol) ) { if (_device->GetVendorID() == kIOUSBVendorIDAppleComputer) { SetIdleMillisecs(0); } else { SetIdleMillisecs(24); } }
일단 VentorID를 바꿔서 아직까지는 문제가 없습니다. : )
'Gadget' 카테고리의 다른 글
Apple Standard Keyboard (M0116) Mod. (0) | 2011.04.13 |
---|---|
Apple Adjustable Keyboard (0) | 2011.04.04 |
Apple Desktop Bus Keyboard(IIgs) (Made in Taiwan) Controller 교체 (0) | 2011.03.04 |
Keyboard Controller for Apple Desktop Bus Keyboard (IIgs) - 4 (1) | 2011.02.24 |
Keyboard Controller for Apple Desktop Bus Keyboard (IIgs) - 3 (0) | 2011.02.22 |
댓글