{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU, HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3, HID_QUIRK_MULTI_INPUT },
- - - { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE, HID_QUIRK_MULTI_INPUT },
+ + + { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR, HID_QUIRK_MULTI_INPUT },
- - - { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE, HID_QUIRK_MULTI_INPUT },
++ ++++ { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1, HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_ELAN, HID_ANY_ID, HID_QUIRK_ALWAYS_POLL },
{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
wacom->id[0] = STYLUS_DEVICE_ID;
}
------ pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1));
------ if (features->pressure_max > 255)
------ pressure = (pressure << 1) | ((data[4] >> 6) & 1);
------ pressure += (features->pressure_max + 1) / 2;
-
- input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14));
- input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14));
- input_report_abs(input, ABS_PRESSURE, pressure);
-
- input_report_key(input, BTN_TOUCH, data[4] & 0x08);
- input_report_key(input, BTN_STYLUS, data[4] & 0x10);
- /* Only allow the stylus2 button to be reported for the pen tool. */
- input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20));
++++++ if (prox) {
++++++ pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1));
++++++ if (features->pressure_max > 255)
++++++ pressure = (pressure << 1) | ((data[4] >> 6) & 1);
++++++ pressure += (features->pressure_max + 1) / 2;
+
----- input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14));
----- input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14));
----- input_report_abs(input, ABS_PRESSURE, pressure);
++++++ input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14));
++++++ input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14));
++++++ input_report_abs(input, ABS_PRESSURE, pressure);
+
----- input_report_key(input, BTN_TOUCH, data[4] & 0x08);
----- input_report_key(input, BTN_STYLUS, data[4] & 0x10);
----- /* Only allow the stylus2 button to be reported for the pen tool. */
----- input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20));
++++++ input_report_key(input, BTN_TOUCH, data[4] & 0x08);
++++++ input_report_key(input, BTN_STYLUS, data[4] & 0x10);
++++++ /* Only allow the stylus2 button to be reported for the pen tool. */
++++++ input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20));
++++++ }
if (!prox)
wacom->id[0] = 0;
switch (equivalent_usage) {
case WACOM_HID_WD_TOUCHRINGSTATUS:
++++++ if (!value)
++++++ input_event(input, usage->type, usage->code, 0);
+++++ break;
+++++
++++++ case WACOM_HID_WD_TOUCHONOFF:
++++++ if (wacom_wac->shared->touch_input) {
++++++ input_report_switch(wacom_wac->shared->touch_input,
++++++ SW_MUTE_DEVICE, !value);
++++++ input_sync(wacom_wac->shared->touch_input);
++++++ }
+ break;
+
++++++ case WACOM_HID_WD_BUTTONCENTER:
++++++ for (i = 0; i < wacom->led.count; i++)
++++++ wacom_update_led(wacom, features->numbered_buttons,
++++++ value, i);
++++++ /* fall through*/
default:
------ features->input_event_flag = true;
input_event(input, usage->type, usage->code, value);
break;
}