1 /*-
2 * Copyright (c) 2005 Ed Schouten <ed@fxq.nl>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD$
27 */
28
29 /*
30 * The descriptor has no output report format, thus preventing you from
31 * controlling the LEDs and the built-in rumblers.
32 */
33 static const uByte uhid_xb360gp_report_descr[] = {
34 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
35 0x09, 0x05, /* USAGE (Gamepad) */
36 0xa1, 0x01, /* COLLECTION (Application) */
37 /* Unused */
38 0x75, 0x08, /* REPORT SIZE (8) */
39 0x95, 0x01, /* REPORT COUNT (1) */
40 0x81, 0x01, /* INPUT (Constant) */
41 /* Byte count */
42 0x75, 0x08, /* REPORT SIZE (8) */
43 0x95, 0x01, /* REPORT COUNT (1) */
44 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
45 0x09, 0x3b, /* USAGE (Byte Count) */
46 0x81, 0x01, /* INPUT (Constant) */
47 /* D-Pad */
48 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
49 0x09, 0x01, /* USAGE (Pointer) */
50 0xa1, 0x00, /* COLLECTION (Physical) */
51 0x75, 0x01, /* REPORT SIZE (1) */
52 0x15, 0x00, /* LOGICAL MINIMUM (0) */
53 0x25, 0x01, /* LOGICAL MAXIMUM (1) */
54 0x35, 0x00, /* PHYSICAL MINIMUM (0) */
55 0x45, 0x01, /* PHYSICAL MAXIMUM (1) */
56 0x95, 0x04, /* REPORT COUNT (4) */
57 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
58 0x09, 0x90, /* USAGE (D-Pad Up) */
59 0x09, 0x91, /* USAGE (D-Pad Down) */
60 0x09, 0x93, /* USAGE (D-Pad Left) */
61 0x09, 0x92, /* USAGE (D-Pad Right) */
62 0x81, 0x02, /* INPUT (Data, Variable, Absolute) */
63 0xc0, /* END COLLECTION */
64 /* Buttons 5-11 */
65 0x75, 0x01, /* REPORT SIZE (1) */
66 0x15, 0x00, /* LOGICAL MINIMUM (0) */
67 0x25, 0x01, /* LOGICAL MAXIMUM (1) */
68 0x35, 0x00, /* PHYSICAL MINIMUM (0) */
69 0x45, 0x01, /* PHYSICAL MAXIMUM (1) */
70 0x95, 0x07, /* REPORT COUNT (7) */
71 0x05, 0x09, /* USAGE PAGE (Button) */
72 0x09, 0x08, /* USAGE (Button 8) */
73 0x09, 0x07, /* USAGE (Button 7) */
74 0x09, 0x09, /* USAGE (Button 9) */
75 0x09, 0x0a, /* USAGE (Button 10) */
76 0x09, 0x05, /* USAGE (Button 5) */
77 0x09, 0x06, /* USAGE (Button 6) */
78 0x09, 0x0b, /* USAGE (Button 11) */
79 0x81, 0x02, /* INPUT (Data, Variable, Absolute) */
80 /* Unused */
81 0x75, 0x01, /* REPORT SIZE (1) */
82 0x95, 0x01, /* REPORT COUNT (1) */
83 0x81, 0x01, /* INPUT (Constant) */
84 /* Buttons 1-4 */
85 0x75, 0x01, /* REPORT SIZE (1) */
86 0x15, 0x00, /* LOGICAL MINIMUM (0) */
87 0x25, 0x01, /* LOGICAL MAXIMUM (1) */
88 0x35, 0x00, /* PHYSICAL MINIMUM (0) */
89 0x45, 0x01, /* PHYSICAL MAXIMUM (1) */
90 0x95, 0x04, /* REPORT COUNT (4) */
91 0x05, 0x09, /* USAGE PAGE (Button) */
92 0x19, 0x01, /* USAGE MINIMUM (Button 1) */
93 0x29, 0x04, /* USAGE MAXIMUM (Button 4) */
94 0x81, 0x02, /* INPUT (Data, Variable, Absolute) */
95 /* Triggers */
96 0x75, 0x08, /* REPORT SIZE (8) */
97 0x15, 0x00, /* LOGICAL MINIMUM (0) */
98 0x26, 0xff, 0x00, /* LOGICAL MAXIMUM (255) */
99 0x35, 0x00, /* PHYSICAL MINIMUM (0) */
100 0x46, 0xff, 0x00, /* PHYSICAL MAXIMUM (255) */
101 0x95, 0x02, /* REPORT SIZE (2) */
102 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
103 0x09, 0x32, /* USAGE (Z) */
104 0x09, 0x35, /* USAGE (Rz) */
105 0x81, 0x02, /* INPUT (Data, Variable, Absolute) */
106 /* Sticks */
107 0x75, 0x10, /* REPORT SIZE (16) */
108 0x16, 0x00, 0x80, /* LOGICAL MINIMUM (-32768) */
109 0x26, 0xff, 0x7f, /* LOGICAL MAXIMUM (32767) */
110 0x36, 0x00, 0x80, /* PHYSICAL MINIMUM (-32768) */
111 0x46, 0xff, 0x7f, /* PHYSICAL MAXIMUM (32767) */
112 0x95, 0x04, /* REPORT COUNT (4) */
113 0x05, 0x01, /* USAGE PAGE (Generic Desktop) */
114 0x09, 0x30, /* USAGE (X) */
115 0x09, 0x31, /* USAGE (Y) */
116 0x09, 0x33, /* USAGE (Rx) */
117 0x09, 0x34, /* USAGE (Ry) */
118 0x81, 0x02, /* INPUT (Data, Variable, Absolute) */
119 /* Unused */
120 0x75, 0x30, /* REPORT SIZE (48) */
121 0x95, 0x01, /* REPORT COUNT (1) */
122 0x81, 0x01, /* INPUT (Constant) */
123 0xc0, /* END COLLECTION */
124 };
Cache object: 8f4325e72f7d72380a8dba69de88a15e
|