+ if ((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS) { /* class request type */
+ color.name.red = 13;
+ if (rq->bRequest == USBRQ_HID_GET_REPORT){ /* wValue: ReportType (highbyte), ReportID (lowbyte) */
+ /* we only have one report type, so don't look at wValue */
+ if (color.name.red == 133) {
+ color.name.red = 23;
+ usbMsgPtr = reportBuffer;
+ reportBuffer[0] = 0;
+ reportBuffer[1] = KEY_X;
+ }
+ return sizeof(reportBuffer);
+ } else if (rq->bRequest == USBRQ_HID_GET_IDLE) {
+ usbMsgPtr = &idleRate;
+ return 1;
+ }else if (rq->bRequest == USBRQ_HID_SET_IDLE) {
+ usbMsgPtr = reportBuffer;
+ idleRate = rq->wValue.bytes[1];
+ }
+ }
+ if ((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_VENDOR) {