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 #include "hidescriptorparser.h"
2 
3 const char * const ReportDescParserBase::usagePageTitles0[] PROGMEM = {
19 };
20 
21 const char * const ReportDescParserBase::usagePageTitles1[] PROGMEM = {
28 };
29 const char * const ReportDescParserBase::genDesktopTitles0[] PROGMEM = {
38 
39 };
40 const char * const ReportDescParserBase::genDesktopTitles1[] PROGMEM = {
41  pstrUsageX,
42  pstrUsageY,
43  pstrUsageZ,
66 };
67 const char * const ReportDescParserBase::genDesktopTitles2[] PROGMEM = {
88 };
89 const char * const ReportDescParserBase::genDesktopTitles3[] PROGMEM = {
99 };
100 const char * const ReportDescParserBase::genDesktopTitles4[] PROGMEM = {
109 };
110 const char * const ReportDescParserBase::simuTitles0[] PROGMEM = {
123 };
124 const char * const ReportDescParserBase::simuTitles1[] PROGMEM = {
131 };
132 const char * const ReportDescParserBase::simuTitles2[] PROGMEM = {
166 };
167 const char * const ReportDescParserBase::vrTitles0[] PROGMEM = {
178 };
179 const char * const ReportDescParserBase::vrTitles1[] PROGMEM = {
182 };
183 const char * const ReportDescParserBase::sportsCtrlTitles0[] PROGMEM = {
188 };
189 const char * const ReportDescParserBase::sportsCtrlTitles1[] PROGMEM = {
190  pstrUsageOar,
200 };
201 const char * const ReportDescParserBase::sportsCtrlTitles2[] PROGMEM = {
222 };
223 const char * const ReportDescParserBase::gameTitles0[] PROGMEM = {
227 };
228 const char * const ReportDescParserBase::gameTitles1[] PROGMEM = {
254 };
255 const char * const ReportDescParserBase::genDevCtrlTitles[] PROGMEM = {
263 };
264 const char * const ReportDescParserBase::ledTitles[] PROGMEM = {
284  pstrUsageCAV,
285  pstrUsageCLV,
342 };
343 const char * const ReportDescParserBase::telTitles0 [] PROGMEM = {
351 };
352 const char * const ReportDescParserBase::telTitles1 [] PROGMEM = {
371 };
372 const char * const ReportDescParserBase::telTitles2 [] PROGMEM = {
377 };
378 const char * const ReportDescParserBase::telTitles3 [] PROGMEM = {
384 };
385 const char * const ReportDescParserBase::telTitles4 [] PROGMEM = {
401 };
402 const char * const ReportDescParserBase::telTitles5 [] PROGMEM = {
419 };
420 const char * const ReportDescParserBase::consTitles0[] PROGMEM = {
427 };
428 const char * const ReportDescParserBase::consTitles1[] PROGMEM = {
432 };
433 const char * const ReportDescParserBase::consTitles2[] PROGMEM = {
441 
442 };
443 const char * const ReportDescParserBase::consTitles3[] PROGMEM = {
453 };
454 const char * const ReportDescParserBase::consTitles4[] PROGMEM = {
462 };
463 const char * const ReportDescParserBase::consTitles5[] PROGMEM = {
501 };
502 const char * const ReportDescParserBase::consTitles6[] PROGMEM = {
534 };
535 const char * const ReportDescParserBase::consTitles7[] PROGMEM = {
544  pstrUsageMPX,
547 };
548 const char * const ReportDescParserBase::consTitles8[] PROGMEM = {
555 };
556 const char * const ReportDescParserBase::consTitles9[] PROGMEM = {
571 };
572 const char * const ReportDescParserBase::consTitlesA[] PROGMEM = {
579 };
580 const char * const ReportDescParserBase::consTitlesB[] PROGMEM = {
592 };
593 const char * const ReportDescParserBase::consTitlesC[] PROGMEM = {
599 };
600 const char * const ReportDescParserBase::consTitlesD[] PROGMEM = {
673 };
674 const char * const ReportDescParserBase::consTitlesE[] PROGMEM = {
816 };
817 const char * const ReportDescParserBase::digitTitles0[] PROGMEM = {
819  pstrUsagePen,
831 };
832 const char * const ReportDescParserBase::digitTitles1[] PROGMEM = {
836 
837 };
838 const char * const ReportDescParserBase::digitTitles2[] PROGMEM = {
844  pstrUsageTap,
862 };
863 const char * const ReportDescParserBase::aplphanumTitles0[] PROGMEM = {
866 };
867 const char * const ReportDescParserBase::aplphanumTitles1[] PROGMEM = {
887  pstrUsageRow,
914 };
915 const char * const ReportDescParserBase::aplphanumTitles2[] PROGMEM = {
937 };
938 const char * const ReportDescParserBase::medInstrTitles0[] PROGMEM = {
947 };
948 const char * const ReportDescParserBase::medInstrTitles1[] PROGMEM = {
954 };
955 const char * const ReportDescParserBase::medInstrTitles2[] PROGMEM = {
958 };
959 const char * const ReportDescParserBase::medInstrTitles3[] PROGMEM = {
970 };
971 const char * const ReportDescParserBase::medInstrTitles4[] PROGMEM = {
974 };
975 
976 void ReportDescParserBase::Parse(const uint16_t len, const uint8_t *pbuf, const uint16_t &offset) {
977  uint16_t cntdn = (uint16_t)len;
978  uint8_t *p = (uint8_t*)pbuf;
979 
980 
981  totalSize = 0;
982 
983  while (cntdn) {
984  //USB_HOST_SERIAL.println("");
985  //PrintHex<uint16_t>(offset + len - cntdn);
986  //USB_HOST_SERIAL.print(":");
987 
988  ParseItem(&p, &cntdn);
989 
990  //if (ParseItem(&p, &cntdn))
991  // return;
992  }
993  //USBTRACE2("Total:", totalSize);
994 }
995 
996 void ReportDescParserBase::PrintValue(uint8_t *p, uint8_t len) {
997  E_Notify(PSTR("("), 0x80);
998  for (; len; p++, len--)
999  PrintHex<uint8_t > (*p, 0x80);
1000  E_Notify(PSTR(")"), 0x80);
1001 }
1002 
1004  E_Notify(PSTR("("), 0x80);
1005  PrintHex<uint8_t > (data, 0x80);
1006  E_Notify(PSTR(")"), 0x80);
1007 }
1008 
1010  switch (prefix & (TYPE_MASK | TAG_MASK)) {
1011  case (TYPE_GLOBAL | TAG_GLOBAL_PUSH):
1012  E_Notify(PSTR("\r\nPush"), 0x80);
1013  break;
1014  case (TYPE_GLOBAL | TAG_GLOBAL_POP):
1015  E_Notify(PSTR("\r\nPop"), 0x80);
1016  break;
1018  E_Notify(PSTR("\r\nUsage Page"), 0x80);
1019  break;
1021  E_Notify(PSTR("\r\nLogical Min"), 0x80);
1022  break;
1024  E_Notify(PSTR("\r\nLogical Max"), 0x80);
1025  break;
1027  E_Notify(PSTR("\r\nPhysical Min"), 0x80);
1028  break;
1030  E_Notify(PSTR("\r\nPhysical Max"), 0x80);
1031  break;
1033  E_Notify(PSTR("\r\nUnit Exp"), 0x80);
1034  break;
1035  case (TYPE_GLOBAL | TAG_GLOBAL_UNIT):
1036  E_Notify(PSTR("\r\nUnit"), 0x80);
1037  break;
1039  E_Notify(PSTR("\r\nReport Size"), 0x80);
1040  break;
1042  E_Notify(PSTR("\r\nReport Count"), 0x80);
1043  break;
1045  E_Notify(PSTR("\r\nReport Id"), 0x80);
1046  break;
1047  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1048  E_Notify(PSTR("\r\nUsage"), 0x80);
1049  break;
1050  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1051  E_Notify(PSTR("\r\nUsage Min"), 0x80);
1052  break;
1053  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1054  E_Notify(PSTR("\r\nUsage Max"), 0x80);
1055  break;
1056  case (TYPE_MAIN | TAG_MAIN_COLLECTION):
1057  E_Notify(PSTR("\r\nCollection"), 0x80);
1058  break;
1060  E_Notify(PSTR("\r\nEnd Collection"), 0x80);
1061  break;
1062  case (TYPE_MAIN | TAG_MAIN_INPUT):
1063  E_Notify(PSTR("\r\nInput"), 0x80);
1064  break;
1065  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1066  E_Notify(PSTR("\r\nOutput"), 0x80);
1067  break;
1068  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1069  E_Notify(PSTR("\r\nFeature"), 0x80);
1070  break;
1071  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1072 }
1073 
1074 uint8_t ReportDescParserBase::ParseItem(uint8_t **pp, uint16_t *pcntdn) {
1075  //uint8_t ret = enErrorSuccess;
1076 
1077  switch (itemParseState) {
1078  case 0:
1079  if (**pp == HID_LONG_ITEM_PREFIX)
1080  USBTRACE("\r\nLONG\r\n");
1081  else {
1082  uint8_t size = ((**pp) & DATA_SIZE_MASK);
1083 
1084  itemPrefix = (**pp);
1085  itemSize = 1 + ((size == DATA_SIZE_4) ? 4 : size);
1086 
1088  }
1089  (*pp)++;
1090  (*pcntdn)--;
1091  itemSize--;
1092  itemParseState = 1;
1093 
1094  if (!itemSize)
1095  break;
1096 
1097  if (!pcntdn)
1098  return enErrorIncomplete;
1099  case 1:
1100  //USBTRACE2("\r\niSz:",itemSize);
1101 
1104  itemParseState = 2;
1105  case 2:
1106  if (!valParser.Parse(pp, pcntdn))
1107  return enErrorIncomplete;
1108  itemParseState = 3;
1109  case 3:
1110  {
1111  uint8_t data = *((uint8_t*)varBuffer);
1112 
1113  switch (itemPrefix & (TYPE_MASK | TAG_MASK)) {
1114  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1115  if (pfUsage) {
1116  if (theBuffer.valueSize > 1)
1117  pfUsage(*((uint16_t*)varBuffer));
1118  else
1119  pfUsage(data);
1120  }
1121  break;
1123  rptSize = data;
1124  PrintByteValue(data);
1125  break;
1127  rptCount = data;
1128  PrintByteValue(data);
1129  break;
1135  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1136  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1138  case (TYPE_GLOBAL | TAG_GLOBAL_UNIT):
1140  break;
1141  case (TYPE_GLOBAL | TAG_GLOBAL_PUSH):
1142  case (TYPE_GLOBAL | TAG_GLOBAL_POP):
1143  break;
1145  SetUsagePage(data);
1146  PrintUsagePage(data);
1147  PrintByteValue(data);
1148  break;
1149  case (TYPE_MAIN | TAG_MAIN_COLLECTION):
1151  switch (data) {
1152  case 0x00:
1153  E_Notify(PSTR(" Physical"), 0x80);
1154  break;
1155  case 0x01:
1156  E_Notify(PSTR(" Application"), 0x80);
1157  break;
1158  case 0x02:
1159  E_Notify(PSTR(" Logical"), 0x80);
1160  break;
1161  case 0x03:
1162  E_Notify(PSTR(" Report"), 0x80);
1163  break;
1164  case 0x04:
1165  E_Notify(PSTR(" Named Array"), 0x80);
1166  break;
1167  case 0x05:
1168  E_Notify(PSTR(" Usage Switch"), 0x80);
1169  break;
1170  case 0x06:
1171  E_Notify(PSTR(" Usage Modifier"), 0x80);
1172  break;
1173  default:
1174  E_Notify(PSTR(" Vendor Defined("), 0x80);
1175  PrintHex<uint8_t > (data, 0x80);
1176  E_Notify(PSTR(")"), 0x80);
1177  }
1178  break;
1179  case (TYPE_MAIN | TAG_MAIN_INPUT):
1180  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1181  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1182  totalSize += (uint16_t)rptSize * (uint16_t)rptCount;
1183  rptSize = 0;
1184  rptCount = 0;
1185  E_Notify(PSTR("("), 0x80);
1186  PrintBin<uint8_t > (data, 0x80);
1187  E_Notify(PSTR(")"), 0x80);
1188  break;
1189  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1190  }
1191  } // switch (itemParseState)
1192  itemParseState = 0;
1193  return enErrorSuccess;
1194 }
1195 
1203  NULL, // Keyboard/Keypad
1210  NULL, // Reserved
1211  NULL, // PID
1212  NULL // Unicode
1213 };
1214 
1216  pfUsage = NULL;
1217 
1218  if (page > 0x00 && page < 0x11)
1219  pfUsage = /*(UsagePageFunc)pgm_read_pointer*/(usagePageFunctions[page - 1]);
1220  //else if (page > 0x7f && page < 0x84)
1221  // E_Notify(pstrUsagePageMonitor);
1222  //else if (page > 0x83 && page < 0x8c)
1223  // E_Notify(pstrUsagePagePower);
1224  //else if (page > 0x8b && page < 0x92)
1225  // E_Notify((char*)pgm_read_pointer(&usagePageTitles1[page - 0x8c]));
1226  //else if (page > 0xfeff && page <= 0xffff)
1227  // E_Notify(pstrUsagePageVendorDefined);
1228  else
1229  switch (page) {
1230  case 0x14:
1232  break;
1233  case 0x40:
1235  break;
1236  }
1237 }
1238 
1240  E_Notify(pstrSpace, 0x80);
1241 
1242  if (page > 0x00 && page < 0x11)
1243  E_Notify((char*)pgm_read_pointer(&usagePageTitles0[page - 1]), 0x80);
1244  else if (page > 0x7f && page < 0x84)
1246  else if (page > 0x83 && page < 0x8c)
1248  else if (page > 0x8b && page < 0x92)
1249  E_Notify((char*)pgm_read_pointer(&usagePageTitles1[page - 0x8c]), 0x80);
1250  else if (page > 0xfeff && page <= 0xffff)
1252  else
1253  switch (page) {
1254  case 0x14:
1256  break;
1257  case 0x40:
1259  break;
1260  default:
1262  }
1263 }
1264 
1266  E_Notify(pstrSpace, 0x80);
1267  E_Notify(PSTR("Btn"), 0x80);
1268  PrintHex<uint16_t > (usage, 0x80);
1269  E_Notify(PSTR("\r\n"), 0x80);
1270  //USB_HOST_SERIAL.print(usage, HEX);
1271 }
1272 
1274  E_Notify(pstrSpace, 0x80);
1275  E_Notify(PSTR("Inst"), 0x80);
1276  // Sorry, HEX for now...
1277  PrintHex<uint16_t > (usage, 0x80);
1278  E_Notify(PSTR("\r\n"), 0x80);
1279  //USB_HOST_SERIAL.print(usage, DEC);
1280 }
1281 
1283  E_Notify(pstrSpace, 0x80);
1284 
1285  if (usage > 0x00 && usage < 0x0a)
1286  E_Notify((char*)pgm_read_pointer(&genDesktopTitles0[usage - 1]), 0x80);
1287  else if (usage > 0x2f && usage < 0x49)
1288  E_Notify((char*)pgm_read_pointer(&genDesktopTitles1[usage - 0x30]), 0x80);
1289  else if (usage > 0x7f && usage < 0x94)
1290  E_Notify((char*)pgm_read_pointer(&genDesktopTitles2[usage - 0x80]), 0x80);
1291  else if (usage > 0x9f && usage < 0xa9)
1292  E_Notify((char*)pgm_read_pointer(&genDesktopTitles3[usage - 0xa0]), 0x80);
1293  else if (usage > 0xaf && usage < 0xb8)
1294  E_Notify((char*)pgm_read_pointer(&genDesktopTitles4[usage - 0xb0]), 0x80);
1295  else
1297 }
1298 
1300  E_Notify(pstrSpace, 0x80);
1301 
1302  if (usage > 0x00 && usage < 0x0d)
1303  E_Notify((char*)pgm_read_pointer(&simuTitles0[usage - 1]), 0x80);
1304  else if (usage > 0x1f && usage < 0x26)
1305  E_Notify((char*)pgm_read_pointer(&simuTitles1[usage - 0x20]), 0x80);
1306  else if (usage > 0xaf && usage < 0xd1)
1307  E_Notify((char*)pgm_read_pointer(&simuTitles2[usage - 0xb0]), 0x80);
1308  else
1310 }
1311 
1313  E_Notify(pstrSpace, 0x80);
1314 
1315  if (usage > 0x00 && usage < 0x0b)
1316  E_Notify((char*)pgm_read_pointer(&vrTitles0[usage - 1]), 0x80);
1317  else if (usage > 0x1f && usage < 0x22)
1318  E_Notify((char*)pgm_read_pointer(&vrTitles1[usage - 0x20]), 0x80);
1319  else
1321 }
1322 
1324  E_Notify(pstrSpace, 0x80);
1325 
1326  if (usage > 0x00 && usage < 0x05)
1327  E_Notify((char*)pgm_read_pointer(&sportsCtrlTitles0[usage - 1]), 0x80);
1328  else if (usage > 0x2f && usage < 0x3a)
1329  E_Notify((char*)pgm_read_pointer(&sportsCtrlTitles1[usage - 0x30]), 0x80);
1330  else if (usage > 0x4f && usage < 0x64)
1331  E_Notify((char*)pgm_read_pointer(&sportsCtrlTitles2[usage - 0x50]), 0x80);
1332  else
1334 }
1335 
1337  E_Notify(pstrSpace, 0x80);
1338 
1339  if (usage > 0x00 && usage < 0x04)
1340  E_Notify((char*)pgm_read_pointer(&gameTitles0[usage - 1]), 0x80);
1341  else if (usage > 0x1f && usage < 0x3a)
1342  E_Notify((char*)pgm_read_pointer(&gameTitles1[usage - 0x20]), 0x80);
1343  else
1345 }
1346 
1348  E_Notify(pstrSpace, 0x80);
1349 
1350  if (usage > 0x1f && usage < 0x27)
1351  E_Notify((char*)pgm_read_pointer(&genDevCtrlTitles[usage - 0x20]), 0x80);
1352  else
1354 }
1355 
1357  E_Notify(pstrSpace, 0x80);
1358 
1359  if (usage > 0x00 && usage < 0x4e)
1360  E_Notify((char*)pgm_read_pointer(&ledTitles[usage - 1]), 0x80);
1361  else
1363 }
1364 
1366  E_Notify(pstrSpace, 0x80);
1367 
1368  if (usage > 0x00 && usage < 0x08)
1369  E_Notify((char*)pgm_read_pointer(&telTitles0[usage - 1]), 0x80);
1370  else if (usage > 0x1f && usage < 0x32)
1371  E_Notify((char*)pgm_read_pointer(&telTitles1[usage - 0x1f]), 0x80);
1372  else if (usage > 0x4f && usage < 0x54)
1373  E_Notify((char*)pgm_read_pointer(&telTitles2[usage - 0x4f]), 0x80);
1374  else if (usage > 0x6f && usage < 0x75)
1375  E_Notify((char*)pgm_read_pointer(&telTitles3[usage - 0x6f]), 0x80);
1376  else if (usage > 0x8f && usage < 0x9f)
1377  E_Notify((char*)pgm_read_pointer(&telTitles4[usage - 0x8f]), 0x80);
1378  else if (usage > 0xaf && usage < 0xc0)
1379  E_Notify((char*)pgm_read_pointer(&telTitles5[usage - 0xaf]), 0x80);
1380  else
1382 }
1383 
1385  E_Notify(pstrSpace, 0x80);
1386 
1387  if (usage > 0x00 && usage < 0x07)
1388  E_Notify((char*)pgm_read_pointer(&consTitles0[usage - 1]), 0x80);
1389  else if (usage > 0x1f && usage < 0x23)
1390  E_Notify((char*)pgm_read_pointer(&consTitles1[usage - 0x1f]), 0x80);
1391  else if (usage > 0x2f && usage < 0x37)
1392  E_Notify((char*)pgm_read_pointer(&consTitles2[usage - 0x2f]), 0x80);
1393  else if (usage > 0x3f && usage < 0x49)
1394  E_Notify((char*)pgm_read_pointer(&consTitles3[usage - 0x3f]), 0x80);
1395  else if (usage > 0x5f && usage < 0x67)
1396  E_Notify((char*)pgm_read_pointer(&consTitles4[usage - 0x5f]), 0x80);
1397  else if (usage > 0x7f && usage < 0xa5)
1398  E_Notify((char*)pgm_read_pointer(&consTitles5[usage - 0x7f]), 0x80);
1399  else if (usage > 0xaf && usage < 0xcf)
1400  E_Notify((char*)pgm_read_pointer(&consTitles6[usage - 0xaf]), 0x80);
1401  else if (usage > 0xdf && usage < 0xeb)
1402  E_Notify((char*)pgm_read_pointer(&consTitles7[usage - 0xdf]), 0x80);
1403  else if (usage > 0xef && usage < 0xf6)
1404  E_Notify((char*)pgm_read_pointer(&consTitles8[usage - 0xef]), 0x80);
1405  else if (usage > 0xff && usage < 0x10e)
1406  E_Notify((char*)pgm_read_pointer(&consTitles9[usage - 0xff]), 0x80);
1407  else if (usage > 0x14f && usage < 0x156)
1408  E_Notify((char*)pgm_read_pointer(&consTitlesA[usage - 0x14f]), 0x80);
1409  else if (usage > 0x15f && usage < 0x16b)
1410  E_Notify((char*)pgm_read_pointer(&consTitlesB[usage - 0x15f]), 0x80);
1411  else if (usage > 0x16f && usage < 0x175)
1412  E_Notify((char*)pgm_read_pointer(&consTitlesC[usage - 0x16f]), 0x80);
1413  else if (usage > 0x17f && usage < 0x1c8)
1414  E_Notify((char*)pgm_read_pointer(&consTitlesD[usage - 0x17f]), 0x80);
1415  else if (usage > 0x1ff && usage < 0x29d)
1416  E_Notify((char*)pgm_read_pointer(&consTitlesE[usage - 0x1ff]), 0x80);
1417  else
1419 }
1420 
1422  E_Notify(pstrSpace, 0x80);
1423 
1424  if (usage > 0x00 && usage < 0x0e)
1425  E_Notify((char*)pgm_read_pointer(&digitTitles0[usage - 1]), 0x80);
1426  else if (usage > 0x1f && usage < 0x23)
1427  E_Notify((char*)pgm_read_pointer(&digitTitles1[usage - 0x1f]), 0x80);
1428  else if (usage > 0x2f && usage < 0x47)
1429  E_Notify((char*)pgm_read_pointer(&digitTitles2[usage - 0x2f]), 0x80);
1430  else
1432 }
1433 
1435  E_Notify(pstrSpace, 0x80);
1436 
1437  if (usage > 0x00 && usage < 0x03)
1438  E_Notify((char*)pgm_read_pointer(&aplphanumTitles0[usage - 1]), 0x80);
1439  else if (usage > 0x1f && usage < 0x4e)
1440  E_Notify((char*)pgm_read_pointer(&aplphanumTitles1[usage - 0x1f]), 0x80);
1441  else if (usage > 0x7f && usage < 0x96)
1442  E_Notify((char*)pgm_read_pointer(&digitTitles2[usage - 0x80]), 0x80);
1443  else
1445 }
1446 
1448  E_Notify(pstrSpace, 0x80);
1449 
1450  if (usage == 1)
1452  else if (usage > 0x1f && usage < 0x28)
1453  E_Notify((char*)pgm_read_pointer(&medInstrTitles0[usage - 0x1f]), 0x80);
1454  else if (usage > 0x3f && usage < 0x45)
1455  E_Notify((char*)pgm_read_pointer(&medInstrTitles1[usage - 0x40]), 0x80);
1456  else if (usage > 0x5f && usage < 0x62)
1457  E_Notify((char*)pgm_read_pointer(&medInstrTitles2[usage - 0x60]), 0x80);
1458  else if (usage == 0x70)
1460  else if (usage > 0x7f && usage < 0x8a)
1461  E_Notify((char*)pgm_read_pointer(&medInstrTitles3[usage - 0x80]), 0x80);
1462  else if (usage > 0x9f && usage < 0xa2)
1463  E_Notify((char*)pgm_read_pointer(&medInstrTitles4[usage - 0xa0]), 0x80);
1464  else
1466 }
1467 
1468 uint8_t ReportDescParser2::ParseItem(uint8_t **pp, uint16_t *pcntdn) {
1469  //uint8_t ret = enErrorSuccess;
1470 
1471  switch (itemParseState) {
1472  case 0:
1473  if (**pp == HID_LONG_ITEM_PREFIX)
1474  USBTRACE("\r\nLONG\r\n");
1475  else {
1476  uint8_t size = ((**pp) & DATA_SIZE_MASK);
1477  itemPrefix = (**pp);
1478  itemSize = 1 + ((size == DATA_SIZE_4) ? 4 : size);
1479  }
1480  (*pp)++;
1481  (*pcntdn)--;
1482  itemSize--;
1483  itemParseState = 1;
1484 
1485  if (!itemSize)
1486  break;
1487 
1488  if (!pcntdn)
1489  return enErrorIncomplete;
1490  case 1:
1493  itemParseState = 2;
1494  case 2:
1495  if (!valParser.Parse(pp, pcntdn))
1496  return enErrorIncomplete;
1497  itemParseState = 3;
1498  case 3:
1499  {
1500  uint8_t data = *((uint8_t*)varBuffer);
1501 
1502  switch (itemPrefix & (TYPE_MASK | TAG_MASK)) {
1503  case (TYPE_LOCAL | TAG_LOCAL_USAGE):
1504  if (pfUsage) {
1505  if (theBuffer.valueSize > 1)
1506  pfUsage(*((uint16_t*)varBuffer));
1507  else
1508  pfUsage(data);
1509  }
1510  break;
1512  rptSize = data;
1513  break;
1515  rptCount = data;
1516  break;
1518  rptId = data;
1519  break;
1520  case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
1521  useMin = data;
1522  break;
1523  case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
1524  useMax = data;
1525  break;
1527  SetUsagePage(data);
1528  break;
1529  case (TYPE_MAIN | TAG_MAIN_OUTPUT):
1530  case (TYPE_MAIN | TAG_MAIN_FEATURE):
1531  rptSize = 0;
1532  rptCount = 0;
1533  useMin = 0;
1534  useMax = 0;
1535  break;
1536  case (TYPE_MAIN | TAG_MAIN_INPUT):
1537  OnInputItem(data);
1538 
1539  totalSize += (uint16_t)rptSize * (uint16_t)rptCount;
1540 
1541  rptSize = 0;
1542  rptCount = 0;
1543  useMin = 0;
1544  useMax = 0;
1545  break;
1546  } // switch (**pp & (TYPE_MASK | TAG_MASK))
1547  }
1548  } // switch (itemParseState)
1549  itemParseState = 0;
1550  return enErrorSuccess;
1551 }
1552 
1553 void ReportDescParser2::OnInputItem(uint8_t itm) {
1554  uint8_t byte_offset = (totalSize >> 3); // calculate offset to the next unhandled byte i = (int)(totalCount / 8);
1555  uint32_t tmp = (byte_offset << 3);
1556  uint8_t bit_offset = totalSize - tmp; // number of bits in the current byte already handled
1557  uint8_t *p = pBuf + byte_offset; // current byte pointer
1558 
1559  if (bit_offset)
1560  *p >>= bit_offset;
1561 
1562  uint8_t usage = useMin;
1563 
1564  bool print_usemin_usemax = ((useMin < useMax) && ((itm & 3) == 2) && pfUsage) ? true : false;
1565 
1566  uint8_t bits_of_byte = 8;
1567 
1568  // for each field in field array defined by rptCount
1569  for (uint8_t field = 0; field < rptCount; field++, usage++) {
1570 
1571  union {
1572  uint8_t bResult[4];
1573  uint16_t wResult[2];
1574  uint32_t dwResult;
1575  } result;
1576 
1577  result.dwResult = 0;
1578  uint8_t mask = 0;
1579 
1580  if (print_usemin_usemax)
1581  pfUsage(usage);
1582 
1583  // bits_left - number of bits in the field(array of fields, depending on Report Count) left to process
1584  // bits_of_byte - number of bits in current byte left to process
1585  // bits_to_copy - number of bits to copy to result buffer
1586 
1587  // for each bit in a field
1588  for (uint8_t bits_left = rptSize, bits_to_copy = 0; bits_left;
1589  bits_left -= bits_to_copy) {
1590  bits_to_copy = (bits_left > bits_of_byte) ? bits_of_byte : bits_left;
1591 
1592  result.dwResult <<= bits_to_copy; // Result buffer is shifted by the number of bits to be copied into it
1593 
1594  uint8_t val = *p;
1595 
1596  val >>= (8 - bits_of_byte); // Shift by the number of bits already processed
1597 
1598  mask = 0;
1599 
1600  for (uint8_t j = bits_to_copy; j; j--) {
1601  mask <<= 1;
1602  mask |= 1;
1603  }
1604 
1605  result.bResult[0] = (result.bResult[0] | (val & mask));
1606 
1607  bits_of_byte -= bits_to_copy;
1608 
1609  if (bits_of_byte < 1) {
1610  bits_of_byte = 8;
1611  p++;
1612  }
1613  }
1614  PrintByteValue(result.dwResult);
1615  }
1616  E_Notify(PSTR("\r\n"), 0x80);
1617 }
1618 
1619 void UniversalReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) {
1620  ReportDescParser2 prs(len, buf);
1621 
1622  uint8_t ret = hid->GetReportDescr(0, &prs);
1623 
1624  if (ret)
1625  ErrorMessage<uint8_t > (PSTR("GetReportDescr-2"), ret);
1626 }
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:43
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:53
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:33
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:47
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:34
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:30
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:57
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:52
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:45
static const char *const gameTitles1[]
#define TAG_LOCAL_USAGE
Definition: hid.h:55
#define TAG_GLOBAL_REPORTID
Definition: hid.h:50
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:24
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:32
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
uint8_t GetReportDescr(uint8_t ep, USBReadParser *parser=NULL)
Definition: hid.cpp:5
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:25
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:42
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
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:39
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
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:46
const char pstrUsageMotion[]
Definition: hidusagestr.h:544
const char pstrUsageACNew[]
Definition: hidusagestr.h:642
const char pstrUsageError[]
Definition: hidusagestr.h:328
const char pstrUsageSendCalls[]
Definition: hidusagestr.h:307
#define TAG_LOCAL_USAGEMIN
Definition: hid.h:56
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:49
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:37
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:40
static const char *const consTitles0[]
const char pstrUsageMenuValueIncrease[]
Definition: hidusagestr.h:441
#define HID_LONG_ITEM_PREFIX
Definition: hid.h:104
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:23
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:51
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:44
const char pstrUsageMicrophoneEnable[]
Definition: hidusagestr.h:903
const char pstrUsageACBack[]
Definition: hidusagestr.h:661
#define TAG_GLOBAL_UNIT
Definition: hid.h:48
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:36
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:60
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:38
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