Lines Matching refs:udraw

19  * https://brandonw.net/udraw/
21 * https://vvvv.org/contribution/udraw-hid
68 struct udraw {
104 struct udraw *udraw = hid_get_drvdata(hdev);
121 input_report_key(udraw->joy_input_dev, BTN_WEST, data[0] & 1);
122 input_report_key(udraw->joy_input_dev, BTN_SOUTH, !!(data[0] & 2));
123 input_report_key(udraw->joy_input_dev, BTN_EAST, !!(data[0] & 4));
124 input_report_key(udraw->joy_input_dev, BTN_NORTH, !!(data[0] & 8));
126 input_report_key(udraw->joy_input_dev, BTN_SELECT, !!(data[1] & 1));
127 input_report_key(udraw->joy_input_dev, BTN_START, !!(data[1] & 2));
128 input_report_key(udraw->joy_input_dev, BTN_MODE, !!(data[1] & 16));
164 input_report_abs(udraw->joy_input_dev, ABS_X, x);
165 input_report_abs(udraw->joy_input_dev, ABS_Y, y);
167 input_sync(udraw->joy_input_dev);
180 udraw->last_one_finger_x = x;
181 udraw->last_one_finger_y = y;
182 udraw->last_two_finger_x = -1;
183 udraw->last_two_finger_y = -1;
190 * See the udraw struct definition for why this was
193 if (udraw->last_two_finger_x == -1) {
195 udraw->last_two_finger_x = x;
196 udraw->last_two_finger_y = y;
198 x = udraw->last_one_finger_x;
199 y = udraw->last_one_finger_y;
205 x = x - (udraw->last_two_finger_x
206 - udraw->last_one_finger_x);
207 y = y - (udraw->last_two_finger_y
208 - udraw->last_one_finger_y);
214 input_report_key(udraw->touch_input_dev, BTN_TOUCH, 1);
215 input_report_key(udraw->touch_input_dev, BTN_TOOL_FINGER,
217 input_report_key(udraw->touch_input_dev, BTN_TOOL_DOUBLETAP,
220 input_report_abs(udraw->touch_input_dev, ABS_X, x);
221 input_report_abs(udraw->touch_input_dev, ABS_Y, y);
223 input_report_key(udraw->touch_input_dev, BTN_TOUCH, 0);
224 input_report_key(udraw->touch_input_dev, BTN_TOOL_FINGER, 0);
225 input_report_key(udraw->touch_input_dev, BTN_TOOL_DOUBLETAP, 0);
227 input_sync(udraw->touch_input_dev);
236 input_report_key(udraw->pen_input_dev, BTN_TOUCH, (level != 0));
237 input_report_key(udraw->pen_input_dev, BTN_TOOL_PEN, 1);
238 input_report_abs(udraw->pen_input_dev, ABS_PRESSURE, level);
239 input_report_abs(udraw->pen_input_dev, ABS_X, x);
240 input_report_abs(udraw->pen_input_dev, ABS_Y, y);
242 input_report_key(udraw->pen_input_dev, BTN_TOUCH, 0);
243 input_report_key(udraw->pen_input_dev, BTN_TOOL_PEN, 0);
244 input_report_abs(udraw->pen_input_dev, ABS_PRESSURE, 0);
246 input_sync(udraw->pen_input_dev);
255 input_report_abs(udraw->accel_input_dev, ABS_X, x);
256 input_report_abs(udraw->accel_input_dev, ABS_Y, y);
257 input_report_abs(udraw->accel_input_dev, ABS_Z, z);
258 input_sync(udraw->accel_input_dev);
266 struct udraw *udraw = input_get_drvdata(dev);
268 return hid_hw_open(udraw->hdev);
273 struct udraw *udraw = input_get_drvdata(dev);
275 hid_hw_close(udraw->hdev);
302 static bool udraw_setup_touch(struct udraw *udraw,
324 udraw->touch_input_dev = input_dev;
329 static bool udraw_setup_pen(struct udraw *udraw,
352 udraw->pen_input_dev = input_dev;
357 static bool udraw_setup_accel(struct udraw *udraw,
375 udraw->accel_input_dev = input_dev;
380 static bool udraw_setup_joypad(struct udraw *udraw,
402 udraw->joy_input_dev = input_dev;
409 struct udraw *udraw;
412 udraw = devm_kzalloc(&hdev->dev, sizeof(struct udraw), GFP_KERNEL);
413 if (!udraw)
416 udraw->hdev = hdev;
417 udraw->last_two_finger_x = -1;
418 udraw->last_two_finger_y = -1;
420 hid_set_drvdata(hdev, udraw);
428 if (!udraw_setup_joypad(udraw, hdev) ||
429 !udraw_setup_touch(udraw, hdev) ||
430 !udraw_setup_pen(udraw, hdev) ||
431 !udraw_setup_accel(udraw, hdev)) {
436 ret = input_register_device(udraw->joy_input_dev) ||
437 input_register_device(udraw->touch_input_dev) ||
438 input_register_device(udraw->pen_input_dev) ||
439 input_register_device(udraw->accel_input_dev);
461 .name = "hid-udraw",