From 0bb8d924cbcd02069eb64893a2c2d48a20631866 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Mon, 17 Mar 2014 19:46:18 +0100 Subject: unifying: move definitions to header Prepare for adding DJ support, which I expect to be huge and unrelated to the HID code. Signed-off-by: Peter Wu --- hw/usb/dev-unifying.c | 21 ++------------------- hw/usb/hid-logitech-dj.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 19 deletions(-) create mode 100644 hw/usb/hid-logitech-dj.h (limited to 'hw') diff --git a/hw/usb/dev-unifying.c b/hw/usb/dev-unifying.c index 8c3e7335fd..25f1fe920e 100644 --- a/hw/usb/dev-unifying.c +++ b/hw/usb/dev-unifying.c @@ -34,6 +34,7 @@ #include "hw/usb/desc.h" #include "dump.h" #include "hw/input/hid.h" +#include "hw/usb/hid-logitech-dj.h" /* HID requests ((bmRequestType << 8) | bRequest) */ #define HID_GET_REPORT 0xa101 @@ -44,24 +45,6 @@ #define HID_SET_IDLE 0x210a #define HID_SET_PROTOCOL 0x210b -/* interface numbers (also used for array indices) */ -enum { - IFACE_KBD, /* keyboard */ - IFACE_MSE, /* mouse; multimedia, power, media center buttons */ - IFACE_DJ, /* DJ mode */ -}; - -typedef struct USBLtunifyState { - USBDevice dev; - USBEndpoint *intr[3]; /* interfaces (keyboard, mouse, DJ) */ - UsbDumpState *usb_dump_state; - enum { - LTUNIFY_MODE_HID = 1, - LTUNIFY_MODE_DJ = 2 - } mode; - HIDState hid[2]; /* HID devices (keyboard, mouse) */ -} USBLtunifyState; - /* descriptors are retrieved with usbhid-dump (need to unbind interfaces from * usbhid) and prettified with hidrd 0.2 */ @@ -493,7 +476,7 @@ static void usb_ltunify_handle_control(USBDevice *dev, USBPacket *p, goto data_ready; } - if (index >= 0 && index <= 1) { + if (index == IFACE_KBD || index == IFACE_KBD) { /* HID interface for mouse and keyboard */ usb_ltunify_handle_control_hid(dev, p, request, value, index, length, data); } else { diff --git a/hw/usb/hid-logitech-dj.h b/hw/usb/hid-logitech-dj.h new file mode 100644 index 0000000000..4269457354 --- /dev/null +++ b/hw/usb/hid-logitech-dj.h @@ -0,0 +1,45 @@ +/* + * Logitech Unifying recever emulation (DJ mode). + * + * Copyright (c) 2014 Peter Wu + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef HID_LOGITECH_DJ_H +#define HID_LOGITECH_DJ_H + +/* interface numbers (also used for array indices) */ +enum { + IFACE_KBD, /* keyboard */ + IFACE_MSE, /* mouse; multimedia, power, media center buttons */ + IFACE_DJ, /* DJ mode */ +}; + +typedef struct USBLtunifyState { + USBDevice dev; + USBEndpoint *intr[3]; /* interfaces (keyboard, mouse, DJ) */ + UsbDumpState *usb_dump_state; + enum { + LTUNIFY_MODE_HID = 1, + LTUNIFY_MODE_DJ = 2 + } mode; + HIDState hid[2]; /* HID devices (keyboard, mouse) */ +} USBLtunifyState; + +#endif -- cgit v1.2.1