Lines Matching +full:5 +full:- +full:button
1 // SPDX-License-Identifier: GPL-2.0-only
35 * 0x05, 0x09, // Usage Page (Button) 12
43 * 0x95, 0x05, // Report Count (5) 28
81 * Each button gets assigned the following events:
84 * Button 1: 06 01 12 00 00 00 00 00 -> LControl + o
85 * Button 2: 06 01 11 00 00 00 00 00 -> LControl + n
86 * Button 3: 06 00 3e 00 00 00 00 00 -> F5
87 * Button 4: 06 02 00 00 00 00 00 00 -> LShift
88 * Button 5: 06 01 00 00 00 00 00 00 -> LControl
89 * Button 6: 06 04 00 00 00 00 00 00 -> LAlt
90 * Button 7: 06 01 16 00 00 00 00 00 -> LControl + s
91 * Button 8: 06 01 1d 00 00 00 00 00 -> LControl + z
92 * Button 9: 06 00 2c 00 00 00 00 00 -> Space
93 * Button 10: 06 03 1d 00 00 00 00 00 -> LControl + LShift + z
94 * Wheel: 06 01 57 00 00 00 00 00 -> clockwise rotation (LControl + Keypad Plus)
95 * Wheel: 06 01 56 00 00 00 00 00 -> counter-clockwise rotation
99 * each button gets assigned a new slot in the Input (Data,Arr,Abs):
101 * Button 1 + 3: 06 01 12 3e 00 00 00 00 -> LControl + o + F5
103 * When a modifier is pressed (Button 4, 5, or 6), the assigned key is set to 00:
105 * Button 5 + 7: 06 01 00 16 00 00 00 00 -> LControl + s
107 * This is mostly fine, but with Button 8 and Button 10 sharing the same
134 // -- Byte 0 in report
136 // Byte 1 in report - same than report ID
145 // Byte 2-3 is the button state
157 ReportCount(5) // padding
159 // Byte 4 in report - just exists so we get to be a tablet pad
167 // Bytes 5/6 in report - just exists so we get to be a tablet pad
176 LogicalMinimum_i8(-1)
182 // -- Byte 0 in report
184 // Byte 1 in report - same than report ID
188 // Byte 2 in report - always 0x01
198 // Byte 3 in report - battery value
206 // Byte 4 in report - charging state
221 __s32 rdesc_size = hctx->size; in SEC()
235 hid_set_name(hctx->hid, "Disabled by HID-BPF Hanvon Ugee Shortcut Remote"); in SEC()
280 /* button event */ in SEC()
288 ret = 5; in SEC()
302 switch (ctx->rdesc_size) { in probe()
307 ctx->retval = 0; in probe()
310 ctx->retval = -EINVAL; in probe()
314 if (ctx->rdesc_size == VENDOR_DESCRIPTOR_LENGTH) { in probe()
315 struct hid_bpf_ctx *hctx = hid_bpf_allocate_context(ctx->hid); in probe()
318 ctx->retval = -EINVAL; in probe()
322 ctx->retval = HID_BPF_ASYNC_INIT(switch_to_raw_mode) || in probe()