USB Host Shield 2.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
hidescriptorparser.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2011 Circuits At Home, LTD. All rights reserved.
2 
3 This software may be distributed and modified under the terms of the GNU
4 General Public License version 2 (GPL2) as published by the Free Software
5 Foundation and appearing in the file GPL2.TXT included in the packaging of
6 this file. Please note that GPL2 Section 2[b] requires that all works based
7 on this software must also be made publicly available under the terms of
8 the GPL2 ("Copyleft").
9 
10 Contact information
11 -------------------
12 
13 Circuits At Home, LTD
14 Web : http://www.circuitsathome.com
15 e-mail : support@circuitsathome.com
16  */
17 
18 #include "hidescriptorparser.h"
19 
20 const char * const ReportDescParserBase::usagePageTitles0[] PROGMEM = {
36 };
37 
38 const char * const ReportDescParserBase::usagePageTitles1[] PROGMEM = {
45 };
46 const char * const ReportDescParserBase::genDesktopTitles0[] PROGMEM = {
55 
56 };
57 const char * const ReportDescParserBase::genDesktopTitles1[] PROGMEM = {
58  pstrUsageX,
59  pstrUsageY,
60  pstrUsageZ,
83 };
84 const char * const ReportDescParserBase::genDesktopTitles2[] PROGMEM = {
105 };
106 const char * const ReportDescParserBase::genDesktopTitles3[] PROGMEM = {
116 };
117 const char * const ReportDescParserBase::genDesktopTitles4[] PROGMEM = {
126 };
127 const char * const ReportDescParserBase::simuTitles0[] PROGMEM = {
140 };
141 const char * const ReportDescParserBase::simuTitles1[] PROGMEM = {
148 };
149 const char * const ReportDescParserBase::simuTitles2[] PROGMEM = {
183 };
184 const char * const ReportDescParserBase::vrTitles0[] PROGMEM = {
195 };
196 const char * const ReportDescParserBase::vrTitles1[] PROGMEM = {
199 };
200 const char * const ReportDescParserBase::sportsCtrlTitles0[] PROGMEM = {
205 };
206 const char * const ReportDescParserBase::sportsCtrlTitles1[] PROGMEM = {
207  pstrUsageOar,
217 };
218 const char * const ReportDescParserBase::sportsCtrlTitles2[] PROGMEM = {
239 };
240 const char * const ReportDescParserBase::gameTitles0[] PROGMEM = {
244 };
245 const char * const ReportDescParserBase::gameTitles1[] PROGMEM = {
271 };
272 const char * const ReportDescParserBase::genDevCtrlTitles[] PROGMEM = {
280 };
281 const char * const ReportDescParserBase::ledTitles[] PROGMEM = {
301  pstrUsageCAV,
302  pstrUsageCLV,
359 };
360 const char * const ReportDescParserBase::telTitles0 [] PROGMEM = {
368 };
369 const char * const ReportDescParserBase::telTitles1 [] PROGMEM = {
388 };
389 const char * const ReportDescParserBase::telTitles2 [] PROGMEM = {
394 };
395 const char * const ReportDescParserBase::telTitles3 [] PROGMEM = {
401 };
402 const char * const ReportDescParserBase::telTitles4 [] PROGMEM = {
418 };
419 const char * const ReportDescParserBase::telTitles5 [] PROGMEM = {
436 };
437 const char * const ReportDescParserBase::consTitles0[] PROGMEM = {
444 };
445 const char * const ReportDescParserBase::consTitles1[] PROGMEM = {
449 };
450 const char * const ReportDescParserBase::consTitles2[] PROGMEM = {
458 
459 };
460 const char * const ReportDescParserBase::consTitles3[] PROGMEM = {
470 };
471 const char * const ReportDescParserBase::consTitles4[] PROGMEM = {
479 };
480 const char * const ReportDescParserBase::consTitles5[] PROGMEM = {
518 };
519 const char * const ReportDescParserBase::consTitles6[] PROGMEM = {
551 };
552 const char * const ReportDescParserBase::consTitles7[] PROGMEM = {
561  pstrUsageMPX,
564 };
565 const char * const ReportDescParserBase::consTitles8[] PROGMEM = {
572 };
573 const char * const ReportDescParserBase::consTitles9[] PROGMEM = {
588 };
589 const char * const ReportDescParserBase::consTitlesA[] PROGMEM = {
596 };
597 const char * const ReportDescParserBase::consTitlesB[] PROGMEM = {
609 };
610 const char * const ReportDescParserBase::consTitlesC[] PROGMEM = {
616 };
617 const char * const ReportDescParserBase::consTitlesD[] PROGMEM = {
690 };
691 const char * const ReportDescParserBase::consTitlesE[] PROGMEM = {
833 };
834 const char * const ReportDescParserBase::digitTitles0[] PROGMEM = {
836  pstrUsagePen,
848 };
849 const char * const ReportDescParserBase::digitTitles1[] PROGMEM = {
853 
854 };
855 const char * const ReportDescParserBase::digitTitles2[] PROGMEM = {
861  pstrUsageTap,
879 };
880 const char * const ReportDescParserBase::aplphanumTitles0[] PROGMEM = {
883 };
884 const char * const ReportDescParserBase::aplphanumTitles1[] PROGMEM = {
904  pstrUsageRow,
931 };
932 const char * const ReportDescParserBase::aplphanumTitles2[] PROGMEM = {
954 };
955 const char * const ReportDescParserBase::medInstrTitles0[] PROGMEM = {
964 };
965 const char * const ReportDescParserBase::medInstrTitles1[] PROGMEM = {
971 };
972 const char * const ReportDescParserBase::medInstrTitles2[] PROGMEM = {
975 };
976 const char * const ReportDescParserBase::medInstrTitles3[] PROGMEM = {
987 };
988 const char * const ReportDescParserBase::medInstrTitles4[] PROGMEM = {
991 };
992 
993 void ReportDescParserBase::Parse(const uint16_t len, const uint8_t *pbuf, const uint16_t &offset) {
994  uint16_t cntdn = (uint16_t)len;
995  uint8_t *p = (uint8_t*)pbuf;
996 
997 
998  totalSize = 0;
999 
1000  while(cntdn) {
1001  //USB_HOST_SERIAL.println("");
1002  //PrintHex<uint16_t>(offset + len - cntdn);
1003  //USB_HOST_SERIAL.print(":");
1004 
1005  ParseItem(&p, &cntdn);
1006 
1007  //if (ParseItem(&p, &cntdn))
1008  // return;
1009  }
1010  //USBTRACE2("Total:", totalSize);
1011 }
1012 
1013 void ReportDescParserBase::PrintValue(uint8_t *p, uint8_t len) {
1014  E_Notify(PSTR("("), 0x80);
1015  for(; len; p++, len--)
1016  PrintHex<uint8_t > (*p, 0x80);
1017  E_Notify(PSTR(")"), 0x80);
1018 }
1019 
1021  E_Notify(PSTR("("), 0x80);
1022  PrintHex<uint8_t > (data, 0x80);
1023  E_Notify(PSTR(")"), 0x80);
1024 }
1025 
1027  switch(prefix & (TYPE_MASK | TAG_MASK)) {
1028  case (TYPE_GLOBAL | TAG_GLOBAL_PUSH):
1029  E_Notify(PSTR("\r\nPush"), 0x80);
1030  break;
1031  case (TYPE_GLOBAL | TAG_GLOBAL_POP):
1032  E_Notify(PSTR("\r\nPop"), 0x80);
1033  break;
1035  E_Notify(PSTR("\r\nUsage Page"), 0x80);
1036  break;
1038  E_Notify(PSTR("\r\nLogical Min"), 0x80);
1039  break;
1041  E_Notify(PSTR("\r\nLogical Max"), 0x80);
1042  break;
1044  E_Notify(PSTR("\r\nPhysical Min"), 0x80);
1045  break;
1047  E_Notify(PSTR("\r\nPhysical Max"), 0x80);
1048  break;
1050  E_Notify(PSTR("\r\nUnit Exp"), 0x80);
1051  break;
1052  case (TYPE_GLOBAL | TAG_GLOBAL_UNIT):
1053  E_Notify(PSTR("\r\nUnit"), 0x80);
1054  break;
1056  E_Notify(PSTR("\r\nReport Size"), 0x80);
1057  break;
1059  E_Notify(PSTR("\r\nReport Count"), 0x80);
1060  break;
1062  E_Notify(PSTR("\r\nReport Id"), 0x80);
1063  break;
1064  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1065  E_Notify(PSTR("\r\nUsage"), 0x80);
1066  break;
1067  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1068  E_Notify(PSTR("\r\nUsage Min"), 0x80);
1069  break;
1070  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1071  E_Notify(PSTR("\r\nUsage Max"), 0x80);
1072  break;
1073  case (TYPE_MAIN | TAG_MAIN_COLLECTION):
1074  E_Notify(PSTR("\r\nCollection"), 0x80);
1075  break;
1077  E_Notify(PSTR("\r\nEnd Collection"), 0x80);
1078  break;
1079  case (TYPE_MAIN | TAG_MAIN_INPUT):
1080  E_Notify(PSTR("\r\nInput"), 0x80);
1081  break;
1082  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1083  E_Notify(PSTR("\r\nOutput"), 0x80);
1084  break;
1085  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1086  E_Notify(PSTR("\r\nFeature"), 0x80);
1087  break;
1088  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1089 }
1090 
1091 uint8_t ReportDescParserBase::ParseItem(uint8_t **pp, uint16_t *pcntdn) {
1092  //uint8_t ret = enErrorSuccess;
1093  //reinterpret_cast<>(varBuffer);
1094  switch(itemParseState) {
1095  case 0:
1096  if(**pp == HID_LONG_ITEM_PREFIX)
1097  USBTRACE("\r\nLONG\r\n");
1098  else {
1099  uint8_t size = ((**pp) & DATA_SIZE_MASK);
1100 
1101  itemPrefix = (**pp);
1102  itemSize = 1 + ((size == DATA_SIZE_4) ? 4 : size);
1103 
1105  }
1106  (*pp)++;
1107  (*pcntdn)--;
1108  itemSize--;
1109  itemParseState = 1;
1110 
1111  if(!itemSize)
1112  break;
1113 
1114  if(!pcntdn)
1115  return enErrorIncomplete;
1116  case 1:
1117  //USBTRACE2("\r\niSz:",itemSize);
1118 
1121  itemParseState = 2;
1122  case 2:
1123  if(!valParser.Parse(pp, pcntdn))
1124  return enErrorIncomplete;
1125  itemParseState = 3;
1126  case 3:
1127  {
1128  uint8_t data = *((uint8_t*)varBuffer);
1129 
1130  switch(itemPrefix & (TYPE_MASK | TAG_MASK)) {
1131  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1132  if(pfUsage) {
1133  if(theBuffer.valueSize > 1) {
1134  uint16_t* ui16 = reinterpret_cast<uint16_t *>(varBuffer);
1135  pfUsage(*ui16);
1136  } else
1137  pfUsage(data);
1138  }
1139  break;
1141  rptSize = data;
1142  PrintByteValue(data);
1143  break;
1145  rptCount = data;
1146  PrintByteValue(data);
1147  break;
1153  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1154  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1156  case (TYPE_GLOBAL | TAG_GLOBAL_UNIT):
1158  break;
1159  case (TYPE_GLOBAL | TAG_GLOBAL_PUSH):
1160  case (TYPE_GLOBAL | TAG_GLOBAL_POP):
1161  break;
1163  SetUsagePage(data);
1164  PrintUsagePage(data);
1165  PrintByteValue(data);
1166  break;
1167  case (TYPE_MAIN | TAG_MAIN_COLLECTION):
1169  switch(data) {
1170  case 0x00:
1171  E_Notify(PSTR(" Physical"), 0x80);
1172  break;
1173  case 0x01:
1174  E_Notify(PSTR(" Application"), 0x80);
1175  break;
1176  case 0x02:
1177  E_Notify(PSTR(" Logical"), 0x80);
1178  break;
1179  case 0x03:
1180  E_Notify(PSTR(" Report"), 0x80);
1181  break;
1182  case 0x04:
1183  E_Notify(PSTR(" Named Array"), 0x80);
1184  break;
1185  case 0x05:
1186  E_Notify(PSTR(" Usage Switch"), 0x80);
1187  break;
1188  case 0x06:
1189  E_Notify(PSTR(" Usage Modifier"), 0x80);
1190  break;
1191  default:
1192  E_Notify(PSTR(" Vendor Defined("), 0x80);
1193  PrintHex<uint8_t > (data, 0x80);
1194  E_Notify(PSTR(")"), 0x80);
1195  }
1196  break;
1197  case (TYPE_MAIN | TAG_MAIN_INPUT):
1198  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1199  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1200  totalSize += (uint16_t)rptSize * (uint16_t)rptCount;
1201  rptSize = 0;
1202  rptCount = 0;
1203  E_Notify(PSTR("("), 0x80);
1204  PrintBin<uint8_t > (data, 0x80);
1205  E_Notify(PSTR(")"), 0x80);
1206  break;
1207  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1208  }
1209  } // switch (itemParseState)
1210  itemParseState = 0;
1211  return enErrorSuccess;
1212 }
1213 
1221  NULL, // Keyboard/Keypad
1228  NULL, // Reserved
1229  NULL, // PID
1230  NULL // Unicode
1231 };
1232 
1234  pfUsage = NULL;
1235 
1236  if(VALUE_BETWEEN(page, 0x00, 0x11))
1237  pfUsage = (usagePageFunctions[page - 1]);
1238 
1239  // Dead code...
1240  //
1241  // pfUsage = (UsagePageFunc)pgm_read_pointer(usagePageFunctions[page - 1]);
1242  //else if (page > 0x7f && page < 0x84)
1243  // E_Notify(pstrUsagePageMonitor);
1244  //else if (page > 0x83 && page < 0x8c)
1245  // E_Notify(pstrUsagePagePower);
1246  //else if (page > 0x8b && page < 0x92)
1247  // E_Notify((char*)pgm_read_pointer(&usagePageTitles1[page - 0x8c]));
1248  //else if (page > 0xfeff && page <= 0xffff)
1249  // E_Notify(pstrUsagePageVendorDefined);
1250  //
1251  else
1252  switch(page) {
1253  case 0x14:
1255  break;
1256  case 0x40:
1258  break;
1259  }
1260 }
1261 
1263  const char * const * w;
1264  E_Notify(pstrSpace, 0x80);
1265 
1266  output_if_between(page, 0x00, 0x11, w, E_Notify, usagePageTitles0, 0x80)
1267  else output_if_between(page, 0x8b, 0x92, w, E_Notify, usagePageTitles1, 0x80)
1268  else if(VALUE_BETWEEN(page, 0x7f, 0x84))
1270  else if(VALUE_BETWEEN(page, 0x83, 0x8c))
1272  else if(page > 0xfeff /* && page <= 0xffff */)
1274  else
1275  switch(page) {
1276  case 0x14:
1278  break;
1279  case 0x40:
1281  break;
1282  default:
1284  }
1285 }
1286 
1288  E_Notify(pstrSpace, 0x80);
1289  E_Notify(PSTR("Btn"), 0x80);
1290  PrintHex<uint16_t > (usage, 0x80);
1291  E_Notify(PSTR("\r\n"), 0x80);
1292  //USB_HOST_SERIAL.print(usage, HEX);
1293 }
1294 
1296  E_Notify(pstrSpace, 0x80);
1297  E_Notify(PSTR("Inst"), 0x80);
1298  // Sorry, HEX for now...
1299  PrintHex<uint16_t > (usage, 0x80);
1300  E_Notify(PSTR("\r\n"), 0x80);
1301  //USB_HOST_SERIAL.print(usage, DEC);
1302 }
1303 
1305  const char * const * w;
1306  E_Notify(pstrSpace, 0x80);
1307 
1308  output_if_between(usage, 0x00, 0x0a, w, E_Notify, genDesktopTitles0, 0x80)
1309  else output_if_between(usage, 0x2f, 0x49, w, E_Notify, genDesktopTitles1, 0x80)
1310  else output_if_between(usage, 0x7f, 0x94, w, E_Notify, genDesktopTitles2, 0x80)
1311  else output_if_between(usage, 0x9f, 0xa9, w, E_Notify, genDesktopTitles3, 0x80)
1312  else output_if_between(usage, 0xaf, 0xb8, w, E_Notify, genDesktopTitles4, 0x80)
1313  else E_Notify(pstrUsagePageUndefined, 0x80);
1314 }
1315 
1317  const char * const * w;
1318  E_Notify(pstrSpace, 0x80);
1319 
1320  output_if_between(usage, 0x00, 0x0d, w, E_Notify, simuTitles0, 0x80)
1321  else output_if_between(usage, 0x1f, 0x26, w, E_Notify, simuTitles1, 0x80)
1322  else output_if_between(usage, 0xaf, 0xd1, w, E_Notify, simuTitles2, 0x80)
1323  else E_Notify(pstrUsagePageUndefined, 0x80);
1324 }
1325 
1327  const char * const * w;
1328  E_Notify(pstrSpace, 0x80);
1329 
1330  output_if_between(usage, 0x00, 0x0b, w, E_Notify, vrTitles0, 0x80)
1331  else output_if_between(usage, 0x1f, 0x22, w, E_Notify, vrTitles1, 0x80)
1332  else E_Notify(pstrUsagePageUndefined, 0x80);
1333 }
1334 
1336  const char * const * w;
1337  E_Notify(pstrSpace, 0x80);
1338 
1339  output_if_between(usage, 0x00, 0x05, w, E_Notify, sportsCtrlTitles0, 0x80)
1340  else output_if_between(usage, 0x2f, 0x3a, w, E_Notify, sportsCtrlTitles1, 0x80)
1341  else output_if_between(usage, 0x4f, 0x64, w, E_Notify, sportsCtrlTitles2, 0x80)
1342  else E_Notify(pstrUsagePageUndefined, 0x80);
1343 }
1344 
1346  const char * const * w;
1347  E_Notify(pstrSpace, 0x80);
1348 
1349  output_if_between(usage, 0x00, 0x04, w, E_Notify, gameTitles0, 0x80)
1350  else output_if_between(usage, 0x1f, 0x3a, w, E_Notify, gameTitles1, 0x80)
1351  else E_Notify(pstrUsagePageUndefined, 0x80);
1352 }
1353 
1355  const char * const * w;
1356  E_Notify(pstrSpace, 0x80);
1357 
1358  output_if_between(usage, 0x1f, 0x27, w, E_Notify, genDevCtrlTitles, 0x80)
1359  else E_Notify(pstrUsagePageUndefined, 0x80);
1360 }
1361 
1363  const char * const * w;
1364  E_Notify(pstrSpace, 0x80);
1365 
1366  output_if_between(usage, 0x00, 0x4e, w, E_Notify, ledTitles, 0x80)
1367  else E_Notify(pstrUsagePageUndefined, 0x80);
1368 }
1369 
1371  const char * const * w;
1372  E_Notify(pstrSpace, 0x80);
1373 
1374  output_if_between(usage, 0x00, 0x08, w, E_Notify, telTitles0, 0x80)
1375  else output_if_between(usage, 0x1f, 0x32, w, E_Notify, telTitles1, 0x80)
1376  else output_if_between(usage, 0x4f, 0x54, w, E_Notify, telTitles2, 0x80)
1377  else output_if_between(usage, 0x6f, 0x75, w, E_Notify, telTitles3, 0x80)
1378  else output_if_between(usage, 0x8f, 0x9f, w, E_Notify, telTitles4, 0x80)
1379  else output_if_between(usage, 0xaf, 0xc0, w, E_Notify, telTitles5, 0x80)
1380  else E_Notify(pstrUsagePageUndefined, 0x80);
1381 }
1382 
1384  const char * const * w;
1385  E_Notify(pstrSpace, 0x80);
1386 
1387  output_if_between(usage, 0x00, 0x07, w, E_Notify, consTitles0, 0x80)
1388  else output_if_between(usage, 0x1f, 0x23, w, E_Notify, consTitles1, 0x80)
1389  else output_if_between(usage, 0x2f, 0x37, w, E_Notify, consTitles2, 0x80)
1390  else output_if_between(usage, 0x3f, 0x49, w, E_Notify, consTitles3, 0x80)
1391  else output_if_between(usage, 0x5f, 0x67, w, E_Notify, consTitles4, 0x80)
1392  else output_if_between(usage, 0x7f, 0xa5, w, E_Notify, consTitles5, 0x80)
1393  else output_if_between(usage, 0xaf, 0xcf, w, E_Notify, consTitles6, 0x80)
1394  else output_if_between(usage, 0xdf, 0xeb, w, E_Notify, consTitles7, 0x80)
1395  else output_if_between(usage, 0xef, 0xf6, w, E_Notify, consTitles8, 0x80)
1396  else output_if_between(usage, 0xff, 0x10e, w, E_Notify, consTitles9, 0x80)
1397  else output_if_between(usage, 0x14f, 0x156, w, E_Notify, consTitlesA, 0x80)
1398  else output_if_between(usage, 0x15f, 0x16b, w, E_Notify, consTitlesB, 0x80)
1399  else output_if_between(usage, 0x16f, 0x175, w, E_Notify, consTitlesC, 0x80)
1400  else output_if_between(usage, 0x17f, 0x1c8, w, E_Notify, consTitlesD, 0x80)
1401  else output_if_between(usage, 0x1ff, 0x29d, w, E_Notify, consTitlesE, 0x80)
1402  else E_Notify(pstrUsagePageUndefined, 0x80);
1403 }
1404 
1406  const char * const * w;
1407  E_Notify(pstrSpace, 0x80);
1408 
1409  output_if_between(usage, 0x00, 0x0e, w, E_Notify, digitTitles0, 0x80)
1410  else output_if_between(usage, 0x1f, 0x23, w, E_Notify, digitTitles1, 0x80)
1411  else output_if_between(usage, 0x2f, 0x47, w, E_Notify, digitTitles2, 0x80)
1412  else E_Notify(pstrUsagePageUndefined, 0x80);
1413 }
1414 
1416  const char * const * w;
1417  E_Notify(pstrSpace, 0x80);
1418 
1419  output_if_between(usage, 0x00, 0x03, w, E_Notify, aplphanumTitles0, 0x80)
1420  else output_if_between(usage, 0x1f, 0x4e, w, E_Notify, aplphanumTitles1, 0x80)
1421  else output_if_between(usage, 0x7f, 0x96, w, E_Notify, digitTitles2, 0x80)
1422  else E_Notify(pstrUsagePageUndefined, 0x80);
1423 }
1424 
1426  const char * const * w;
1427  E_Notify(pstrSpace, 0x80);
1428 
1429  if(usage == 1) E_Notify(pstrUsageMedicalUltrasound, 0x80);
1430  else if(usage == 0x70)
1432  else output_if_between(usage, 0x1f, 0x28, w, E_Notify, medInstrTitles0, 0x80)
1433  else output_if_between(usage, 0x3f, 0x45, w, E_Notify, medInstrTitles1, 0x80)
1434  else output_if_between(usage, 0x5f, 0x62, w, E_Notify, medInstrTitles2, 0x80)
1435  else output_if_between(usage, 0x7f, 0x8a, w, E_Notify, medInstrTitles3, 0x80)
1436  else output_if_between(usage, 0x9f, 0xa2, w, E_Notify, medInstrTitles4, 0x80)
1437  else E_Notify(pstrUsagePageUndefined, 0x80);
1438 }
1439 
1440 uint8_t ReportDescParser2::ParseItem(uint8_t **pp, uint16_t *pcntdn) {
1441  //uint8_t ret = enErrorSuccess;
1442 
1443  switch(itemParseState) {
1444  case 0:
1445  if(**pp == HID_LONG_ITEM_PREFIX)
1446  USBTRACE("\r\nLONG\r\n");
1447  else {
1448  uint8_t size = ((**pp) & DATA_SIZE_MASK);
1449  itemPrefix = (**pp);
1450  itemSize = 1 + ((size == DATA_SIZE_4) ? 4 : size);
1451  }
1452  (*pp)++;
1453  (*pcntdn)--;
1454  itemSize--;
1455  itemParseState = 1;
1456 
1457  if(!itemSize)
1458  break;
1459 
1460  if(!pcntdn)
1461  return enErrorIncomplete;
1462  case 1:
1465  itemParseState = 2;
1466  case 2:
1467  if(!valParser.Parse(pp, pcntdn))
1468  return enErrorIncomplete;
1469  itemParseState = 3;
1470  case 3:
1471  {
1472  uint8_t data = *((uint8_t*)varBuffer);
1473 
1474  switch(itemPrefix & (TYPE_MASK | TAG_MASK)) {
1475  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1476  if(pfUsage) {
1477  if(theBuffer.valueSize > 1) {
1478  uint16_t* ui16 = reinterpret_cast<uint16_t *>(varBuffer);
1479  pfUsage(*ui16);
1480  } else
1481  pfUsage(data);
1482  }
1483  break;
1485  rptSize = data;
1486  break;
1488  rptCount = data;
1489  break;
1491  rptId = data;
1492  break;
1493  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1494  useMin = data;
1495  break;
1496  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1497  useMax = data;
1498  break;
1500  SetUsagePage(data);
1501  break;
1502  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1503  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1504  rptSize = 0;
1505  rptCount = 0;
1506  useMin = 0;
1507  useMax = 0;
1508  break;
1509  case (TYPE_MAIN | TAG_MAIN_INPUT):
1510  OnInputItem(data);
1511 
1512  totalSize += (uint16_t)rptSize * (uint16_t)rptCount;
1513 
1514  rptSize = 0;
1515  rptCount = 0;
1516  useMin = 0;
1517  useMax = 0;
1518  break;
1519  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1520  }
1521  } // switch (itemParseState)
1522  itemParseState = 0;
1523  return enErrorSuccess;
1524 }
1525 
1526 void ReportDescParser2::OnInputItem(uint8_t itm) {
1527  uint8_t byte_offset = (totalSize >> 3); // calculate offset to the next unhandled byte i = (int)(totalCount / 8);
1528  uint32_t tmp = (byte_offset << 3);
1529  uint8_t bit_offset = totalSize - tmp; // number of bits in the current byte already handled
1530  uint8_t *p = pBuf + byte_offset; // current byte pointer
1531 
1532  if(bit_offset)
1533  *p >>= bit_offset;
1534 
1535  uint8_t usage = useMin;
1536 
1537  bool print_usemin_usemax = ((useMin < useMax) && ((itm & 3) == 2) && pfUsage) ? true : false;
1538 
1539  uint8_t bits_of_byte = 8;
1540 
1541  // for each field in field array defined by rptCount
1542  for(uint8_t field = 0; field < rptCount; field++, usage++) {
1543 
1544  union {
1545  uint8_t bResult[4];
1546  uint16_t wResult[2];
1547  uint32_t dwResult;
1548  } result;
1549 
1550  result.dwResult = 0;
1551  uint8_t mask = 0;
1552 
1553  if(print_usemin_usemax)
1554  pfUsage(usage);
1555 
1556  // bits_left - number of bits in the field(array of fields, depending on Report Count) left to process
1557  // bits_of_byte - number of bits in current byte left to process
1558  // bits_to_copy - number of bits to copy to result buffer
1559 
1560  // for each bit in a field
1561  for(uint8_t bits_left = rptSize, bits_to_copy = 0; bits_left;
1562  bits_left -= bits_to_copy) {
1563  bits_to_copy = (bits_left > bits_of_byte) ? bits_of_byte : bits_left;
1564 
1565  result.dwResult <<= bits_to_copy; // Result buffer is shifted by the number of bits to be copied into it
1566 
1567  uint8_t val = *p;
1568 
1569  val >>= (8 - bits_of_byte); // Shift by the number of bits already processed
1570 
1571  mask = 0;
1572 
1573  for(uint8_t j = bits_to_copy; j; j--) {
1574  mask <<= 1;
1575  mask |= 1;
1576  }
1577 
1578  result.bResult[0] = (result.bResult[0] | (val & mask));
1579 
1580  bits_of_byte -= bits_to_copy;
1581 
1582  if(bits_of_byte < 1) {
1583  bits_of_byte = 8;
1584  p++;
1585  }
1586  }
1587  PrintByteValue(result.dwResult);
1588  }
1589  E_Notify(PSTR("\r\n"), 0x80);
1590 }
1591 
1592 void UniversalReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) {
1593  ReportDescParser2 prs(len, buf);
1594 
1595  uint8_t ret = hid->GetReportDescr(0, &prs);
1596 
1597  if(ret)
1598  ErrorMessage<uint8_t > (PSTR("GetReportDescr-2"), ret);
1599 }
const char pstrUsageYTilt[]
Definition: hidusagestr.h:814
const char pstrUsageRewind[]
Definition: hidusagestr.h:323
static const char *const medInstrTitles0[]
static const char *const usagePageTitles0[]
const char pstrUsageACDistributeHorizontaly[]
Definition: hidusagestr.h:780
const char pstrUsageALNetworkConference[]
Definition: hidusagestr.h:594
const char pstrUsageTouchScreen[]
Definition: hidusagestr.h:787
#define TAG_GLOBAL_LOGICALMIN
Definition: hid.h:46
const char pstrUsageLine[]
Definition: hidusagestr.h:368
const char pstrUsageACExpand[]
Definition: hidusagestr.h:724
const char pstrUsageClimateControlEnable[]
Definition: hidusagestr.h:538
const char pstrUsagePhoneKey5[]
Definition: hidusagestr.h:405
const char pstrUsagePageMSRDevices[]
Definition: hidusagestr.h:51
const char pstrUsageScrollLock[]
Definition: hidusagestr.h:274
static const char *const telTitles1[]
const char pstrUsageSystemColdRestart[]
Definition: hidusagestr.h:105
const char pstrUsageSecurityCodeCharEntered[]
Definition: hidusagestr.h:267
void(* UsagePageFunc)(uint16_t usage)
const char pstrUsageRearBrake[]
Definition: hidusagestr.h:180
const char pstrUsageACSort[]
Definition: hidusagestr.h:747
const char pstrUsageSelectedIndicator[]
Definition: hidusagestr.h:329
const char pstrUsageUntouch[]
Definition: hidusagestr.h:804
const char pstrUsageTelephonyKeyPad[]
Definition: hidusagestr.h:356
static const char *const consTitles1[]
const char pstrUsageScreenSaverDelay[]
Definition: hidusagestr.h:834
const char pstrUsageBatteryOperation[]
Definition: hidusagestr.h:298
const char pstrUsageFlashOnTime[]
Definition: hidusagestr.h:337
const char pstrUsageSpeakerPhone[]
Definition: hidusagestr.h:369
const char pstrUsageMoveRightLeft[]
Definition: hidusagestr.h:240
const char pstrUsagePutter[]
Definition: hidusagestr.h:211
const char pstrUsage2Iron[]
Definition: hidusagestr.h:213
const char pstrUsageStickFollowThough[]
Definition: hidusagestr.h:207
const char pstrUsageErrorFotDataCanNotBeRead[]
Definition: hidusagestr.h:844
const char pstrUsageVz[]
Definition: hidusagestr.h:84
const char pstrUsageSpeedDial[]
Definition: hidusagestr.h:376
const char pstrUsageMenuUp[]
Definition: hidusagestr.h:436
const char pstrUsageDoNotDisturb[]
Definition: hidusagestr.h:279
const char pstrUsageHeadMountedDisplay[]
Definition: hidusagestr.h:188
static const char *const consTitles5[]
#define TAG_GLOBAL_POP
Definition: hid.h:56
const char pstrUsageErrorNotALoadableCharacter[]
Definition: hidusagestr.h:843
const char pstrUsageALLogonLogoff[]
Definition: hidusagestr.h:599
const char pstrUsageSoftControlSelect[]
Definition: hidusagestr.h:922
const char pstrUsageSpectralDopplerModeSelect[]
Definition: hidusagestr.h:914
const char pstrUsageBicycleSimulationDevice[]
Definition: hidusagestr.h:141
const char pstrUsageEnterDisk[]
Definition: hidusagestr.h:497
const char pstrUsageHold[]
Definition: hidusagestr.h:303
const char pstrUsageALWirelessStatus[]
Definition: hidusagestr.h:615
const char pstrUsageCameraOff[]
Definition: hidusagestr.h:312
const char pstrUsageMultiAxisController[]
Definition: hidusagestr.h:65
const char pstrUsageMediaSelectWWW[]
Definition: hidusagestr.h:460
static const char *const consTitlesD[]
const char pstrUsageOar[]
Definition: hidusagestr.h:201
const char pstrUsageALControlPannel[]
Definition: hidusagestr.h:601
const char pstrUsageAlternateAudioDecrement[]
Definition: hidusagestr.h:569
const char pstrUsageACSelectObject[]
Definition: hidusagestr.h:745
const char pstrUsageStatusNotReady[]
Definition: hidusagestr.h:841
const char pstrUsageApplicationBreak[]
Definition: hidusagestr.h:116
const char pstrUsagePageDigitizer[]
Definition: hidusagestr.h:42
const char pstrUsageALIntegratedHelpCenter[]
Definition: hidusagestr.h:608
const char pstrUsagePaletteDataOffset[]
Definition: hidusagestr.h:879
const char pstrUsageResolutionMultiplier[]
Definition: hidusagestr.h:90
const char pstrUsageSoftControlAdjust[]
Definition: hidusagestr.h:923
const char pstrUsageWingFlaps[]
Definition: hidusagestr.h:167
const char pstrUsageACDeleteComment[]
Definition: hidusagestr.h:737
const char pstrUsageBalance[]
Definition: hidusagestr.h:518
const char pstrUsageMute[]
Definition: hidusagestr.h:280
const char pstrUsageACNextLink[]
Definition: hidusagestr.h:666
const char pstrUsageACProperties[]
Definition: hidusagestr.h:650
const char pstrUsageHandset[]
Definition: hidusagestr.h:354
const char pstrUsageALAudioBrowser[]
Definition: hidusagestr.h:625
#define TYPE_GLOBAL
Definition: hid.h:36
static void PrintValue(uint8_t *p, uint8_t len)
static const char *const genDesktopTitles1[]
const char pstrUsageLightEnable[]
Definition: hidusagestr.h:536
const char pstrUsagePageMedicalInstruments[]
Definition: hidusagestr.h:46
const char pstrUsageFastBlinkOffTime[]
Definition: hidusagestr.h:341
const char pstrUsageFlightYoke[]
Definition: hidusagestr.h:146
const char pstrUsageAssignSelection[]
Definition: hidusagestr.h:451
const char pstrUsageACSortDescending[]
Definition: hidusagestr.h:749
const char pstrUsageClearMark[]
Definition: hidusagestr.h:505
const char pstrUsageConference[]
Definition: hidusagestr.h:309
const char pstrUsageWeaponsArm[]
Definition: hidusagestr.h:165
#define TAG_GLOBAL_UNITEXP
Definition: hid.h:50
const char pstrUsageCursorPixelPosition[]
Definition: hidusagestr.h:850
const char pstrUsageXTilt[]
Definition: hidusagestr.h:813
const char pstrUsageStill[]
Definition: hidusagestr.h:449
const char pstrUsageSystemDisplayBoth[]
Definition: hidusagestr.h:123
const char pstrUsage10Iron[]
Definition: hidusagestr.h:221
const char pstrUsageEnterChannel[]
Definition: hidusagestr.h:454
const char pstrUsageNewGame[]
Definition: hidusagestr.h:249
const char pstrUsageALEncryption[]
Definition: hidusagestr.h:618
#define TYPE_LOCAL
Definition: hid.h:37
const char pstrUsagePageMonitor[]
Definition: hidusagestr.h:47
const char pstrUsageChannelFront[]
Definition: hidusagestr.h:558
const char pstrUsageACMirrorHorizontal[]
Definition: hidusagestr.h:698
const char pstrUsageACSaveAndClose[]
Definition: hidusagestr.h:776
const char pstrUsageSystemAppMenu[]
Definition: hidusagestr.h:97
const char pstrUsageACInsertObject[]
Definition: hidusagestr.h:774
const char pstrUsageCursorPositionReport[]
Definition: hidusagestr.h:845
const char pstrUsageRoomTemperature[]
Definition: hidusagestr.h:539
const char pstrUsageSelect[]
Definition: hidusagestr.h:81
#define DATA_SIZE_4
Definition: hid.h:33
const char pstrUsageACFullScreenView[]
Definition: hidusagestr.h:673
const char pstrUsageStickHeight[]
Definition: hidusagestr.h:210
const char pstrUsageVbrx[]
Definition: hidusagestr.h:85
const char pstrUsageCoordinateMeasuringMachine[]
Definition: hidusagestr.h:790
const char pstrUsageCursorBlink[]
Definition: hidusagestr.h:853
const char pstrUsageACOpen[]
Definition: hidusagestr.h:643
const char pstrUsageALProcessTaskManager[]
Definition: hidusagestr.h:603
const char pstrUsageTwist[]
Definition: hidusagestr.h:817
const char pstrUsageMenuDown[]
Definition: hidusagestr.h:437
const char pstrUsageFanSpeed[]
Definition: hidusagestr.h:535
const char pstrUsageCursorMode[]
Definition: hidusagestr.h:851
const char pstrUsageTipPressure[]
Definition: hidusagestr.h:800
const char pstrUsageMediaSelectSecurity[]
Definition: hidusagestr.h:475
const char pstrUsagePitchForwardBackward[]
Definition: hidusagestr.h:238
const char pstrUsageSystemDisplayExternal[]
Definition: hidusagestr.h:122
#define TAG_LOCAL_USAGEMAX
Definition: hid.h:60
const char pstrUsageAnswerOnOff[]
Definition: hidusagestr.h:384
const char pstrUsageScanNextTrack[]
Definition: hidusagestr.h:491
const char pstrUsageSpeakerSystem[]
Definition: hidusagestr.h:554
static const char *const telTitles5[]
const char pstrUsageMessageWaiting[]
Definition: hidusagestr.h:296
const char pstrUsageIndicatorOn[]
Definition: hidusagestr.h:332
const char pstrUsageACUndo[]
Definition: hidusagestr.h:651
const char pstrUsageRecallLast[]
Definition: hidusagestr.h:453
const char pstrUsagePhoneKey0[]
Definition: hidusagestr.h:400
const char pstrUsageCyclicTrim[]
Definition: hidusagestr.h:145
const char pstrUsagePhoneKey1[]
Definition: hidusagestr.h:401
const char pstrUsageArticulatedArm[]
Definition: hidusagestr.h:793
const char pstrUsagePhoneKey8[]
Definition: hidusagestr.h:408
const char pstrUsageStickType[]
Definition: hidusagestr.h:209
const char pstrUsageSystemSetup[]
Definition: hidusagestr.h:113
static const char *const aplphanumTitles2[]
const char pstrUsageSystemSuspend[]
Definition: hidusagestr.h:347
#define TAG_GLOBAL_PUSH
Definition: hid.h:55
static void PrintUsagePage(uint16_t page)
const char pstrUsageDepth[]
Definition: hidusagestr.h:908
const char pstrUsagePaletteDataSize[]
Definition: hidusagestr.h:878
#define TAG_GLOBAL_PHYSMIN
Definition: hid.h:48
static const char *const gameTitles1[]
#define TAG_LOCAL_USAGE
Definition: hid.h:58
#define TAG_GLOBAL_REPORTID
Definition: hid.h:53
const char pstrUsageSearchMarkForward[]
Definition: hidusagestr.h:508
const char pstrUsageALTermLockScrSav[]
Definition: hidusagestr.h:600
const char pstrUsageConsumerControl[]
Definition: hidusagestr.h:418
static const char *const genDesktopTitles0[]
const char pstrUsageSystemDisplayInvert[]
Definition: hidusagestr.h:120
const char pstrUsageBusy[]
Definition: hidusagestr.h:315
#define TYPE_MASK
Definition: hid.h:27
const char pstrUsageAnimatronicDevice[]
Definition: hidusagestr.h:192
const char pstrUsageALLogJournalTimecard[]
Definition: hidusagestr.h:586
const char pstrUsageALTaskProjectManager[]
Definition: hidusagestr.h:585
const char pstrUsageReady[]
Definition: hidusagestr.h:316
const char pstrUsageIndicatorRed[]
Definition: hidusagestr.h:343
const char pstrUsageSoftStepSecondary[]
Definition: hidusagestr.h:910
const char pstrUsageHeadphone[]
Definition: hidusagestr.h:422
const char pstrUsagePlaySkip[]
Definition: hidusagestr.h:516
const char pstrUsageSubChannel[]
Definition: hidusagestr.h:565
const char pstrUsageACJustifyTop[]
Definition: hidusagestr.h:707
const char pstrUsageACAttachComment[]
Definition: hidusagestr.h:736
const char pstrUsageRinger[]
Definition: hidusagestr.h:399
const char pstrUsageALPreviousTaskApplication[]
Definition: hidusagestr.h:606
const char pstrUsageReverse[]
Definition: hidusagestr.h:321
const char pstrUsageIllumination[]
Definition: hidusagestr.h:432
const char pstrUsagePageGameControls[]
Definition: hidusagestr.h:34
const char pstrUsageSystemMenuUp[]
Definition: hidusagestr.h:103
static const char *const genDevCtrlTitles[]
const char pstrUsageKeyboard[]
Definition: hidusagestr.h:63
const char pstrUsageACSnoozeAlarm[]
Definition: hidusagestr.h:757
const char pstrUsageACItalics[]
Definition: hidusagestr.h:688
const char pstrUsageMagicCarpetSimulationDevice[]
Definition: hidusagestr.h:140
const char pstrUsageClosedCaptionSelect[]
Definition: hidusagestr.h:445
const char pstrUsageChannelIncrement[]
Definition: hidusagestr.h:478
const char pstrUsageAnsweringMachine[]
Definition: hidusagestr.h:352
const char pstrUsagePageGenericDesktopControls[]
Definition: hidusagestr.h:30
const char pstrUsageSystemBreak[]
Definition: hidusagestr.h:114
const char pstrUsagePhoneKey3[]
Definition: hidusagestr.h:403
const char pstrUsageACRotate[]
Definition: hidusagestr.h:694
const char pstrUsageSystemMenuLeft[]
Definition: hidusagestr.h:102
const char pstrUsageColorDopplerModeAdjust[]
Definition: hidusagestr.h:917
static void PrintTelephonyPageUsage(uint16_t usage)
const char pstrUsagePageBarCodeScanner[]
Definition: hidusagestr.h:49
const char pstrUsageACFormat[]
Definition: hidusagestr.h:685
const char pstrUsage3Wood[]
Definition: hidusagestr.h:227
const char pstrUsageBlitReport[]
Definition: hidusagestr.h:881
const char pstrUsageACPan[]
Definition: hidusagestr.h:681
const char pstrUsagePagePID[]
Definition: hidusagestr.h:43
const char pstrUsageSystemMenuRight[]
Definition: hidusagestr.h:101
static void PrintByteValue(uint8_t data)
const char pstrUsageALOnlineActivityBrowser[]
Definition: hidusagestr.h:638
const char pstrUsageLeanRightLeft[]
Definition: hidusagestr.h:243
const char pstrUsageACPreviousLink[]
Definition: hidusagestr.h:665
const char pstrUsageFlareRelease[]
Definition: hidusagestr.h:161
const char pstrUsageToeBrake[]
Definition: hidusagestr.h:163
const char pstrUsageACFindAndReplace[]
Definition: hidusagestr.h:657
const char pstrUsageACJustifyCenterH[]
Definition: hidusagestr.h:704
const char pstrUsageACViewClock[]
Definition: hidusagestr.h:752
const char pstrUsageSystemPowerDown[]
Definition: hidusagestr.h:92
const char pstrUsagePrint[]
Definition: hidusagestr.h:902
const char pstrUsageVbry[]
Definition: hidusagestr.h:86
const char pstrUsagePowerWedge[]
Definition: hidusagestr.h:225
const char pstrUsageSave[]
Definition: hidusagestr.h:901
const char pstrUsageEject[]
Definition: hidusagestr.h:494
const char pstrUsagePageConsumer[]
Definition: hidusagestr.h:41
static void PrintMedicalInstrumentPageUsage(uint16_t usage)
#define TYPE_MAIN
Definition: hid.h:35
const char pstrUsageALMovieBrowser[]
Definition: hidusagestr.h:626
const char pstrUsageACExpandAll[]
Definition: hidusagestr.h:725
const char pstrUsageALSmartCardInfoHelp[]
Definition: hidusagestr.h:635
const char pstrUsageALPreemptiveHaltTaskApp[]
Definition: hidusagestr.h:607
const char pstrUsageStart[]
Definition: hidusagestr.h:80
const char pstrUsageFanEnable[]
Definition: hidusagestr.h:534
const char pstrUsage2DModeAdjust[]
Definition: hidusagestr.h:921
const char pstrUsageTurnRightLeft[]
Definition: hidusagestr.h:237
const char pstrUsageALConsumerControlConfig[]
Definition: hidusagestr.h:573
const char pstrUsageTreadmill[]
Definition: hidusagestr.h:200
const char pstrUsageACTileVert[]
Definition: hidusagestr.h:684
const char pstrUsageSandWedge[]
Definition: hidusagestr.h:223
const char pstrUsagePageUndefined[]
Definition: hidusagestr.h:29
const char pstrUsageRing[]
Definition: hidusagestr.h:295
const char pstrUsageACSelectTable[]
Definition: hidusagestr.h:744
const char pstrUsageFunctionButtons[]
Definition: hidusagestr.h:433
const char pstrUsageClutch[]
Definition: hidusagestr.h:170
const char pstrUsageMediaSelectVideoPhone[]
Definition: hidusagestr.h:464
const char pstrUsageFontData[]
Definition: hidusagestr.h:855
const char pstrUsageNumericKeyPad[]
Definition: hidusagestr.h:419
const char pstrUsageVy[]
Definition: hidusagestr.h:83
const char pstrUsageSurroundOn[]
Definition: hidusagestr.h:286
const char pstrUsageALEntertainmentContentBrow[]
Definition: hidusagestr.h:633
const char pstrUsageACSend[]
Definition: hidusagestr.h:765
static const char *const consTitles7[]
const char pstrUsageSelection[]
Definition: hidusagestr.h:450
const char pstrUsagePhoneKey6[]
Definition: hidusagestr.h:406
const char pstrUsageNumLock[]
Definition: hidusagestr.h:272
const char pstrUsageBump[]
Definition: hidusagestr.h:248
const char pstrUsageCountedBuffer[]
Definition: hidusagestr.h:77
const char pstrUsage3DDigitizer[]
Definition: hidusagestr.h:791
const char pstrUsagePlay[]
Definition: hidusagestr.h:325
const char pstrUsageWeekly[]
Definition: hidusagestr.h:484
const char pstrUsageALPowerStatus[]
Definition: hidusagestr.h:623
const char pstrUsagePen[]
Definition: hidusagestr.h:785
const char pstrUsageSpeedSelect[]
Definition: hidusagestr.h:528
const char pstrUsageSubChannelDecrement[]
Definition: hidusagestr.h:567
virtual void Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf)
const char pstrUsagePower[]
Definition: hidusagestr.h:277
const char pstrUsageMessage[]
Definition: hidusagestr.h:383
const char pstrUsageACSelectTimeZone[]
Definition: hidusagestr.h:753
const char pstrUsageUpdate[]
Definition: hidusagestr.h:899
const char pstrUsageACAllCaps[]
Definition: hidusagestr.h:693
const char pstrUsageHighCutFilter[]
Definition: hidusagestr.h:282
const char pstrUsageSpeaker[]
Definition: hidusagestr.h:301
const char pstrUsagePinballDevice[]
Definition: hidusagestr.h:234
const char pstrUsageGunClip[]
Definition: hidusagestr.h:253
const char pstrUsageMessageControls[]
Definition: hidusagestr.h:353
const char pstrUsageSystemContextMenu[]
Definition: hidusagestr.h:95
const char pstrUsageACInsertMode[]
Definition: hidusagestr.h:730
const char pstrUsageSystemDock[]
Definition: hidusagestr.h:111
const char pstrUsageALMarketMonitorFinBrowser[]
Definition: hidusagestr.h:636
const char pstrUsageMouse[]
Definition: hidusagestr.h:60
#define TAG_MASK
Definition: hid.h:28
const char pstrUsageShootBall[]
Definition: hidusagestr.h:250
const char pstrUsageDivePlane[]
Definition: hidusagestr.h:175
const char pstrUsageSpinning[]
Definition: hidusagestr.h:290
static void PrintLEDPageUsage(uint16_t usage)
const char pstrUsageFlightStick[]
Definition: hidusagestr.h:143
const char pstrUsageDisplayEnable[]
Definition: hidusagestr.h:194
const char pstrUsageAltitude[]
Definition: hidusagestr.h:816
const char pstrUsageProgramChangeKeys[]
Definition: hidusagestr.h:810
const char pstrUsageACBuyChkout[]
Definition: hidusagestr.h:722
void SetUsagePage(uint16_t page)
const char pstrUsageACInsertFile[]
Definition: hidusagestr.h:772
const char pstrUsageACTileHoriz[]
Definition: hidusagestr.h:683
const char pstrUsageBarrelSwitch[]
Definition: hidusagestr.h:820
const char pstrUsagePhoneDirectory[]
Definition: hidusagestr.h:379
const char pstrUsageStickSpeed[]
Definition: hidusagestr.h:204
const char pstrUsageMedicalUltrasound[]
Definition: hidusagestr.h:895
const char pstrUsageAlternateFunction[]
Definition: hidusagestr.h:367
const char pstrUsageDaily[]
Definition: hidusagestr.h:483
const char pstrUsageRowingMachine[]
Definition: hidusagestr.h:199
static void PrintGameControlsPageUsage(uint16_t usage)
const char pstrUsageTrebleIncrement[]
Definition: hidusagestr.h:552
const char pstrUsageArmature[]
Definition: hidusagestr.h:794
const char pstrUsageCharacterReport[]
Definition: hidusagestr.h:838
const char pstrUsageACFontSize[]
Definition: hidusagestr.h:702
const char pstrUsage7Wood[]
Definition: hidusagestr.h:229
const char pstrUsageNext[]
Definition: hidusagestr.h:900
const char pstrUsageCursorEnable[]
Definition: hidusagestr.h:852
const char pstrUsageSoftButtonReport[]
Definition: hidusagestr.h:892
static void PrintButtonPageUsage(uint16_t usage)
const char pstrUsageALOEMHelp[]
Definition: hidusagestr.h:631
const char pstrUsageQuit[]
Definition: hidusagestr.h:470
static void PrintConsumerPageUsage(uint16_t usage)
const char pstrUsagePhoneKey7[]
Definition: hidusagestr.h:407
const char pstrUsageALLogoff[]
Definition: hidusagestr.h:598
const char pstrUsageOnLine[]
Definition: hidusagestr.h:313
const char pstrUsageACZoomOut[]
Definition: hidusagestr.h:671
const char pstrUsageACInsertPicture[]
Definition: hidusagestr.h:773
static void PrintItemTitle(uint8_t prefix)
const char pstrUsageACDistributeVerticaly[]
Definition: hidusagestr.h:781
#define TAG_GLOBAL_USAGEPAGE
Definition: hid.h:45
const char pstrUsageVolumeDecrement[]
Definition: hidusagestr.h:527
const char pstrUsageTabletPick[]
Definition: hidusagestr.h:822
const char pstrUsageDPadLeft[]
Definition: hidusagestr.h:110
const char pstrUsagePlus10[]
Definition: hidusagestr.h:424
const char pstrUsageBassDecrement[]
Definition: hidusagestr.h:551
const char pstrUsageACIndentIncrease[]
Definition: hidusagestr.h:712
const char pstrUsageShift[]
Definition: hidusagestr.h:278
const char pstrUsageALLogon[]
Definition: hidusagestr.h:597
static const char *const medInstrTitles1[]
const char pstrUsageALCalendarSchedule[]
Definition: hidusagestr.h:584
#define output_if_between(v, l, h, wa, fp, mp, el)
Definition: macros.h:30
const char pstrUsageMenu[]
Definition: hidusagestr.h:434
const char pstrUsageALNextTaskApplication[]
Definition: hidusagestr.h:605
const char pstrUsagePhoneMute[]
Definition: hidusagestr.h:373
static void PrintOrdinalPageUsage(uint16_t usage)
const char pstrUsageSystemDisplaySwapPriSec[]
Definition: hidusagestr.h:126
const char pstrUsageInsideRingback[]
Definition: hidusagestr.h:390
static const char *const consTitles3[]
static const char *const genDesktopTitles3[]
const char pstrUsageFreezeThaw[]
Definition: hidusagestr.h:897
const char pstrUsagePageUnicode[]
Definition: hidusagestr.h:44
const char pstrUsageALAudioPlayer[]
Definition: hidusagestr.h:640
const char pstrUsageGamePad[]
Definition: hidusagestr.h:62
const char pstrUsageACJustifyBlockH[]
Definition: hidusagestr.h:706
const char pstrUsageSystemWakeup[]
Definition: hidusagestr.h:94
const char pstrUsagePhoneKeyB[]
Definition: hidusagestr.h:413
const char pstrUsageACResetAlarm[]
Definition: hidusagestr.h:758
static const char *const usagePageTitles1[]
const char pstrUsagePhoneKey2[]
Definition: hidusagestr.h:402
const char pstrUsageReturnToMark[]
Definition: hidusagestr.h:507
const char pstrUsagePhoneKey9[]
Definition: hidusagestr.h:409
const char pstrUsageFrameForward[]
Definition: hidusagestr.h:502
const char pstrUsageVx[]
Definition: hidusagestr.h:82
const char pstrUsageLongPlay[]
Definition: hidusagestr.h:531
static const char *const simuTitles1[]
const char pstrUsageACPaste[]
Definition: hidusagestr.h:654
const char pstrUsageACMaximize[]
Definition: hidusagestr.h:646
const char pstrUsage9Wood[]
Definition: hidusagestr.h:230
const char pstrUsageOrderMovie[]
Definition: hidusagestr.h:455
const char pstrUsageACSelectColumn[]
Definition: hidusagestr.h:742
static void PrintDigitizerPageUsage(uint16_t usage)
const char pstrUsageSystemWarmRestart[]
Definition: hidusagestr.h:106
const char pstrUsageALKeyboardLayout[]
Definition: hidusagestr.h:616
const char pstrUsageACHistory[]
Definition: hidusagestr.h:668
const char pstrUsageCapsLock[]
Definition: hidusagestr.h:273
const char pstrUsageOffLine[]
Definition: hidusagestr.h:314
const char pstrUsagePageSportControls[]
Definition: hidusagestr.h:33
const char pstrUsageStatusReady[]
Definition: hidusagestr.h:842
static const char *const consTitles4[]
const char pstrUsageFrontBrake[]
Definition: hidusagestr.h:179
const char pstrUsageSurroundMode[]
Definition: hidusagestr.h:523
const char pstrUsageFlexor[]
Definition: hidusagestr.h:185
static const char *const digitTitles2[]
const char pstrUsageChannelRight[]
Definition: hidusagestr.h:556
const char pstrUsageACGoto[]
Definition: hidusagestr.h:659
const char pstrUsageACCollapse[]
Definition: hidusagestr.h:726
#define TAG_MAIN_FEATURE
Definition: hid.h:42
const char pstrUsageTrebleDecrement[]
Definition: hidusagestr.h:553
const char pstrUsageWirelessID[]
Definition: hidusagestr.h:265
static const char *const genDesktopTitles2[]
const char pstrUsageScanPreviousTrack[]
Definition: hidusagestr.h:492
static const char *const consTitles9[]
const char pstrUsageHandTracker[]
Definition: hidusagestr.h:189
const char pstrUsageRy[]
Definition: hidusagestr.h:71
static const char *const telTitles4[]
const char pstrUsageAttributeData[]
Definition: hidusagestr.h:869
uint8_t GetReportDescr(uint16_t wIndex, USBReadParser *parser=NULL)
Definition: hid.cpp:34
const char pstrUsagePhoneKeyD[]
Definition: hidusagestr.h:415
const char pstrUsageBodySuit[]
Definition: hidusagestr.h:184
const char pstrUsageACFlipHorizontal[]
Definition: hidusagestr.h:696
const char pstrUsageBlitRectangleY1[]
Definition: hidusagestr.h:883
const char pstrUsageACSortAscending[]
Definition: hidusagestr.h:748
const char pstrUsageBrake[]
Definition: hidusagestr.h:169
const char pstrUsageNightMode[]
Definition: hidusagestr.h:306
const char pstrUsageMenuLeft[]
Definition: hidusagestr.h:438
const char pstrUsageALRemoteNetISPConnect[]
Definition: hidusagestr.h:593
const char pstrUsageVerticalScroll[]
Definition: hidusagestr.h:836
const char pstrUsageFrameBackwards[]
Definition: hidusagestr.h:503
const char pstrUsageACStop[]
Definition: hidusagestr.h:663
static const char *const aplphanumTitles0[]
const char pstrUsageStopEject[]
Definition: hidusagestr.h:514
const char pstrUsageMediaSelectMessages[]
Definition: hidusagestr.h:466
const char pstrUsageALCalculator[]
Definition: hidusagestr.h:588
const char pstrUsageCharAttributeUnderline[]
Definition: hidusagestr.h:871
const char pstrUsageAMPM[]
Definition: hidusagestr.h:426
const char pstrUsageACCancel[]
Definition: hidusagestr.h:720
const char pstrUsageMenuEscape[]
Definition: hidusagestr.h:440
const char pstrUsageRepeatFromMark[]
Definition: hidusagestr.h:506
static const char *const sportsCtrlTitles2[]
const char pstrUsageFontReport[]
Definition: hidusagestr.h:854
const char pstrUsageACNo[]
Definition: hidusagestr.h:719
const char pstrUsageACStrikethrough[]
Definition: hidusagestr.h:690
const char pstrUsageAileron[]
Definition: hidusagestr.h:148
const char pstrUsageKana[]
Definition: hidusagestr.h:276
const char pstrUsageALCommandLineProcessorRun[]
Definition: hidusagestr.h:602
const char pstrUsageCollectiveControl[]
Definition: hidusagestr.h:153
const char pstrUsageBalanceLeft[]
Definition: hidusagestr.h:549
const char pstrUsageStickHeelToe[]
Definition: hidusagestr.h:206
const char pstrUsage7Iron[]
Definition: hidusagestr.h:218
const char pstrUsagePageOrdinal[]
Definition: hidusagestr.h:39
const char pstrUsageSystemHibernate[]
Definition: hidusagestr.h:119
const char pstrUsageTipSwitch[]
Definition: hidusagestr.h:818
const char pstrUsageTracking[]
Definition: hidusagestr.h:499
const char pstrUsageACSubscript[]
Definition: hidusagestr.h:691
static const char *const consTitlesC[]
const char pstrUsagePageVRControls[]
Definition: hidusagestr.h:32
const char pstrUsageVoiceMail[]
Definition: hidusagestr.h:380
const char pstrUsageZoomSelect[]
Definition: hidusagestr.h:912
static const char *const aplphanumTitles1[]
static void PrintGenericDeviceControlsPageUsage(uint16_t usage)
static void PrintSportsControlsPageUsage(uint16_t usage)
const char pstrUsageElectronicCountermeasures[]
Definition: hidusagestr.h:155
const char pstrUsagePriorityRingback[]
Definition: hidusagestr.h:391
const char pstrUsageACLock[]
Definition: hidusagestr.h:732
const char pstrUsageSystemDisplayDual[]
Definition: hidusagestr.h:124
const char pstrUsagePaperJam[]
Definition: hidusagestr.h:318
const char pstrUsageShifter[]
Definition: hidusagestr.h:171
const char pstrUsageDPadDown[]
Definition: hidusagestr.h:108
const char pstrUsageSystemMenuExit[]
Definition: hidusagestr.h:99
const char pstrUsageCyclicControl[]
Definition: hidusagestr.h:144
const char pstrUsageACFilter[]
Definition: hidusagestr.h:750
const char pstrUsageVolume[]
Definition: hidusagestr.h:517
static const char *const consTitlesB[]
const char pstrUsageALDocuments[]
Definition: hidusagestr.h:609
const char pstrUsageFlightCommunications[]
Definition: hidusagestr.h:160
const char pstrUsageALDigitalRightsManager[]
Definition: hidusagestr.h:627
const char pstrUsageTonesOff[]
Definition: hidusagestr.h:397
const char pstrUsageMediaSelectComputer[]
Definition: hidusagestr.h:458
const char pstrUsage5Iron[]
Definition: hidusagestr.h:216
const char pstrUsageDataOnScreen[]
Definition: hidusagestr.h:443
const char pstrUsageACSetBorders[]
Definition: hidusagestr.h:769
const char pstrUsageStereoPlotter[]
Definition: hidusagestr.h:792
const char pstrUsageACRename[]
Definition: hidusagestr.h:777
const char pstrUsageDataReadBack[]
Definition: hidusagestr.h:829
const char pstrUsageMoveForwardBackward[]
Definition: hidusagestr.h:241
const char pstrUsageOffHook[]
Definition: hidusagestr.h:294
const char pstrUsageInsideRingTone[]
Definition: hidusagestr.h:387
const char pstrUsageReorderTone[]
Definition: hidusagestr.h:393
const char pstrUsageACForward[]
Definition: hidusagestr.h:662
const char pstrUsageSlowBlinkOffTime[]
Definition: hidusagestr.h:339
const char pstrUsageHelp[]
Definition: hidusagestr.h:471
const char pstrUsageGunSafety[]
Definition: hidusagestr.h:258
const char pstrUsageACPrintPreview[]
Definition: hidusagestr.h:728
const char pstrUsageCharacterWidth[]
Definition: hidusagestr.h:856
const char pstrUsageLowCutFilter[]
Definition: hidusagestr.h:283
const char pstrUsageChaffRelease[]
Definition: hidusagestr.h:152
const char pstrUsageACBold[]
Definition: hidusagestr.h:687
static void PrintVRControlsPageUsage(uint16_t usage)
const char pstrUsageMediaSelectProgramGuide[]
Definition: hidusagestr.h:463
const char pstrUsage1Iron[]
Definition: hidusagestr.h:212
const char pstrUsageCompose[]
Definition: hidusagestr.h:275
const char pstrUsageSystemSleep[]
Definition: hidusagestr.h:93
const char pstrUsageRecordingFormatDetect[]
Definition: hidusagestr.h:293
const char pstrUsageACSave[]
Definition: hidusagestr.h:648
const char pstrUsageSystemMenuHelp[]
Definition: hidusagestr.h:98
const char pstrUsageBelt[]
Definition: hidusagestr.h:183
const char pstrUsageACNumberedList[]
Definition: hidusagestr.h:713
const char pstrUsageColumns[]
Definition: hidusagestr.h:849
const char pstrUsagePageVendorDefined[]
Definition: hidusagestr.h:56
const char pstrUsageACYes[]
Definition: hidusagestr.h:718
const char pstrUsage9Iron[]
Definition: hidusagestr.h:220
const char pstrUsageBitDepthFormat[]
Definition: hidusagestr.h:875
const char pstrUsageGunSingleShot[]
Definition: hidusagestr.h:255
const char pstrUsageMoveUpDown[]
Definition: hidusagestr.h:242
const char pstrUsageAirplaneSimulationDevice[]
Definition: hidusagestr.h:138
static const char *const medInstrTitles4[]
const char pstrUsageACJustifyCenterV[]
Definition: hidusagestr.h:708
const char pstrUsageSlider[]
Definition: hidusagestr.h:73
const char pstrUsageMonthly[]
Definition: hidusagestr.h:485
const char pstrUsageZ[]
Definition: hidusagestr.h:69
const char pstrUsageACSelectRow[]
Definition: hidusagestr.h:743
const char pstrUsageGunBolt[]
Definition: hidusagestr.h:252
const char pstrUsageCAV[]
Definition: hidusagestr.h:291
const char pstrUsagePageLEDs[]
Definition: hidusagestr.h:37
#define TAG_GLOBAL_PHYSMAX
Definition: hid.h:49
const char pstrUsageMotion[]
Definition: hidusagestr.h:544
const char pstrUsageACNew[]
Definition: hidusagestr.h:642
const char pstrUsageError[]
Definition: hidusagestr.h:328
#define VALUE_BETWEEN(v, l, h)
Definition: macros.h:27
const char pstrUsageSendCalls[]
Definition: hidusagestr.h:307
#define TAG_LOCAL_USAGEMIN
Definition: hid.h:59
const char pstrUsageACMirrorVertical[]
Definition: hidusagestr.h:699
const char pstrUsageSystemDebuggerBreak[]
Definition: hidusagestr.h:115
const char pstrUsageBlitRectangleY2[]
Definition: hidusagestr.h:885
const char pstrUsageDPadUp[]
Definition: hidusagestr.h:107
const char pstrUsageACAttachFile[]
Definition: hidusagestr.h:766
const char pstrUsageVCRTV[]
Definition: hidusagestr.h:446
const char pstrUsageGraphicEqualizer[]
Definition: hidusagestr.h:423
const char pstrUsageRandomPlay[]
Definition: hidusagestr.h:495
const char pstrUsageSpectralDopplerModeAdjust[]
Definition: hidusagestr.h:915
Definition: hid.h:143
const char pstrUsageSystemMenuDown[]
Definition: hidusagestr.h:104
const char pstrUsageProgrammableButton[]
Definition: hidusagestr.h:357
const char pstrUsageIndicatorFastBlink[]
Definition: hidusagestr.h:335
const char pstrUsageRows[]
Definition: hidusagestr.h:848
const char pstrUsageBarrelElevation[]
Definition: hidusagestr.h:174
static const char *const telTitles3[]
const char pstrUsageACMinimize[]
Definition: hidusagestr.h:647
const char pstrUsageFocus[]
Definition: hidusagestr.h:907
const char pstrUsageChannelUnknown[]
Definition: hidusagestr.h:564
const char pstrUsagePark[]
Definition: hidusagestr.h:365
const char pstrUsageInvert[]
Definition: hidusagestr.h:812
const char pstrUsageACJustifyBlockV[]
Definition: hidusagestr.h:710
const char pstrUsageSleep[]
Definition: hidusagestr.h:429
const char pstrUsage3DGameController[]
Definition: hidusagestr.h:233
const char pstrUsageFlightControlStick[]
Definition: hidusagestr.h:142
const char pstrUsageBitmappedDisplay[]
Definition: hidusagestr.h:826
const char pstrUsageACPanRight[]
Definition: hidusagestr.h:680
const char pstrUsageBatteryOK[]
Definition: hidusagestr.h:299
const char pstrUsageBitmapSizeY[]
Definition: hidusagestr.h:874
const char pstrUsageDiveBrake[]
Definition: hidusagestr.h:154
const char pstrUsageFireAlarm[]
Definition: hidusagestr.h:541
const char pstrUsageSleepAfter[]
Definition: hidusagestr.h:430
const char pstrUsageAttributeReadback[]
Definition: hidusagestr.h:868
const char pstrUsageALOEMFeaturesBrowser[]
Definition: hidusagestr.h:630
const char pstrUsageACCut[]
Definition: hidusagestr.h:653
const char pstrUsageGunSelector[]
Definition: hidusagestr.h:254
const char pstrUsageACBookmarks[]
Definition: hidusagestr.h:667
const char pstrUsageBroadcastMode[]
Definition: hidusagestr.h:447
const char pstrUsageMotionModeSelect[]
Definition: hidusagestr.h:918
const char pstrUsageACSelectWord[]
Definition: hidusagestr.h:739
const char pstrUsageACNewWindow[]
Definition: hidusagestr.h:682
const char pstrUsageALDatabaseApp[]
Definition: hidusagestr.h:579
const char pstrUsageALOnlineCommunity[]
Definition: hidusagestr.h:632
const char pstrUsageFastForward[]
Definition: hidusagestr.h:324
const char pstrUsageClosedCaption[]
Definition: hidusagestr.h:444
const char pstrUsageVCRAcquisition[]
Definition: hidusagestr.h:896
const char pstrUsageCoverage[]
Definition: hidusagestr.h:305
const char pstrUsageTankSimulationDevice[]
Definition: hidusagestr.h:132
const char pstrUsageACHome[]
Definition: hidusagestr.h:660
const char pstrUsageOnce[]
Definition: hidusagestr.h:482
static const char *const consTitles2[]
const char pstrUsageACJustifyRight[]
Definition: hidusagestr.h:705
const char pstrUsageBaseballBat[]
Definition: hidusagestr.h:197
const char pstrUsageSystemDisplayLCDAutoscale[]
Definition: hidusagestr.h:127
const char pstrUsage7SegmentDirectMap[]
Definition: hidusagestr.h:862
const char pstrUsageMotionModeAdjust[]
Definition: hidusagestr.h:919
const char pstrUsageCharAttributeBlink[]
Definition: hidusagestr.h:872
const char pstrUsageAutomobileSimulationDevice[]
Definition: hidusagestr.h:131
const char pstrUsageACJustifyBottom[]
Definition: hidusagestr.h:709
const char pstrUsageMenuRight[]
Definition: hidusagestr.h:439
const char pstrUsageWirelessChannel[]
Definition: hidusagestr.h:264
const char pstrUsageReset[]
Definition: hidusagestr.h:428
const char pstrUsageACReplyAll[]
Definition: hidusagestr.h:763
const char pstrUsageTrackingIncrement[]
Definition: hidusagestr.h:512
const char pstrUsageALClock[]
Definition: hidusagestr.h:621
static const char *const telTitles0[]
const char pstrUsageACDemote[]
Definition: hidusagestr.h:717
const char pstrUsageChannelSurround[]
Definition: hidusagestr.h:561
static void PrintGenericDesktopPageUsage(uint16_t usage)
const char pstrUsageALFileBrowser[]
Definition: hidusagestr.h:622
const char pstrUsageSoftStepPrimary[]
Definition: hidusagestr.h:909
const char pstrUsageACCollapseAll[]
Definition: hidusagestr.h:727
const char pstrUsageSystemDisplayInternal[]
Definition: hidusagestr.h:121
const char pstrUsageVest[]
Definition: hidusagestr.h:191
const char pstrUsageDigitizer[]
Definition: hidusagestr.h:784
const char pstrUsageDisplayData[]
Definition: hidusagestr.h:839
const char pstrUsageFeature[]
Definition: hidusagestr.h:360
bool Parse(uint8_t **pp, uint16_t *pcntdn)
Definition: parsetools.cpp:19
const char pstrUsageFont14Segment[]
Definition: hidusagestr.h:863
const char pstrUsageRx[]
Definition: hidusagestr.h:70
const char pstrUsage14SegmentDirectMap[]
Definition: hidusagestr.h:864
const char pstrUsageGamepadTrigger[]
Definition: hidusagestr.h:260
const char pstrUsageALDictionary[]
Definition: hidusagestr.h:611
const char pstrUsage3Iron[]
Definition: hidusagestr.h:214
const char pstrUsageMediaSelectTelephone[]
Definition: hidusagestr.h:462
const char pstrUsageACEditTimeZone[]
Definition: hidusagestr.h:754
const char pstrUsageAccelerator[]
Definition: hidusagestr.h:168
const char pstrUsageALInstantMessaging[]
Definition: hidusagestr.h:629
const char pstrUsageIndicatorSlowBlink[]
Definition: hidusagestr.h:334
const char pstrUsageInsideDialTone[]
Definition: hidusagestr.h:385
const char pstrUsageBatteryLow[]
Definition: hidusagestr.h:300
const char pstrUsageSportsSimulationDevice[]
Definition: hidusagestr.h:137
const char pstrUsageChannelTop[]
Definition: hidusagestr.h:563
const char pstrUsageALAlarms[]
Definition: hidusagestr.h:620
const char pstrUsageACJustifyLeft[]
Definition: hidusagestr.h:703
const char pstrUsageIndicatorAmber[]
Definition: hidusagestr.h:345
const char pstrUsageSelectDisk[]
Definition: hidusagestr.h:496
const char pstrUsageACEdit[]
Definition: hidusagestr.h:686
const char pstrUsageOculometer[]
Definition: hidusagestr.h:190
const char pstrUsageInRange[]
Definition: hidusagestr.h:802
const char pstrUsageElevator[]
Definition: hidusagestr.h:156
const char pstrUsageFlightSimulationDevice[]
Definition: hidusagestr.h:130
const char pstrUsageALVoicemail[]
Definition: hidusagestr.h:582
const char pstrUsageTrigger[]
Definition: hidusagestr.h:164
const char pstrUsageACPromote[]
Definition: hidusagestr.h:716
const char pstrUsageACScroll[]
Definition: hidusagestr.h:678
const char pstrUsageGunBurst[]
Definition: hidusagestr.h:256
const char pstrUsageACSplit[]
Definition: hidusagestr.h:779
const char pstrUsageDisplayStatus[]
Definition: hidusagestr.h:840
const char pstrUsageACFontColor[]
Definition: hidusagestr.h:701
const char pstrUsageWheel[]
Definition: hidusagestr.h:75
#define TAG_GLOBAL_REPORTSIZE
Definition: hid.h:52
const char pstrUsageACFontSelect[]
Definition: hidusagestr.h:700
const char pstrUsageRingSelect[]
Definition: hidusagestr.h:372
const char pstrUsageChannelSide[]
Definition: hidusagestr.h:560
const char pstrUsageSystemUndock[]
Definition: hidusagestr.h:112
MultiByteValueParser valParser
const char pstrUsageTabletFunctionKeys[]
Definition: hidusagestr.h:809
const char pstrUsageStoreNumber[]
Definition: hidusagestr.h:377
const char pstrUsageGenericGUIAppControls[]
Definition: hidusagestr.h:641
const char pstrUsageACZoomIn[]
Definition: hidusagestr.h:670
const char pstrUsageHeadSet[]
Definition: hidusagestr.h:302
const char pstrUsageACSearch[]
Definition: hidusagestr.h:658
const char pstrUsageLandingGear[]
Definition: hidusagestr.h:162
static const char *const consTitles6[]
const char pstrUsageACSelectSentence[]
Definition: hidusagestr.h:740
const char pstrUsageDisplayAttributesReport[]
Definition: hidusagestr.h:827
#define TAG_MAIN_OUTPUT
Definition: hid.h:40
const char pstrUsageSlow[]
Definition: hidusagestr.h:533
const char pstrUsageALSpellCheck[]
Definition: hidusagestr.h:613
static const char *const vrTitles0[]
const char pstrUsageACPanLeft[]
Definition: hidusagestr.h:679
void E_Notify(char const *msg, int lvl)
Definition: message.cpp:34
const char pstrUsageSearchMarkBackwards[]
Definition: hidusagestr.h:509
const char pstrUsageZoomAdjust[]
Definition: hidusagestr.h:913
const char pstrUsageACClose[]
Definition: hidusagestr.h:644
static const char *const telTitles2[]
const char pstrUsageTabletPCSystemControls[]
Definition: hidusagestr.h:66
const char pstrUsageSubmarineSimulationDevice[]
Definition: hidusagestr.h:134
#define TAG_MAIN_ENDCOLLECTION
Definition: hid.h:43
static const char *const consTitles0[]
const char pstrUsageMenuValueIncrease[]
Definition: hidusagestr.h:441
#define HID_LONG_ITEM_PREFIX
Definition: hid.h:101
const char pstrUsageGunAutomatic[]
Definition: hidusagestr.h:257
const char pstrUsagePlayPause[]
Definition: hidusagestr.h:515
const char pstrUsageACDelete[]
Definition: hidusagestr.h:731
const char pstrUsageSlowTracking[]
Definition: hidusagestr.h:501
const char pstrUsagePaperOut[]
Definition: hidusagestr.h:317
const char pstrUsageSecurityEnable[]
Definition: hidusagestr.h:540
const char pstrUsageWeaponsSelect[]
Definition: hidusagestr.h:166
const char pstrUsageClearDisplay[]
Definition: hidusagestr.h:832
const char pstrUsageDisplayControlReport[]
Definition: hidusagestr.h:831
const char pstrUsageMediaSelectVCR[]
Definition: hidusagestr.h:468
const char pstrUsageElevatorTrim[]
Definition: hidusagestr.h:157
const char pstrUsageRz[]
Definition: hidusagestr.h:72
static void PrintSimulationControlsPageUsage(uint16_t usage)
const char pstrUsageTap[]
Definition: hidusagestr.h:805
const char pstrUsageACSyncronize[]
Definition: hidusagestr.h:759
const char pstrUsagePlaybackSpeed[]
Definition: hidusagestr.h:529
const char pstrUsageDisplayContrast[]
Definition: hidusagestr.h:866
const char pstrUsageSecondaryFlipper[]
Definition: hidusagestr.h:247
const char pstrUsageACInsertColumn[]
Definition: hidusagestr.h:771
const char pstrUsageACResize[]
Definition: hidusagestr.h:695
const char pstrUsageBass[]
Definition: hidusagestr.h:520
const char pstrUsageChannelCenterFront[]
Definition: hidusagestr.h:559
const char pstrUsageTouch[]
Definition: hidusagestr.h:803
const char pstrUsageTurretDirection[]
Definition: hidusagestr.h:173
const char pstrUsageALAVCapturePlayback[]
Definition: hidusagestr.h:589
const char pstrUsage4Iron[]
Definition: hidusagestr.h:215
const char pstrUsage2DModeSelect[]
Definition: hidusagestr.h:920
const char pstrUsageACScrollUp[]
Definition: hidusagestr.h:676
const char pstrUsagePageArcade[]
Definition: hidusagestr.h:54
const char pstrUsageEqualizerEnable[]
Definition: hidusagestr.h:284
#define DATA_SIZE_MASK
Definition: hid.h:26
const char pstrUsageRow[]
Definition: hidusagestr.h:846
const char pstrUsageHeadTracker[]
Definition: hidusagestr.h:187
const char pstrUsageACSelectParagraph[]
Definition: hidusagestr.h:741
const char pstrUsageSpaceshipSimulationDevice[]
Definition: hidusagestr.h:133
const char pstrUsageVolumeIncrement[]
Definition: hidusagestr.h:526
const char pstrUsageScreenSaverEnable[]
Definition: hidusagestr.h:835
static const char *const sportsCtrlTitles0[]
const char pstrUsageDataMode[]
Definition: hidusagestr.h:297
static const char *const medInstrTitles3[]
const char pstrUsageModeStep[]
Definition: hidusagestr.h:452
const char pstrUsageInUseIndicator[]
Definition: hidusagestr.h:330
const char pstrUsageTrackNormal[]
Definition: hidusagestr.h:500
static void PrintAlphanumDisplayPageUsage(uint16_t usage)
const char pstrUsageACPasteSpecial[]
Definition: hidusagestr.h:729
const char pstrUsageCallWaitingTone[]
Definition: hidusagestr.h:394
const char pstrUsageACAddToCart[]
Definition: hidusagestr.h:723
const char pstrUsageStandBy[]
Definition: hidusagestr.h:310
const char pstrUsageSleepMode[]
Definition: hidusagestr.h:431
const char pstrUsage6Iron[]
Definition: hidusagestr.h:217
const char pstrUsageASCIICharacterSet[]
Definition: hidusagestr.h:828
const char pstrUsageExternalPowerConnected[]
Definition: hidusagestr.h:348
uint8_t valueSize
Definition: parsetools.h:24
const char pstrUsagePageGenericDeviceControls[]
Definition: hidusagestr.h:35
const char pstrUsageBlitData[]
Definition: hidusagestr.h:886
const char pstrUsageForwardCalls[]
Definition: hidusagestr.h:366
const char pstrUsageALLocalMachineBrowser[]
Definition: hidusagestr.h:590
const char pstrUsageMark[]
Definition: hidusagestr.h:504
const char pstrUsagePlus100[]
Definition: hidusagestr.h:425
const char pstrUsageHeadset[]
Definition: hidusagestr.h:355
const char pstrUsageACCopy[]
Definition: hidusagestr.h:652
const char pstrUsageX[]
Definition: hidusagestr.h:67
const char pstrUsageStickTempo[]
Definition: hidusagestr.h:208
const char pstrUsagePaletteReport[]
Definition: hidusagestr.h:877
const char pstrUsageACSetClock[]
Definition: hidusagestr.h:751
const char pstrUsageSecurityCodeCleared[]
Definition: hidusagestr.h:269
const char pstrUsageKeypad[]
Definition: hidusagestr.h:64
const char pstrUsageBitmapSizeX[]
Definition: hidusagestr.h:873
const char pstrUsageACRedoRepeat[]
Definition: hidusagestr.h:746
const char pstrUsagePhoneKeyPound[]
Definition: hidusagestr.h:411
const char pstrUsageVbrz[]
Definition: hidusagestr.h:87
const char pstrUsageBalanceRight[]
Definition: hidusagestr.h:548
const char pstrUsageTrackingDecrement[]
Definition: hidusagestr.h:513
const char pstrUsagePhone[]
Definition: hidusagestr.h:351
const char pstrUsageSnapshot[]
Definition: hidusagestr.h:448
const char pstrUsagePageTelephone[]
Definition: hidusagestr.h:40
const char pstrUsageCallPickup[]
Definition: hidusagestr.h:308
const char pstrUsageACMerge[]
Definition: hidusagestr.h:778
const char pstrUsagePuck[]
Definition: hidusagestr.h:798
const char pstrUsageACUnprotect[]
Definition: hidusagestr.h:735
const char pstrUsageTreble[]
Definition: hidusagestr.h:521
virtual uint8_t ParseItem(uint8_t **pp, uint16_t *pcntdn)
const char pstrUsageMediaSelectDVD[]
Definition: hidusagestr.h:461
const char pstrUsageACNormalView[]
Definition: hidusagestr.h:674
const char pstrUsageLightPen[]
Definition: hidusagestr.h:786
const char pstrUsage11Iron[]
Definition: hidusagestr.h:222
const char pstrUsageMediaSelectCD[]
Definition: hidusagestr.h:467
const char pstrUsageJoystick[]
Definition: hidusagestr.h:61
const char pstrUsageFlash[]
Definition: hidusagestr.h:359
#define TAG_GLOBAL_REPORTCOUNT
Definition: hid.h:54
const char pstrUsagePoliceAlarm[]
Definition: hidusagestr.h:542
const char pstrUsageFreeSpaceWand[]
Definition: hidusagestr.h:796
const char pstrUsageBlitRectangleX2[]
Definition: hidusagestr.h:884
const char pstrUsageBassBoost[]
Definition: hidusagestr.h:522
const char pstrUsagePaletteData[]
Definition: hidusagestr.h:880
const char pstrUsageFastBlinkOnTime[]
Definition: hidusagestr.h:340
const char pstrUsageHelicopterSimulationDevice[]
Definition: hidusagestr.h:139
const char pstrUsageEraser[]
Definition: hidusagestr.h:821
const char pstrUsageALNewsreader[]
Definition: hidusagestr.h:581
const char pstrUsageRate[]
Definition: hidusagestr.h:203
const char pstrUsageDPadRight[]
Definition: hidusagestr.h:109
const char pstrUsageApplicationDebuggerBreak[]
Definition: hidusagestr.h:117
const char pstrUsageALContactsAddressBook[]
Definition: hidusagestr.h:583
const char pstrUsageALDigitalWallet[]
Definition: hidusagestr.h:628
const char pstrUsageSamplingRateDetect[]
Definition: hidusagestr.h:289
const char pstrUsageALSpreadsheet[]
Definition: hidusagestr.h:576
const char pstrUsageStereo[]
Definition: hidusagestr.h:288
const char pstrUsageHeightOfPOV[]
Definition: hidusagestr.h:245
const char pstrUsageRollRightLeft[]
Definition: hidusagestr.h:239
const char pstrUsageACSendTo[]
Definition: hidusagestr.h:761
const char pstrUsageForward[]
Definition: hidusagestr.h:320
static const char *const digitTitles1[]
const char pstrUsageSoftButtonOffset2[]
Definition: hidusagestr.h:891
const char pstrUsageFinger[]
Definition: hidusagestr.h:799
const char pstrUsageACExit[]
Definition: hidusagestr.h:645
const char pstrUsageExtendedPlay[]
Definition: hidusagestr.h:532
const char pstrUsageAlternateAudioIncrement[]
Definition: hidusagestr.h:568
const char pstrUsageMotionWakeup[]
Definition: hidusagestr.h:79
static const char *const vrTitles1[]
#define TAG_GLOBAL_LOGICALMAX
Definition: hid.h:47
const char pstrUsageMicrophoneEnable[]
Definition: hidusagestr.h:903
const char pstrUsageACBack[]
Definition: hidusagestr.h:661
#define TAG_GLOBAL_UNIT
Definition: hid.h:51
const char pstrUsageHoldupAlarm[]
Definition: hidusagestr.h:546
const char pstrUsageCharacterSpacingHorizontal[]
Definition: hidusagestr.h:858
static const char *const ledTitles[]
const char pstrUsageChannelDecrement[]
Definition: hidusagestr.h:479
void Initialize(MultiValueBuffer *const pbuf)
Definition: parsetools.h:42
const char pstrUsageStickFaceAngle[]
Definition: hidusagestr.h:205
const char pstrUsageBarrelPressure[]
Definition: hidusagestr.h:801
const char pstrUsageACReply[]
Definition: hidusagestr.h:762
const char pstrUsageRepeat[]
Definition: hidusagestr.h:287
const char pstrUsageSubChannelIncrement[]
Definition: hidusagestr.h:566
const char pstrUsageACZoom[]
Definition: hidusagestr.h:672
const char pstrUsageRudder[]
Definition: hidusagestr.h:158
const char pstrUsageCallerID[]
Definition: hidusagestr.h:374
const char pstrUsageHorizontalScroll[]
Definition: hidusagestr.h:837
const char pstrSpace[]
Definition: hidusagestr.h:22
const char pstrUsageACCatalog[]
Definition: hidusagestr.h:721
static const char *const gameTitles0[]
const char pstrUsageIndicatorFlash[]
Definition: hidusagestr.h:333
const char pstrUsagePagePointOfSale[]
Definition: hidusagestr.h:52
const char pstrUsageMediaSelectCall[]
Definition: hidusagestr.h:477
const char pstrUsageALLANWANBrow[]
Definition: hidusagestr.h:591
const char pstrUsageDepthGainCompensation[]
Definition: hidusagestr.h:911
const char pstrUsageSecondaryTipSwitch[]
Definition: hidusagestr.h:819
const char pstrUsageDiscoverWirelessControl[]
Definition: hidusagestr.h:266
const char pstrUsageSystemMainMenu[]
Definition: hidusagestr.h:96
virtual void Parse(const uint16_t len, const uint8_t *pbuf, const uint16_t &offset)
const char pstrUsageDataValid[]
Definition: hidusagestr.h:807
const char pstrUsageACViewToggle[]
Definition: hidusagestr.h:675
const char pstrUsagePriorityRingTone[]
Definition: hidusagestr.h:389
const char pstrUsageMenuPick[]
Definition: hidusagestr.h:435
const char pstrUsagePointOfView[]
Definition: hidusagestr.h:236
const char pstrUsageSoftButtonID[]
Definition: hidusagestr.h:888
const char pstrUsageMediaSelectCable[]
Definition: hidusagestr.h:473
const char pstrUsagePageCameraControl[]
Definition: hidusagestr.h:53
const char pstrUsageIndicatorGreen[]
Definition: hidusagestr.h:344
const char pstrUsageScreenCalls[]
Definition: hidusagestr.h:381
const char pstrUsageACInsertSymbol[]
Definition: hidusagestr.h:775
static const char *const consTitlesA[]
const char pstrUsageACClearAlarm[]
Definition: hidusagestr.h:756
const char pstrUsageToneEnable[]
Definition: hidusagestr.h:281
const char pstrUsageLoftWedge[]
Definition: hidusagestr.h:224
const char pstrUsageByteCount[]
Definition: hidusagestr.h:78
static const char *const genDesktopTitles4[]
const char pstrUsageAlphanumericDisplay[]
Definition: hidusagestr.h:825
const char pstrUsageACPrint[]
Definition: hidusagestr.h:649
const char pstrUsageSlope[]
Definition: hidusagestr.h:202
const char pstrUsagePhoneKeyC[]
Definition: hidusagestr.h:414
static const char *const consTitlesE[]
const char pstrUsageSystemMenuSelect[]
Definition: hidusagestr.h:100
const char pstrUsageACScrollDown[]
Definition: hidusagestr.h:677
const char pstrUsageACProtect[]
Definition: hidusagestr.h:734
const char pstrUsageALProgrammableButton[]
Definition: hidusagestr.h:572
const char pstrUsageDial[]
Definition: hidusagestr.h:74
const char pstrUsageCharacterHeight[]
Definition: hidusagestr.h:857
const char pstrUsageLightIlluminationLevel[]
Definition: hidusagestr.h:537
const char pstrUsageALTelephonyDialer[]
Definition: hidusagestr.h:596
const char pstrUsageMediaSelectTape[]
Definition: hidusagestr.h:472
const char pstrUsageProximity[]
Definition: hidusagestr.h:543
const char pstrUsageACRefresh[]
Definition: hidusagestr.h:664
const char pstrUsageALTextEditor[]
Definition: hidusagestr.h:575
const char pstrUsageALResearchSearchBrowser[]
Definition: hidusagestr.h:639
static const char *const digitTitles0[]
const char pstrUsageAzimuth[]
Definition: hidusagestr.h:815
virtual uint8_t ParseItem(uint8_t **pp, uint16_t *pcntdn)
const char pstrUsageACSelectAll[]
Definition: hidusagestr.h:655
const char pstrUsageALNetworkChat[]
Definition: hidusagestr.h:595
const char pstrUsageMotocicleSimulationDevice[]
Definition: hidusagestr.h:136
static const char *const simuTitles0[]
const char pstrUsageALDesktop[]
Definition: hidusagestr.h:612
const char pstrUsageThrottle[]
Definition: hidusagestr.h:159
const char pstrUsageTrackControl[]
Definition: hidusagestr.h:147
const char pstrUsageALImageBrowser[]
Definition: hidusagestr.h:624
const char pstrUsageALCheckbookFinance[]
Definition: hidusagestr.h:587
static const char *const simuTitles2[]
const char pstrUsageVno[]
Definition: hidusagestr.h:88
const char pstrUsagePause[]
Definition: hidusagestr.h:326
const char pstrUsageCharacterAttribute[]
Definition: hidusagestr.h:867
const char pstrUsageDrop[]
Definition: hidusagestr.h:364
const char pstrUsageACDownload[]
Definition: hidusagestr.h:768
const char pstrUsageIndicatorOff[]
Definition: hidusagestr.h:336
const char pstrUsageChannelLeft[]
Definition: hidusagestr.h:555
const char pstrUsageSystemDisplayToggleIntExt[]
Definition: hidusagestr.h:125
const char pstrUsageCharacterSpacingVertical[]
Definition: hidusagestr.h:859
const char pstrUsageCameraOn[]
Definition: hidusagestr.h:311
const char pstrUsageMediaSelectGames[]
Definition: hidusagestr.h:465
const char pstrUsageACBulletedList[]
Definition: hidusagestr.h:715
const char pstrUsageSoundFieldOn[]
Definition: hidusagestr.h:285
const char pstrUsageSoftButtonSide[]
Definition: hidusagestr.h:889
const char pstrUsageLeanForwardBackward[]
Definition: hidusagestr.h:244
const char pstrUsageUnicodeCharset[]
Definition: hidusagestr.h:860
const char pstrUsageTransfer[]
Definition: hidusagestr.h:363
const char pstrUsageLoudness[]
Definition: hidusagestr.h:524
const char pstrUsageALWordProcessor[]
Definition: hidusagestr.h:574
const char pstrUsageAntiTorqueControl[]
Definition: hidusagestr.h:150
const char pstrUsageBlitRectangleX1[]
Definition: hidusagestr.h:882
const char pstrUsagePageSimulationControls[]
Definition: hidusagestr.h:31
const char pstrUsageACSetAlarm[]
Definition: hidusagestr.h:755
static const char *const sportsCtrlTitles1[]
const char pstrUsagePointer[]
Definition: hidusagestr.h:59
const char pstrUsage8Iron[]
Definition: hidusagestr.h:219
const char pstrUsageWhiteBoard[]
Definition: hidusagestr.h:789
const char pstrUsageColumn[]
Definition: hidusagestr.h:847
const char pstrUsageSystemControl[]
Definition: hidusagestr.h:91
const char pstrUsageChannel[]
Definition: hidusagestr.h:456
const char pstrUsageSoftButtonOffset1[]
Definition: hidusagestr.h:890
const char pstrUsageRemote[]
Definition: hidusagestr.h:319
const char pstrUsagePageScale[]
Definition: hidusagestr.h:50
const char pstrUsageChannelCenter[]
Definition: hidusagestr.h:557
const char pstrUsageALCustomCorpNewsBrowser[]
Definition: hidusagestr.h:637
const char pstrUsageMultiplePointDigitizer[]
Definition: hidusagestr.h:795
const char pstrUsageTransducerIndex[]
Definition: hidusagestr.h:808
const char pstrUsageHandleBars[]
Definition: hidusagestr.h:178
const char pstrUsageSlowBlinkOnTime[]
Definition: hidusagestr.h:338
const char pstrUsagePlayer[]
Definition: hidusagestr.h:251
const char pstrUsageGolfClub[]
Definition: hidusagestr.h:198
const char pstrUsageStop[]
Definition: hidusagestr.h:322
const char pstrUsageChannelLowFreqEnhancement[]
Definition: hidusagestr.h:562
const char pstrUsageAutopilotEnable[]
Definition: hidusagestr.h:151
const char pstrUsageACRestartNumbering[]
Definition: hidusagestr.h:714
const char pstrUsageALPresentationApp[]
Definition: hidusagestr.h:578
const char pstrUsageFeatureNotification[]
Definition: hidusagestr.h:89
const char pstrUsageMediaSelectSatellite[]
Definition: hidusagestr.h:474
const char pstrUsageRedial[]
Definition: hidusagestr.h:362
const char pstrUsageMicrophone[]
Definition: hidusagestr.h:304
const char pstrUsageAileronTrim[]
Definition: hidusagestr.h:149
const char pstrUsageCLV[]
Definition: hidusagestr.h:292
const char pstrUsagePageReserved[]
Definition: hidusagestr.h:55
const char pstrUsageMedicalAlarm[]
Definition: hidusagestr.h:547
const char pstrUsageStandardPlay[]
Definition: hidusagestr.h:530
const char pstrUsageRingEnable[]
Definition: hidusagestr.h:371
MultiValueBuffer theBuffer
const char pstrUsageRecord[]
Definition: hidusagestr.h:327
const char pstrUsageACUnlock[]
Definition: hidusagestr.h:733
const char pstrUsageACViewComment[]
Definition: hidusagestr.h:738
static UsagePageFunc usagePageFunctions[]
const char pstrUsageACForwardMessage[]
Definition: hidusagestr.h:764
const char pstrUsageACSendReceive[]
Definition: hidusagestr.h:760
const char pstrUsageConfirmationTone1[]
Definition: hidusagestr.h:395
const char pstrUsageACFind[]
Definition: hidusagestr.h:656
const char pstrUsageFlipper[]
Definition: hidusagestr.h:246
const char pstrUsageACInsertRow[]
Definition: hidusagestr.h:770
const char pstrUsageALScreenSaver[]
Definition: hidusagestr.h:619
const char pstrUsageACIndentDecrease[]
Definition: hidusagestr.h:711
const char pstrUsageALInternetBrowser[]
Definition: hidusagestr.h:592
static const char *const consTitles8[]
const char pstrUsageMediaSelection[]
Definition: hidusagestr.h:457
const char pstrUsageTransmitPower[]
Definition: hidusagestr.h:905
const char pstrUsageBicycleCrank[]
Definition: hidusagestr.h:177
const char pstrUsageHookSwitch[]
Definition: hidusagestr.h:358
const char pstrUsageFont7Segment[]
Definition: hidusagestr.h:861
#define TAG_MAIN_INPUT
Definition: hid.h:39
static const char *const medInstrTitles2[]
const char pstrUsageGlove[]
Definition: hidusagestr.h:186
const char pstrUsageMediaSelectTV[]
Definition: hidusagestr.h:459
const char pstrUsageGamepadFireJump[]
Definition: hidusagestr.h:259
const char pstrUsage1Wood[]
Definition: hidusagestr.h:226
const char pstrUsageColorDopplerModeSelect[]
Definition: hidusagestr.h:916
const char pstrUsageSoftButton[]
Definition: hidusagestr.h:887
const char pstrUsageCounterReset[]
Definition: hidusagestr.h:510
const char pstrUsageOutsideRingTone[]
Definition: hidusagestr.h:388
const char pstrUsageRecallNumber[]
Definition: hidusagestr.h:378
const char pstrUsageGunDevice[]
Definition: hidusagestr.h:235
const char pstrUsagePageButton[]
Definition: hidusagestr.h:38
const char pstrUsageIndicatorColor[]
Definition: hidusagestr.h:342
const char pstrUsageBallast[]
Definition: hidusagestr.h:176
const char pstrUsageCine[]
Definition: hidusagestr.h:904
const char pstrUsageSecurityCodeCharErased[]
Definition: hidusagestr.h:268
const char pstrUsageBatteryStrength[]
Definition: hidusagestr.h:263
const char pstrUsageALVirusProtection[]
Definition: hidusagestr.h:617
const char pstrUsagePageAlphaNumericDisplay[]
Definition: hidusagestr.h:45
const char pstrUsage5Wood[]
Definition: hidusagestr.h:228
const char pstrUsageDuresAlarm[]
Definition: hidusagestr.h:545
#define USBTRACE(s)
Definition: macros.h:75
const char pstrUsageACUnderline[]
Definition: hidusagestr.h:689
const char pstrUsageALLaunchButtonConfigTool[]
Definition: hidusagestr.h:571
const char pstrUsageSailingSimulationDevice[]
Definition: hidusagestr.h:135
const char pstrUsageALOnlineShoppingBrowser[]
Definition: hidusagestr.h:634
const char pstrUsageTouchPad[]
Definition: hidusagestr.h:788
const char pstrUsageALThesaurus[]
Definition: hidusagestr.h:610
#define TAG_MAIN_COLLECTION
Definition: hid.h:41
const char pstrUsageVCRPlus[]
Definition: hidusagestr.h:481
const char pstrUsageFontReadBack[]
Definition: hidusagestr.h:830
const char pstrUsageALGrammarCheck[]
Definition: hidusagestr.h:614
const char pstrUsageALSelectTaskApplication[]
Definition: hidusagestr.h:604
const char pstrUsageCharAttributeEnhance[]
Definition: hidusagestr.h:870
const char pstrUsageStylus[]
Definition: hidusagestr.h:797
const char pstrUsageConfirmationTone2[]
Definition: hidusagestr.h:396
const char pstrUsageQuality[]
Definition: hidusagestr.h:806
const char pstrUsagePagePower[]
Definition: hidusagestr.h:48
const char pstrUsageDisplayBrightness[]
Definition: hidusagestr.h:865
const char pstrUsageMPX[]
Definition: hidusagestr.h:525
const char pstrUsageOutsideRingback[]
Definition: hidusagestr.h:398
const char pstrUsageShowCounter[]
Definition: hidusagestr.h:511
const char pstrUsageSteering[]
Definition: hidusagestr.h:172
const char pstrUsageACSuperscript[]
Definition: hidusagestr.h:692
const char pstrUsagePageKeyboardKeypad[]
Definition: hidusagestr.h:36
const char pstrUsageACSubscriptions[]
Definition: hidusagestr.h:669
const char pstrUsageSystemSpeakerMute[]
Definition: hidusagestr.h:118
const char pstrUsageY[]
Definition: hidusagestr.h:68
const char pstrUsageSend[]
Definition: hidusagestr.h:375
const char pstrUsageHatSwitch[]
Definition: hidusagestr.h:76
const char pstrUsageBassIncrement[]
Definition: hidusagestr.h:550
const char pstrUsagePhoneKey4[]
Definition: hidusagestr.h:404
const char pstrUsagePhoneKeyA[]
Definition: hidusagestr.h:412
const char pstrUsageOutsideDialTone[]
Definition: hidusagestr.h:386
const char pstrUsageMultiModeIndicator[]
Definition: hidusagestr.h:331
const char pstrUsageMediaSelectSAP[]
Definition: hidusagestr.h:480
const char pstrUsageStereoEnable[]
Definition: hidusagestr.h:193
uint8_t varBuffer[sizeof(USB_CONFIGURATION_DESCRIPTOR)]
const char pstrUsageALGraphicsEditor[]
Definition: hidusagestr.h:577
const char pstrUsageClipStore[]
Definition: hidusagestr.h:898
const char pstrUsageApplicationLaunchButtons[]
Definition: hidusagestr.h:570
const char pstrUsageACFlipVertical[]
Definition: hidusagestr.h:697
const char pstrUsageDisplayOrientation[]
Definition: hidusagestr.h:876
const char pstrUsageGenericIndicator[]
Definition: hidusagestr.h:346
const char pstrUsagePhoneKeyStar[]
Definition: hidusagestr.h:410
const char pstrUsageACUpload[]
Definition: hidusagestr.h:767
const char pstrUsageMenuValueDecrease[]
Definition: hidusagestr.h:442
const char pstrUsageALEmailReader[]
Definition: hidusagestr.h:580
const char pstrUsageLineBusyTone[]
Definition: hidusagestr.h:392
const char pstrUsageMediaSelectTuner[]
Definition: hidusagestr.h:469
const char pstrUsageMediaSelectHome[]
Definition: hidusagestr.h:476