1 /* $OpenBSD: ugraphire_rdesc.h,v 1.3 2006/01/06 03:36:32 brad Exp $ */ 2 /* $NetBSD: ugraphire_rdesc.h,v 1.1 2000/12/29 01:47:49 augustss Exp $ */ 3 /* 4 * Copyright (c) 2000 Nick Hibma <n_hibma@freebsd.org> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 */ 28 29 static uByte uhid_graphire_report_descr[] = { 30 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 31 0x09, 0x01, /* USAGE (Digitizer) */ 32 0xa1, 0x01, /* COLLECTION (Application) */ 33 0x85, 0x02, /* REPORT_ID (2) */ 34 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 35 0x09, 0x01, /* USAGE (Digitizer) */ 36 0xa1, 0x00, /* COLLECTION (Physical) */ 37 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 38 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ 39 0x09, 0x33, /* USAGE (Touch) */ 40 0x95, 0x01, /* REPORT_COUNT (1) */ 41 0x75, 0x01, /* REPORT_SIZE (1) */ 42 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 43 0x09, 0x44, /* USAGE (Barrel Switch) */ 44 0x95, 0x02, /* REPORT_COUNT (2) */ 45 0x75, 0x01, /* REPORT_SIZE (1) */ 46 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 47 0x09, 0x00, /* USAGE (Undefined) */ 48 0x95, 0x02, /* REPORT_COUNT (2) */ 49 0x75, 0x01, /* REPORT_SIZE (1) */ 50 0x81, 0x03, /* INPUT (Cnst,Var,Abs) */ 51 0x09, 0x3c, /* USAGE (Invert) */ 52 0x95, 0x01, /* REPORT_COUNT (1) */ 53 0x75, 0x01, /* REPORT_SIZE (1) */ 54 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 55 0x09, 0x38, /* USAGE (Transducer Index) */ 56 0x95, 0x01, /* REPORT_COUNT (1) */ 57 0x75, 0x01, /* REPORT_SIZE (1) */ 58 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 59 0x09, 0x32, /* USAGE (In Range) */ 60 0x95, 0x01, /* REPORT_COUNT (1) */ 61 0x75, 0x01, /* REPORT_SIZE (1) */ 62 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 63 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ 64 0x09, 0x30, /* USAGE (X) */ 65 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 66 0x26, 0xde, 0x27, /* LOGICAL_MAXIMUM (10206) */ 67 0x95, 0x01, /* REPORT_COUNT (1) */ 68 0x75, 0x10, /* REPORT_SIZE (16) */ 69 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 70 0x09, 0x31, /* USAGE (Y) */ 71 0x26, 0xfe, 0x1c, /* LOGICAL_MAXIMUM (7422) */ 72 0x95, 0x01, /* REPORT_COUNT (1) */ 73 0x75, 0x10, /* REPORT_SIZE (16) */ 74 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 75 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 76 0x09, 0x30, /* USAGE (Tip Pressure) */ 77 0x26, 0xff, 0x01, /* LOGICAL_MAXIMUM (511) */ 78 0x95, 0x01, /* REPORT_COUNT (1) */ 79 0x75, 0x10, /* REPORT_SIZE (16) */ 80 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 81 0xc0, /* END_COLLECTION */ 82 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 83 0x09, 0x00, /* USAGE (Undefined) */ 84 0x85, 0x02, /* REPORT_ID (2) */ 85 0x95, 0x01, /* REPORT_COUNT (1) */ 86 0xb1, 0x02, /* FEATURE (Data,Var,Abs) */ 87 0x09, 0x00, /* USAGE (Undefined) */ 88 0x85, 0x03, /* REPORT_ID (3) */ 89 0x95, 0x01, /* REPORT_COUNT (1) */ 90 0xb1, 0x02, /* FEATURE (Data,Var,Abs) */ 91 0xc0, /* END_COLLECTION */ 92 }; 93 94 static uByte uhid_graphire3_4x5_report_descr[] = { 95 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ 96 0x09, 0x02, /* USAGE (Mouse) */ 97 0xa1, 0x01, /* COLLECTION (Application) */ 98 0x85, 0x01, /* REPORT_ID (1) */ 99 0x09, 0x01, /* USAGE (Pointer) */ 100 0xa1, 0x00, /* COLLECTION (Physical) */ 101 0x05, 0x09, /* USAGE_PAGE (Button) */ 102 0x19, 0x01, /* USAGE_MINIMUM (Button 1) */ 103 0x29, 0x03, /* USAGE_MAXIMUM (Button 3) */ 104 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 105 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ 106 0x95, 0x03, /* REPORT_COUNT (3) */ 107 0x75, 0x01, /* REPORT_SIZE (1) */ 108 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 109 0x95, 0x01, /* REPORT_COUNT (1) */ 110 0x75, 0x05, /* REPORT_SIZE (5) */ 111 0x81, 0x01, /* INPUT (Cnst,Ary,Abs) */ 112 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ 113 0x09, 0x30, /* USAGE (X) */ 114 0x09, 0x31, /* USAGE (Y) */ 115 0x09, 0x38, /* USAGE (Wheel) */ 116 0x15, 0x81, /* LOGICAL_MINIMUM (-127) */ 117 0x25, 0x7f, /* LOGICAL_MAXIMUM (127) */ 118 0x75, 0x08, /* REPORT_SIZE (8) */ 119 0x95, 0x03, /* REPORT_COUNT (3) */ 120 0x81, 0x06, /* INPUT (Data,Var,Rel) */ 121 0xc0, /* END_COLLECTION */ 122 0xc0, /* END_COLLECTION */ 123 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 124 0x09, 0x01, /* USAGE (Pointer) */ 125 0xa1, 0x01, /* COLLECTION (Application) */ 126 0x85, 0x02, /* REPORT_ID (2) */ 127 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 128 0x09, 0x01, /* USAGE (Digitizer) */ 129 0xa1, 0x00, /* COLLECTION (Physical) */ 130 0x09, 0x33, /* USAGE (Touch) */ 131 0x09, 0x44, /* USAGE (Barrel Switch) */ 132 0x09, 0x44, /* USAGE (Barrel Switch) */ 133 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 134 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ 135 0x75, 0x01, /* REPORT_SIZE (1) */ 136 0x95, 0x03, /* REPORT_COUNT (3) */ 137 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 138 0x75, 0x01, /* REPORT_SIZE (1) */ 139 0x95, 0x02, /* REPORT_COUNT (2) */ 140 0x81, 0x01, /* INPUT (Cnst,Ary,Abs) */ 141 0x09, 0x3c, /* USAGE (Invert) */ 142 0x09, 0x38, /* USAGE (Transducer Index) */ 143 0x09, 0x32, /* USAGE (In Range) */ 144 0x75, 0x01, /* REPORT_SIZE (1) */ 145 0x95, 0x03, /* REPORT_COUNT (3) */ 146 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 147 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ 148 0x09, 0x30, /* USAGE (X) */ 149 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 150 0x26, 0xde, 0x27, /* LOGICAL_MAXIMUM (10206) */ 151 0x75, 0x10, /* REPORT_SIZE (16) */ 152 0x95, 0x01, /* REPORT_COUNT (1) */ 153 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 154 0x09, 0x31, /* USAGE (Y) */ 155 0x26, 0xfe, 0x1c, /* LOGICAL_MAXIMUM (7422) */ 156 0x75, 0x10, /* REPORT_SIZE (16) */ 157 0x95, 0x01, /* REPORT_COUNT (1) */ 158 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 159 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 160 0x09, 0x30, /* USAGE (Tip Pressure) */ 161 0x26, 0xff, 0x01, /* LOGICAL_MAXIMUM (511) */ 162 0x75, 0x10, /* REPORT_SIZE (16) */ 163 0x95, 0x01, /* REPORT_COUNT (1) */ 164 0x81, 0x02, /* INPUT (Data,Var,Abs) */ 165 0xc0, /* END_COLLECTION */ 166 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */ 167 0x09, 0x00, /* USAGE (Undefined) */ 168 0x85, 0x02, /* REPORT_ID (2) */ 169 0x95, 0x01, /* REPORT_COUNT (1) */ 170 0xb1, 0x02, /* FEATURE (Data,Var,Abs) */ 171 0x09, 0x00, /* USAGE (Undefined) */ 172 0x85, 0x03, /* REPORT_ID (3) */ 173 0x95, 0x01, /* REPORT_COUNT (1) */ 174 0xb1, 0x02, /* FEATURE (Data,Var,Abs) */ 175 0xc0 /* END_COLLECTION */ 176 }; 177