| ofs | hex dump | ascii |
|---|
| 0000 | 00 00 0f 81 00 00 ef dc 00 00 00 15 00 00 10 00 00 00 00 00 32 30 31 39 2e 33 2e 36 66 31 00 fe | ....................2019.3.6f1.. |
| 0020 | ff ff ff 01 02 00 00 00 0b 04 00 00 00 ff ff 66 9a 86 21 eb 14 35 98 39 dd 34 1d 51 0e c1 f3 42 | ...............f..!..5.9.4.Q...B |
| 0040 | 00 00 00 ed 00 00 00 02 00 00 00 00 00 00 00 37 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 | ...............7................ |
| 0060 | 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 | ................................ |
| 0080 | 00 00 00 00 00 00 00 01 00 01 00 0d 00 00 00 45 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 | ...............E................ |
| 00a0 | 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 | ...............#................ |
| 00c0 | 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 | ...............,................ |
| 00e0 | 00 00 00 00 00 00 00 01 00 01 00 35 00 00 00 61 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 | ...........5...a................ |
| 0100 | 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 | ...............#................ |
| 0120 | 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 | ...............,................ |
| 0140 | 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 | ...............r................ |
| 0160 | 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 | ...............#................ |
| 0180 | 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 | ...............,................ |
| 01a0 | 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 | ...........H.................... |
| 01c0 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 | ...........1...1............@... |
| 01e0 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 | ................................ |
| 0200 | 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 | ...........Q...j................ |
| 0220 | 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 4a 00 00 00 ff ff ff ff 0f 00 00 00 00 c0 00 00 00 | ...............J................ |
| 0240 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 10 00 00 00 00 80 00 00 00 | ...........1...1................ |
| 0260 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 11 00 00 00 00 00 00 00 00 | ................................ |
| 0280 | 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 12 00 00 00 00 80 00 00 00 | ...............j................ |
| 02a0 | 00 00 00 00 00 00 00 01 00 04 00 5c 00 00 00 9b 00 00 80 ff ff ff ff 13 00 00 00 00 80 00 00 00 | ...........\.................... |
| 02c0 | 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 72 00 00 00 ff ff ff ff 14 00 00 00 00 80 00 00 00 | ...........H...r................ |
| 02e0 | 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 15 00 00 00 01 40 00 00 00 | ...........1...1............@... |
| 0300 | 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 16 00 00 00 01 00 00 00 00 | ................................ |
| 0320 | 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 17 00 00 00 01 00 00 00 00 | ...........Q...j................ |
| 0340 | 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 77 00 00 00 ff ff ff ff 18 00 00 00 00 80 00 00 00 | ...........H...w................ |
| 0360 | 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 19 00 00 00 01 40 00 00 00 | ...........1...1............@... |
| 0380 | 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1a 00 00 00 01 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1b 00 00 00 01 00 00 00 00 | ...........Q...j................ |
| 03c0 | 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 80 00 00 00 ff ff ff ff 1c 00 00 00 00 80 00 00 00 | ...........H.................... |
| 03e0 | 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 1d 00 00 00 01 40 00 00 00 | ...........1...1............@... |
| 0400 | 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1e 00 00 00 01 00 00 00 00 | ................................ |
| 0420 | 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1f 00 00 00 01 00 00 00 00 | ...........Q...j................ |
| 0440 | 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 20 00 00 00 00 00 00 00 00 | ...........y.................... |
| 0460 | 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 21 00 00 00 01 00 80 00 00 | ...............#.......!........ |
| 0480 | 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 22 00 00 00 01 00 80 00 00 | ...............,......."........ |
| 04a0 | 00 00 00 00 00 00 00 01 00 01 00 11 03 00 80 85 00 00 00 ff ff ff ff 23 00 00 00 01 40 08 00 00 | .......................#....@... |
| 04c0 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 24 00 00 00 01 00 08 00 00 | ...........1...1.......$........ |
| 04e0 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 25 00 00 00 01 00 08 00 00 | .......................%........ |
| 0500 | 00 00 00 00 00 00 00 01 00 03 00 2e 03 00 80 6a 00 00 80 08 00 00 00 26 00 00 00 01 00 08 00 00 | ...............j.......&........ |
| 0520 | 00 00 00 00 00 00 00 01 00 01 00 d5 03 00 80 93 00 00 00 ff ff ff ff 27 00 00 00 00 80 00 00 00 | .......................'........ |
| 0540 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 28 00 00 00 00 c0 00 00 00 | ...........1...1.......(........ |
| 0560 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 29 00 00 00 00 00 00 00 00 | .......................)........ |
| 0580 | 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 2a 00 00 00 00 80 00 00 00 | ...............j.......*........ |
| 05a0 | 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b 00 00 80 ff ff ff ff 2b 00 00 00 00 80 00 00 00 | ...........H...........+........ |
| 05c0 | 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 00 00 80 ff ff ff ff 2c 00 00 00 01 40 00 00 00 | ...........1...1.......,....@... |
| 05e0 | 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b 03 00 80 04 00 00 00 2d 00 00 00 01 00 00 00 00 | .......................-........ |
| 0600 | 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a 00 00 80 01 00 00 00 2e 00 00 00 01 00 00 00 00 | ...........Q...j................ |
| 0620 | 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 2f 00 00 00 00 00 00 00 00 | ...........y.........../........ |
| 0640 | 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 30 00 00 00 01 00 80 00 00 | ...............#.......0........ |
| 0660 | 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 31 00 00 00 01 00 80 00 00 | ...............,.......1........ |
| 0680 | 00 00 00 00 00 00 00 01 00 01 00 20 03 00 80 a7 00 00 00 02 00 00 00 32 00 00 00 00 40 00 00 00 | .......................2....@... |
| 06a0 | 00 00 00 00 00 00 00 01 00 01 00 be 02 00 80 b6 00 00 00 0c 00 00 00 33 00 00 00 00 40 00 00 00 | .......................3....@... |
| 06c0 | 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 34 00 00 00 01 00 80 00 00 | ...............#.......4........ |
| 06e0 | 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 35 00 00 00 01 00 80 00 00 | ...............,.......5........ |
| 0700 | 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 bb 00 00 00 ff ff ff ff 36 00 00 00 01 80 00 00 00 | ...........H...........6........ |
| 0720 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 37 00 00 00 01 40 00 00 00 | ...........1...1.......7....@... |
| 0740 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 38 00 00 00 01 00 00 00 00 | .......................8........ |
| 0760 | 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 39 00 00 00 01 00 00 00 00 | ...........Q...j.......9........ |
| 0780 | 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 c6 00 00 00 ff ff ff ff 3a 00 00 00 01 80 00 00 00 | ...........H...........:........ |
| 07a0 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3b 00 00 00 01 40 00 00 00 | ...........1...1.......;....@... |
| 07c0 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 3c 00 00 00 01 00 00 00 00 | .......................<........ |
| 07e0 | 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 3d 00 00 00 01 00 00 00 00 | ...........Q...j.......=........ |
| 0800 | 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 d8 00 00 00 ff ff ff ff 3e 00 00 00 01 80 00 00 00 | ...........H...........>........ |
| 0820 | 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3f 00 00 00 01 40 00 00 00 | ...........1...1.......?....@... |
| 0840 | 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 40 00 00 00 01 00 00 00 00 | .......................@........ |
| 0860 | 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 41 00 00 00 01 00 00 00 00 | ...........Q...j.......A........ |
| 0880 | 00 00 00 00 00 00 00 4d 6f 6e 6f 49 6d 70 6f 72 74 65 72 00 50 50 74 72 3c 45 64 69 74 6f 72 45 | .......MonoImporter.PPtr<EditorE |
| 08a0 | 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 50 74 72 | xtension>.m_FileID.m_PathID.PPtr |
| 08c0 | 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 45 78 74 65 72 6e 61 6c 4f 62 6a 65 63 | <PrefabInstance>.m_ExternalObjec |
| 08e0 | 74 73 00 53 6f 75 72 63 65 41 73 73 65 74 49 64 65 6e 74 69 66 69 65 72 00 74 79 70 65 00 61 73 | ts.SourceAssetIdentifier.type.as |
| 0900 | 73 65 6d 62 6c 79 00 6e 61 6d 65 00 6d 5f 55 73 65 64 46 69 6c 65 49 44 73 00 6d 5f 44 65 66 61 | sembly.name.m_UsedFileIDs.m_Defa |
| 0920 | 75 6c 74 52 65 66 65 72 65 6e 63 65 73 00 65 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 69 63 6f | ultReferences.executionOrder.ico |
| 0940 | 6e 00 6d 5f 55 73 65 72 44 61 74 61 00 6d 5f 41 73 73 65 74 42 75 6e 64 6c 65 4e 61 6d 65 00 6d | n.m_UserData.m_AssetBundleName.m |
| 0960 | 5f 41 73 73 65 74 42 75 6e 64 6c 65 56 61 72 69 61 6e 74 00 00 00 00 00 73 00 00 00 00 ff ff a3 | _AssetBundleVariant.....s....... |
| 0980 | 47 f1 d7 dc 8f 5a 35 36 a0 3a 21 40 69 c1 4a 2a 00 00 00 81 00 00 00 05 00 00 00 15 01 00 80 37 | G....Z56.:!@i.J*...............7 |
| 09a0 | 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 | ................................ |
| 09c0 | 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 45 | ...............................E |
| 09e0 | 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 | ................................ |
| 0a00 | 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f | ................................ |
| 0a20 | 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 28 00 00 00 61 | ...........................(...a |
| 0a40 | 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 | ................................ |
| 0a60 | 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f | ................................ |
| 0a80 | 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 | ...............................r |
| 0aa0 | 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 | ................................ |
| 0ac0 | 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f | ................................ |
| 0ae0 | 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab | ...........................H.... |
| 0b00 | 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 | ...........................1...1 |
| 0b20 | 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b | ............@................... |
| 0b40 | 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a | ...........................Q...j |
| 0b60 | 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ea | ...........................H.... |
| 0b80 | 01 00 80 ff ff ff ff 0f 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 | ...........................1...1 |
| 0ba0 | 00 00 80 ff ff ff ff 10 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b | ............@................... |
| 0bc0 | 03 00 80 04 00 00 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a | ...........................Q...j |
| 0be0 | 00 00 80 01 00 00 00 12 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 3d | ...............................= |
| 0c00 | 00 00 00 ff ff ff ff 13 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 | ...........................1...1 |
| 0c20 | 00 00 80 ff ff ff ff 14 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b | ................................ |
| 0c40 | 03 00 80 04 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a | ...............................j |
| 0c60 | 00 00 80 ff ff ff ff 16 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b | ...........................H.... |
| 0c80 | 00 00 80 ff ff ff ff 17 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 | ...........................1...1 |
| 0ca0 | 00 00 80 ff ff ff ff 18 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b | ............@................... |
| 0cc0 | 03 00 80 04 00 00 00 19 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a | ...........................Q...j |
| 0ce0 | 00 00 80 01 00 00 00 1a 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a | ...........................y.... |
| 0d00 | 03 00 80 0c 00 00 00 1b 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 16 | ................................ |
| 0d20 | 00 00 00 04 00 00 00 1c 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 1f | ................................ |
| 0d40 | 00 00 00 08 00 00 00 1d 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 79 02 00 80 51 | ...........................y...Q |
| 0d60 | 00 00 00 0c 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 | ................................ |
| 0d80 | 00 00 00 04 00 00 00 1f 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f | ................................ |
| 0da0 | 00 00 00 08 00 00 00 20 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 de 00 00 80 58 | ...............................X |
| 0dc0 | 00 00 00 04 00 00 00 21 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 69 | .......!...................H...i |
| 0de0 | 00 00 00 ff ff ff ff 22 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 | ......."...................1...1 |
| 0e00 | 00 00 80 ff ff ff ff 23 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b | .......#....@................... |
| 0e20 | 03 00 80 04 00 00 00 24 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a | .......$...................Q...j |
| 0e40 | 00 00 80 01 00 00 00 25 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 75 | .......%...................H...u |
| 0e60 | 00 00 00 ff ff ff ff 26 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 | .......&...................1...1 |
| 0e80 | 00 00 80 ff ff ff ff 27 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b | .......'....@................... |
| 0ea0 | 03 00 80 04 00 00 00 28 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a | .......(...................Q...j |
| 0ec0 | 00 00 80 01 00 00 00 29 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 50 50 74 72 3c 45 64 69 74 | .......)...............PPtr<Edit |
| 0ee0 | 6f 72 45 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 | orExtension>.m_FileID.m_PathID.P |
| 0f00 | 50 74 72 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 44 65 66 61 75 6c 74 52 65 66 | Ptr<PrefabInstance>.m_DefaultRef |
| 0f20 | 65 72 65 6e 63 65 73 00 6d 5f 49 63 6f 6e 00 6d 5f 45 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 | erences.m_Icon.m_ExecutionOrder. |
| 0f40 | 6d 5f 43 6c 61 73 73 4e 61 6d 65 00 6d 5f 4e 61 6d 65 73 70 61 63 65 00 00 00 00 00 02 00 00 00 | m_ClassName.m_Namespace......... |
| 0f60 | 03 00 00 00 00 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 e0 79 af 00 00 00 00 00 60 00 00 00 | ............\........y......`... |
| 0f80 | 7c df 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |............................... |
| 0fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 79 af 00 00 00 00 00 00 00 00 00 | .....................y.......... |
| 1040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1080 | 00 00 00 00 00 00 00 00 03 00 00 00 48 49 44 00 09 df 00 00 75 73 69 6e 67 20 53 79 73 74 65 6d | ............HID.....using.System |
| 10a0 | 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43 6f 6c 6c 65 63 74 69 6f 6e 73 2e 47 65 6e 65 | ;..using.System.Collections.Gene |
| 10c0 | 72 69 63 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 47 6c 6f 62 61 6c 69 7a 61 74 69 6f 6e | ric;..using.System.Globalization |
| 10e0 | 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 4c 69 6e 71 3b 0d 0a 75 73 69 6e 67 20 53 79 73 | ;..using.System.Linq;..using.Sys |
| 1100 | 74 65 6d 2e 54 65 78 74 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 | tem.Text;..using.UnityEngine.Inp |
| 1120 | 75 74 53 79 73 74 65 6d 2e 4c 6f 77 4c 65 76 65 6c 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 | utSystem.LowLevel;..using.UnityE |
| 1140 | 6e 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 55 74 69 6c 69 74 69 65 73 3b 0d 0a 75 73 | ngine.InputSystem.Utilities;..us |
| 1160 | 69 6e 67 20 55 6e 69 74 79 2e 43 6f 6c 6c 65 63 74 69 6f 6e 73 2e 4c 6f 77 4c 65 76 65 6c 2e 55 | ing.Unity.Collections.LowLevel.U |
| 1180 | 6e 73 61 66 65 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 53 | nsafe;..using.UnityEngine.InputS |
| 11a0 | 79 73 74 65 6d 2e 4c 61 79 6f 75 74 73 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e | ystem.Layouts;..using.UnityEngin |
| 11c0 | 65 2e 53 63 72 69 70 74 69 6e 67 3b 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 74 68 65 72 | e.Scripting;....////REVIEW:.ther |
| 11e0 | 65 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 62 65 20 6c 6f 74 73 20 6f 66 20 63 61 73 65 73 | e.will.probably.be.lots.of.cases |
| 1200 | 20 77 68 65 72 65 20 74 68 65 20 48 49 44 20 64 65 76 69 63 65 20 63 72 65 61 74 69 6f 6e 20 70 | .where.the.HID.device.creation.p |
| 1220 | 72 6f 63 65 73 73 20 6a 75 73 74 20 6e 65 65 64 73 20 61 20 6c 69 74 74 6c 65 20 74 77 65 61 6b | rocess.just.needs.a.little.tweak |
| 1240 | 69 6e 67 3b 20 77 65 20 73 68 6f 75 6c 64 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 20 20 68 61 76 65 | ing;.we.should..////........have |
| 1260 | 20 62 65 74 74 65 72 20 6d 65 63 68 61 6e 69 73 6d 20 74 6f 20 64 6f 20 74 68 61 74 20 77 69 74 | .better.mechanism.to.do.that.wit |
| 1280 | 68 6f 75 74 20 72 65 71 75 69 72 69 6e 67 20 74 6f 20 72 65 70 6c 61 63 65 20 74 68 65 20 65 6e | hout.requiring.to.replace.the.en |
| 12a0 | 74 69 72 65 20 70 72 6f 63 65 73 73 20 77 68 6f 6c 65 73 61 6c 65 0d 0a 0d 0a 2f 2f 2f 2f 54 4f | tire.process.wholesale....////TO |
| 12c0 | 44 4f 3a 20 65 78 70 6f 73 65 20 74 68 65 20 6c 61 79 6f 75 74 20 62 75 69 6c 64 65 72 20 73 6f | DO:.expose.the.layout.builder.so |
| 12e0 | 20 74 68 61 74 20 6f 74 68 65 72 20 6c 61 79 6f 75 74 20 62 75 69 6c 64 65 72 73 20 63 61 6e 20 | .that.other.layout.builders.can. |
| 1300 | 75 73 65 20 69 74 20 66 6f 72 20 74 68 65 69 72 20 6f 77 6e 20 70 75 72 70 6f 73 65 73 0d 0a 0d | use.it.for.their.own.purposes... |
| 1320 | 0a 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 68 6f 77 20 61 72 65 20 77 65 20 64 65 61 6c 69 6e 67 20 | .////REVIEW:.how.are.we.dealing. |
| 1340 | 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 20 64 69 66 66 65 72 65 6e 74 20 69 6e 70 75 74 20 72 65 | with.multiple.different.input.re |
| 1360 | 70 6f 72 74 73 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 64 65 76 69 63 65 3f 0d 0a 0d 0a 2f 2f 2f | ports.on.the.same.device?..../// |
| 1380 | 2f 52 45 56 49 45 57 3a 20 6d 6f 76 65 20 74 68 65 20 65 6e 75 6d 73 20 61 6e 64 20 73 74 72 75 | /REVIEW:.move.the.enums.and.stru |
| 13a0 | 63 74 73 20 6f 75 74 20 6f 66 20 68 65 72 65 20 61 6e 64 20 69 6e 74 6f 20 55 6e 69 74 79 45 6e | cts.out.of.here.and.into.UnityEn |
| 13c0 | 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 48 49 44 3f 20 4f 72 20 72 65 6d 6f 76 65 20 | gine.InputSystem.HID?.Or.remove. |
| 13e0 | 74 68 65 20 22 48 49 44 22 20 6e 61 6d 65 20 70 72 65 66 69 78 65 73 20 66 72 6f 6d 20 74 68 65 | the."HID".name.prefixes.from.the |
| 1400 | 6d 3f 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 61 64 64 20 62 6c 61 63 6b 6c 69 73 74 20 66 6f | m?....////TODO:.add.blacklist.fo |
| 1420 | 72 20 64 65 76 69 63 65 73 20 77 65 20 72 65 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 | r.devices.we.really.don't.want.t |
| 1440 | 6f 20 75 73 65 20 28 6c 69 6b 65 20 61 70 70 6c 65 27 73 20 69 6e 74 65 72 6e 61 6c 20 74 72 61 | o.use.(like.apple's.internal.tra |
| 1460 | 63 6b 70 61 64 29 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 61 64 64 20 61 20 77 61 79 20 74 6f | ckpad)....////TODO:.add.a.way.to |
| 1480 | 20 6d 61 72 6b 20 63 65 72 74 61 69 6e 20 6c 61 79 6f 75 74 73 20 28 73 75 63 68 20 61 73 20 48 | .mark.certain.layouts.(such.as.H |
| 14a0 | 49 44 20 6c 61 79 6f 75 74 73 29 20 61 73 20 66 61 6c 6c 62 61 63 6b 73 3b 20 69 64 65 61 6c 6c | ID.layouts).as.fallbacks;.ideall |
| 14c0 | 79 2c 20 61 66 66 65 63 74 20 74 68 65 20 6c 61 79 6f 75 74 20 6d 61 74 63 68 69 6e 67 20 73 63 | y,.affect.the.layout.matching.sc |
| 14e0 | 6f 72 65 0d 0a 0d 0a 23 70 72 61 67 6d 61 20 77 61 72 6e 69 6e 67 20 64 69 73 61 62 6c 65 20 43 | ore....#pragma.warning.disable.C |
| 1500 | 53 30 36 34 39 2c 20 43 53 30 32 31 39 0d 0a 6e 61 6d 65 73 70 61 63 65 20 55 6e 69 74 79 45 6e | S0649,.CS0219..namespace.UnityEn |
| 1520 | 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 48 49 44 0d 0a 7b 0d 0a 20 20 20 20 2f 2f 2f | gine.InputSystem.HID..{....../// |
| 1540 | 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 2f 2f 2f 20 41 20 67 65 6e 65 72 69 63 20 48 49 | .<summary>......///.A.generic.HI |
| 1560 | 44 20 69 6e 70 75 74 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 | D.input.device.......///.</summa |
| 1580 | 72 79 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 2f 2f 2f 20 | ry>......///.<remarks>......///. |
| 15a0 | 54 68 69 73 20 63 6c 61 73 73 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 62 65 73 74 20 65 66 66 | This.class.represents.a.best.eff |
| 15c0 | 6f 72 74 20 74 6f 20 6d 69 72 72 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 65 74 75 70 20 | ort.to.mirror.the.control.setup. |
| 15e0 | 6f 66 20 61 20 48 49 44 0d 0a 20 20 20 20 2f 2f 2f 20 64 69 73 63 6f 76 65 72 65 64 20 69 6e 20 | of.a.HID......///.discovered.in. |
| 1600 | 74 68 65 20 73 79 73 74 65 6d 2e 20 49 74 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 20 61 73 20 61 | the.system..It.is.used.only.as.a |
| 1620 | 20 66 61 6c 6c 62 61 63 6b 20 77 68 65 72 65 20 77 65 20 63 61 6e 6e 6f 74 0d 0a 20 20 20 20 2f | .fallback.where.we.cannot....../ |
| 1640 | 2f 2f 20 6d 61 74 63 68 20 74 68 65 20 64 65 76 69 63 65 20 74 6f 20 61 20 73 70 65 63 69 66 69 | //.match.the.device.to.a.specifi |
| 1660 | 63 20 70 72 6f 64 75 63 74 20 77 65 20 6b 6e 6f 77 20 6f 66 2e 20 57 68 65 72 65 76 65 72 20 70 | c.product.we.know.of..Wherever.p |
| 1680 | 6f 73 73 69 62 6c 65 20 77 65 0d 0a 20 20 20 20 2f 2f 2f 20 63 6f 6e 73 74 72 75 63 74 20 6d 6f | ossible.we......///.construct.mo |
| 16a0 | 72 65 20 73 70 65 63 69 66 69 63 20 64 65 76 69 63 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f | re.specific.device.representatio |
| 16c0 | 6e 73 20 73 75 63 68 20 61 73 20 47 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 72 | ns.such.as.Gamepad.......///.</r |
| 16e0 | 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 5b 53 79 73 74 65 6d 2e 44 69 61 67 6e 6f 73 74 69 63 73 | emarks>......[System.Diagnostics |
| 1700 | 2e 43 6f 64 65 41 6e 61 6c 79 73 69 73 2e 53 75 70 70 72 65 73 73 4d 65 73 73 61 67 65 28 22 4d | .CodeAnalysis.SuppressMessage("M |
| 1720 | 69 63 72 6f 73 6f 66 74 2e 4e 61 6d 69 6e 67 22 2c 20 22 43 41 31 37 32 34 3a 54 79 70 65 4e 61 | icrosoft.Naming",."CA1724:TypeNa |
| 1740 | 6d 65 73 53 68 6f 75 6c 64 4e 6f 74 4d 61 74 63 68 4e 61 6d 65 73 70 61 63 65 73 22 29 5d 0d 0a | mesShouldNotMatchNamespaces")].. |
| 1760 | 20 20 20 20 5b 50 72 65 73 65 72 76 65 5d 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 63 6c 61 73 73 | ....[Preserve]......public.class |
| 1780 | 20 48 49 44 20 3a 20 49 6e 70 75 74 44 65 76 69 63 65 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 | .HID.:.InputDevice......{....... |
| 17a0 | 20 20 20 69 6e 74 65 72 6e 61 6c 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 6b 48 49 44 49 6e 74 | ...internal.const.string.kHIDInt |
| 17c0 | 65 72 66 61 63 65 20 3d 20 22 48 49 44 22 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 | erface.=."HID";..........interna |
| 17e0 | 6c 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 6b 48 49 44 4e 61 6d 65 73 70 61 63 65 20 3d 20 22 | l.const.string.kHIDNamespace.=." |
| 1800 | 48 49 44 22 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a | HID";............///.<summary>.. |
| 1820 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6d 6d 61 6e 64 20 63 6f 64 65 20 66 6f 72 20 71 75 65 | ........///.Command.code.for.que |
| 1840 | 72 79 69 6e 67 20 74 68 65 20 48 49 44 20 72 65 70 6f 72 74 20 64 65 73 63 72 69 70 74 6f 72 20 | rying.the.HID.report.descriptor. |
| 1860 | 66 72 6f 6d 20 61 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 | from.a.device...........///.</su |
| 1880 | 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 | mmary>..........///.<seealso.cre |
| 18a0 | 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 2e 45 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 7b 54 43 | f="InputDevice.ExecuteCommand{TC |
| 18c0 | 6f 6d 6d 61 6e 64 7d 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 | ommand}"/>..........public.stati |
| 18e0 | 63 20 46 6f 75 72 43 43 20 51 75 65 72 79 48 49 44 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f | c.FourCC.QueryHIDReportDescripto |
| 1900 | 72 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 54 79 70 65 20 7b 20 67 65 74 20 7b 20 72 65 74 75 72 | rDeviceCommandType.{.get.{.retur |
| 1920 | 6e 20 6e 65 77 20 46 6f 75 72 43 43 28 27 48 27 2c 20 27 49 27 2c 20 27 44 27 2c 20 27 44 27 29 | n.new.FourCC('H',.'I',.'D',.'D') |
| 1940 | 3b 20 7d 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a | ;.}.}............///.<summary>.. |
| 1960 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6d 6d 61 6e 64 20 63 6f 64 65 20 66 6f 72 20 71 75 65 | ........///.Command.code.for.que |
| 1980 | 72 79 69 6e 67 20 74 68 65 20 48 49 44 20 72 65 70 6f 72 74 20 64 65 73 63 72 69 70 74 6f 72 20 | rying.the.HID.report.descriptor. |
| 19a0 | 73 69 7a 65 20 69 6e 20 62 79 74 65 73 20 66 72 6f 6d 20 61 20 64 65 76 69 63 65 2e 0d 0a 20 20 | size.in.bytes.from.a.device..... |
| 19c0 | 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f | ......///.</summary>..........// |
| 19e0 | 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 2e 45 78 65 | /.<seealso.cref="InputDevice.Exe |
| 1a00 | 63 75 74 65 43 6f 6d 6d 61 6e 64 7b 54 43 6f 6d 6d 61 6e 64 7d 22 2f 3e 0d 0a 20 20 20 20 20 20 | cuteCommand{TCommand}"/>........ |
| 1a20 | 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 46 6f 75 72 43 43 20 51 75 65 72 79 48 49 44 52 | ..public.static.FourCC.QueryHIDR |
| 1a40 | 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 53 69 7a 65 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 | eportDescriptorSizeDeviceCommand |
| 1a60 | 54 79 70 65 20 7b 20 67 65 74 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 46 6f 75 72 43 43 28 27 | Type.{.get.{.return.new.FourCC(' |
| 1a80 | 48 27 2c 20 27 49 27 2c 20 27 44 27 2c 20 27 53 27 29 3b 20 7d 20 7d 0d 0a 0d 0a 20 20 20 20 20 | H',.'I',.'D',.'S');.}.}......... |
| 1aa0 | 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 46 6f 75 72 43 43 20 51 75 65 72 79 48 49 44 | ...public.static.FourCC.QueryHID |
| 1ac0 | 50 61 72 73 65 64 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 44 65 76 69 63 65 43 6f 6d 6d | ParsedReportDescriptorDeviceComm |
| 1ae0 | 61 6e 64 54 79 70 65 20 7b 20 67 65 74 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 46 6f 75 72 43 | andType.{.get.{.return.new.FourC |
| 1b00 | 43 28 27 48 27 2c 20 27 49 27 2c 20 27 44 27 2c 20 27 50 27 29 3b 20 7d 20 7d 0d 0a 0d 0a 20 20 | C('H',.'I',.'D',.'P');.}.}...... |
| 1b20 | 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f | ......///.<summary>........../// |
| 1b40 | 20 54 68 65 20 48 49 44 20 64 65 76 69 63 65 20 64 65 73 63 72 69 70 74 6f 72 20 61 73 20 72 65 | .The.HID.device.descriptor.as.re |
| 1b60 | 63 65 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 73 79 73 74 65 6d 2e 0d 0a 20 20 20 20 20 20 20 | ceived.from.the.system.......... |
| 1b80 | 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 | .///.</summary>..........public. |
| 1ba0 | 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 68 69 64 44 65 73 63 72 69 70 74 6f | HIDDeviceDescriptor.hidDescripto |
| 1bc0 | 72 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 0d 0a 20 | r..........{..............get... |
| 1be0 | 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | ...........{..................if |
| 1c00 | 20 28 21 6d 5f 48 61 76 65 50 61 72 73 65 64 48 49 44 44 65 73 63 72 69 70 74 6f 72 29 0d 0a 20 | .(!m_HaveParsedHIDDescriptor)... |
| 1c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...............{................ |
| 1c40 | 20 20 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 | ......if.(!string.IsNullOrEmpty( |
| 1c60 | 64 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 61 62 69 6c 69 74 69 65 73 29 29 0d 0a 20 20 20 20 | description.capabilities))...... |
| 1c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 48 49 44 44 65 73 63 72 69 70 | ....................m_HIDDescrip |
| 1ca0 | 74 6f 72 20 3d 20 4a 73 6f 6e 55 74 69 6c 69 74 79 2e 46 72 6f 6d 4a 73 6f 6e 3c 48 49 44 44 65 | tor.=.JsonUtility.FromJson<HIDDe |
| 1cc0 | 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 3e 28 64 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 61 | viceDescriptor>(description.capa |
| 1ce0 | 62 69 6c 69 74 69 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bilities);...................... |
| 1d00 | 6d 5f 48 61 76 65 50 61 72 73 65 64 48 49 44 44 65 73 63 72 69 70 74 6f 72 20 3d 20 74 72 75 65 | m_HaveParsedHIDDescriptor.=.true |
| 1d20 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 | ;..................}............ |
| 1d40 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 48 49 44 44 65 73 63 72 69 70 74 6f 72 3b 0d 0a 20 | ......return.m_HIDDescriptor;... |
| 1d60 | 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 | ...........}..........}......... |
| 1d80 | 20 20 20 70 72 69 76 61 74 65 20 62 6f 6f 6c 20 6d 5f 48 61 76 65 50 61 72 73 65 64 48 49 44 44 | ...private.bool.m_HaveParsedHIDD |
| 1da0 | 65 73 63 72 69 70 74 6f 72 3b 0d 0a 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 48 49 44 44 | escriptor;..........private.HIDD |
| 1dc0 | 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 6d 5f 48 49 44 44 65 73 63 72 69 70 74 6f 72 3b | eviceDescriptor.m_HIDDescriptor; |
| 1de0 | 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 77 6f 72 6b 68 | ............//.This.is.the.workh |
| 1e00 | 6f 72 73 65 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75 74 20 66 61 6c 6c 62 61 63 6b 20 6f | orse.for.figuring.out.fallback.o |
| 1e20 | 70 74 69 6f 6e 73 20 66 6f 72 20 48 49 44 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 | ptions.for.HIDs.attached.to.the. |
| 1e40 | 73 79 73 74 65 6d 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 74 68 65 20 73 79 73 74 65 | system...........//.If.the.syste |
| 1e60 | 6d 20 63 61 6e 6e 6f 74 20 66 69 6e 64 20 61 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 6c 61 | m.cannot.find.a.more.specific.la |
| 1e80 | 79 6f 75 74 20 66 6f 72 20 61 20 67 69 76 65 6e 20 48 49 44 2c 20 74 68 69 73 20 6d 65 74 68 6f | yout.for.a.given.HID,.this.metho |
| 1ea0 | 64 20 77 69 6c 6c 20 74 72 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 6f 20 70 72 6f 64 75 63 | d.will.try..........//.to.produc |
| 1ec0 | 65 20 61 20 6c 61 79 6f 75 74 20 62 75 69 6c 64 65 72 20 6f 6e 20 74 68 65 20 66 6c 79 20 62 61 | e.a.layout.builder.on.the.fly.ba |
| 1ee0 | 73 65 64 20 6f 6e 20 74 68 65 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 20 72 65 63 65 69 76 | sed.on.the.HID.descriptor.receiv |
| 1f00 | 65 64 20 66 72 6f 6d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 64 65 76 69 63 65 2e 0d | ed.from..........//.the.device.. |
| 1f20 | 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 | .........internal.static.string. |
| 1f40 | 4f 6e 46 69 6e 64 4c 61 79 6f 75 74 46 6f 72 44 65 76 69 63 65 28 72 65 66 20 49 6e 70 75 74 44 | OnFindLayoutForDevice(ref.InputD |
| 1f60 | 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 20 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 73 74 | eviceDescription.description,.st |
| 1f80 | 72 69 6e 67 20 6d 61 74 63 68 65 64 4c 61 79 6f 75 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ring.matchedLayout,............. |
| 1fa0 | 20 49 6e 70 75 74 44 65 76 69 63 65 45 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 44 65 6c 65 67 61 | .InputDeviceExecuteCommandDelega |
| 1fc0 | 74 65 20 65 78 65 63 75 74 65 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 29 0d 0a 20 20 20 20 20 20 | te.executeDeviceCommand)........ |
| 1fe0 | 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 74 68 65 20 73 79 73 74 65 | ..{..............//.If.the.syste |
| 2000 | 6d 20 66 6f 75 6e 64 20 61 20 6d 61 74 63 68 69 6e 67 20 6c 61 79 6f 75 74 2c 20 74 68 65 72 65 | m.found.a.matching.layout,.there |
| 2020 | 27 73 20 6e 6f 74 68 69 6e 67 20 66 6f 72 20 75 73 20 74 6f 20 64 6f 2e 0d 0a 20 20 20 20 20 20 | 's.nothing.for.us.to.do......... |
| 2040 | 20 20 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 | ......if.(!string.IsNullOrEmpty( |
| 2060 | 6d 61 74 63 68 65 64 4c 61 79 6f 75 74 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | matchedLayout))................. |
| 2080 | 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 | .return.null;................//. |
| 20a0 | 49 66 20 74 68 65 20 64 65 76 69 63 65 20 69 73 6e 27 74 20 61 20 48 49 44 2c 20 77 65 27 72 65 | If.the.device.isn't.a.HID,.we're |
| 20c0 | 20 6e 6f 74 20 69 6e 74 65 72 65 73 74 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | .not.interested...............if |
| 20e0 | 20 28 64 65 73 63 72 69 70 74 69 6f 6e 2e 69 6e 74 65 72 66 61 63 65 4e 61 6d 65 20 21 3d 20 6b | .(description.interfaceName.!=.k |
| 2100 | 48 49 44 49 6e 74 65 72 66 61 63 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | HIDInterface)..................r |
| 2120 | 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 | eturn.null;................//.Re |
| 2140 | 61 64 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ad.HID.descriptor............... |
| 2160 | 76 61 72 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 3d 20 52 65 61 64 48 49 | var.hidDeviceDescriptor.=.ReadHI |
| 2180 | 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 72 65 66 20 64 65 73 63 72 69 70 74 69 6f | DDeviceDescriptor(ref.descriptio |
| 21a0 | 6e 2c 20 65 78 65 63 75 74 65 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 29 3b 0d 0a 0d 0a 20 20 20 | n,.executeDeviceCommand);....... |
| 21c0 | 20 20 20 20 20 20 20 20 20 69 66 20 28 21 48 49 44 53 75 70 70 6f 72 74 2e 73 75 70 70 6f 72 74 | .........if.(!HIDSupport.support |
| 21e0 | 65 64 48 49 44 55 73 61 67 65 73 2e 43 6f 6e 74 61 69 6e 73 28 6e 65 77 20 48 49 44 53 75 70 70 | edHIDUsages.Contains(new.HIDSupp |
| 2200 | 6f 72 74 2e 48 49 44 50 61 67 65 55 73 61 67 65 28 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 | ort.HIDPageUsage(hidDeviceDescri |
| 2220 | 70 74 6f 72 2e 75 73 61 67 65 50 61 67 65 2c 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 | ptor.usagePage,.hidDeviceDescrip |
| 2240 | 74 6f 72 2e 75 73 61 67 65 29 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | tor.usage)))..................re |
| 2260 | 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 65 74 | turn.null;................//.Det |
| 2280 | 65 72 6d 69 6e 65 20 69 66 20 74 68 65 72 65 27 73 20 61 6e 79 20 75 73 61 62 6c 65 20 65 6c 65 | ermine.if.there's.any.usable.ele |
| 22a0 | 6d 65 6e 74 73 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 | ments.on.the.device............. |
| 22c0 | 20 20 76 61 72 20 68 61 73 55 73 61 62 6c 65 45 6c 65 6d 65 6e 74 73 20 3d 20 66 61 6c 73 65 3b | ..var.hasUsableElements.=.false; |
| 22e0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 69 64 44 65 76 69 63 65 44 65 73 63 72 | ..............if.(hidDeviceDescr |
| 2300 | 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 | iptor.elements.!=.null)......... |
| 2320 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 | .....{..................foreach. |
| 2340 | 28 76 61 72 20 65 6c 65 6d 65 6e 74 20 69 6e 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 | (var.element.in.hidDeviceDescrip |
| 2360 | 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | tor.elements)..................{ |
| 2380 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6c 65 6d 65 6e | ......................if.(elemen |
| 23a0 | 74 2e 49 73 55 73 61 62 6c 65 45 6c 65 6d 65 6e 74 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | t.IsUsableElement())............ |
| 23c0 | 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........{..................... |
| 23e0 | 20 20 20 20 20 68 61 73 55 73 61 62 6c 65 45 6c 65 6d 65 6e 74 73 20 3d 20 74 72 75 65 3b 0d 0a | .....hasUsableElements.=.true;.. |
| 2400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a | ........................break;.. |
| 2420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 | ....................}........... |
| 2440 | 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 | .......}..............}......... |
| 2460 | 20 20 20 20 20 20 20 2f 2f 20 49 66 20 6e 6f 74 2c 20 74 68 65 72 65 27 73 20 6e 6f 74 68 69 6e | .......//.If.not,.there's.nothin |
| 2480 | 67 20 77 65 20 63 61 6e 20 64 6f 20 77 69 74 68 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 | g.we.can.do.with.the.device..... |
| 24a0 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 68 61 73 55 73 61 62 6c 65 45 6c 65 6d 65 6e 74 73 | ..........if.(!hasUsableElements |
| 24c0 | 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d | )..................return.null;. |
| 24e0 | 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 54 4f 44 4f 3a 20 77 65 20 73 68 6f 75 | ...............////TODO:.we.shou |
| 2500 | 6c 64 20 62 65 20 61 62 6c 65 20 74 6f 20 64 69 66 66 65 72 65 6e 74 69 61 74 65 20 61 20 48 49 | ld.be.able.to.differentiate.a.HI |
| 2520 | 44 20 6a 6f 79 73 74 69 63 6b 20 66 72 6f 6d 20 6f 74 68 65 72 20 6a 6f 79 73 74 69 63 6b 73 20 | D.joystick.from.other.joysticks. |
| 2540 | 69 6e 20 62 69 6e 64 69 6e 67 73 20 61 6c 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f | in.bindings.alone............../ |
| 2560 | 2f 20 44 65 74 65 72 6d 69 6e 65 20 62 61 73 65 20 6c 61 79 6f 75 74 2e 0d 0a 20 20 20 20 20 20 | /.Determine.base.layout......... |
| 2580 | 20 20 20 20 20 20 76 61 72 20 62 61 73 65 54 79 70 65 20 3d 20 74 79 70 65 6f 66 28 48 49 44 29 | ......var.baseType.=.typeof(HID) |
| 25a0 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 62 61 73 65 4c 61 79 6f 75 74 20 3d 20 | ;..............var.baseLayout.=. |
| 25c0 | 22 48 49 44 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 69 64 44 65 76 69 63 | "HID";..............if.(hidDevic |
| 25e0 | 65 44 65 73 63 72 69 70 74 6f 72 2e 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 61 | eDescriptor.usagePage.==.UsagePa |
| 2600 | 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ge.GenericDesktop).............. |
| 2620 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 69 64 44 65 76 69 63 65 | {..................if.(hidDevice |
| 2640 | 44 65 73 63 72 69 70 74 6f 72 2e 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 | Descriptor.usage.==.(int)Generic |
| 2660 | 44 65 73 6b 74 6f 70 2e 4a 6f 79 73 74 69 63 6b 20 7c 7c 20 68 69 64 44 65 76 69 63 65 44 65 73 | Desktop.Joystick.||.hidDeviceDes |
| 2680 | 63 72 69 70 74 6f 72 2e 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 | criptor.usage.==.(int)GenericDes |
| 26a0 | 6b 74 6f 70 2e 47 61 6d 65 70 61 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | ktop.Gamepad)..................{ |
| 26c0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 73 65 4c 61 79 6f 75 74 | ......................baseLayout |
| 26e0 | 20 3d 20 22 4a 6f 79 73 74 69 63 6b 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .=."Joystick";.................. |
| 2700 | 20 20 20 20 62 61 73 65 54 79 70 65 20 3d 20 74 79 70 65 6f 66 28 4a 6f 79 73 74 69 63 6b 29 3b | ....baseType.=.typeof(Joystick); |
| 2720 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ..................}............. |
| 2740 | 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 20 48 49 44 20 6d 61 79 20 69 | .}................//.A.HID.may.i |
| 2760 | 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 48 49 44 20 69 6e 74 65 72 66 61 63 65 20 61 72 62 69 74 | mplement.the.HID.interface.arbit |
| 2780 | 72 61 72 79 20 6d 61 6e 79 20 74 69 6d 65 73 2c 20 65 61 63 68 20 74 69 6d 65 20 77 69 74 68 20 | rary.many.times,.each.time.with. |
| 27a0 | 61 20 64 69 66 66 65 72 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 75 73 61 67 | a.different..............//.usag |
| 27c0 | 65 20 70 61 67 65 20 2b 20 75 73 61 67 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2e 20 49 6e 20 61 | e.page.+.usage.combination..In.a |
| 27e0 | 20 4f 53 2c 20 74 68 69 73 20 77 69 6c 6c 20 74 79 70 69 63 61 6c 6c 79 20 63 6f 6d 65 20 6f 75 | .OS,.this.will.typically.come.ou |
| 2800 | 74 20 61 73 20 6d 75 6c 74 69 70 6c 65 20 73 65 70 61 72 61 74 65 0d 0a 20 20 20 20 20 20 20 20 | t.as.multiple.separate.......... |
| 2820 | 20 20 20 20 2f 2f 20 64 65 76 69 63 65 73 2e 20 54 68 75 73 2c 20 74 6f 20 6d 61 6b 65 20 6c 61 | ....//.devices..Thus,.to.make.la |
| 2840 | 79 6f 75 74 20 6e 61 6d 65 73 20 75 6e 69 71 75 65 2c 20 77 65 20 68 61 76 65 20 74 6f 20 74 61 | yout.names.unique,.we.have.to.ta |
| 2860 | 6b 65 20 75 73 61 67 65 73 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 20 57 68 61 74 20 77 65 20 | ke.usages.into.account..What.we. |
| 2880 | 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 73 20 77 65 20 74 61 67 20 74 68 65 | do..............//.is.we.tag.the |
| 28a0 | 20 75 73 61 67 65 20 6e 61 6d 65 20 6f 6e 74 6f 20 74 68 65 20 6c 61 79 6f 75 74 20 6e 61 6d 65 | .usage.name.onto.the.layout.name |
| 28c0 | 20 2a 65 78 63 65 70 74 2a 20 69 66 20 69 74 27 73 20 61 20 6a 6f 79 73 74 69 63 6b 20 6f 72 20 | .*except*.if.it's.a.joystick.or. |
| 28e0 | 67 61 6d 65 70 61 64 2e 20 54 68 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 67 69 | gamepad..This..............//.gi |
| 2900 | 76 65 73 20 75 73 20 6e 69 63 65 72 20 6e 61 6d 65 73 20 66 6f 72 20 6a 6f 79 73 74 69 63 6b 73 | ves.us.nicer.names.for.joysticks |
| 2920 | 20 77 68 69 6c 65 20 73 74 69 6c 6c 20 64 69 73 61 6d 62 69 67 75 61 74 69 6e 67 20 6f 74 68 65 | .while.still.disambiguating.othe |
| 2940 | 72 20 64 65 76 69 63 65 73 20 63 6f 72 72 65 63 74 6c 79 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 | r.devices.correctly............. |
| 2960 | 20 20 76 61 72 20 75 73 61 67 65 4e 61 6d 65 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 | ..var.usageName.=."";........... |
| 2980 | 20 20 20 69 66 20 28 62 61 73 65 4c 61 79 6f 75 74 20 21 3d 20 22 4a 6f 79 73 74 69 63 6b 22 29 | ...if.(baseLayout.!=."Joystick") |
| 29a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............{................. |
| 29c0 | 20 75 73 61 67 65 4e 61 6d 65 20 3d 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 | .usageName.=.hidDeviceDescriptor |
| 29e0 | 2e 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 | .usagePage.==.UsagePage.GenericD |
| 2a00 | 65 73 6b 74 6f 70 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 20 24 22 | esktop......................?.$" |
| 2a20 | 20 7b 28 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 29 20 68 69 64 44 65 76 69 63 65 44 65 73 63 | .{(GenericDesktop).hidDeviceDesc |
| 2a40 | 72 69 70 74 6f 72 2e 75 73 61 67 65 7d 22 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | riptor.usage}".................. |
| 2a60 | 20 20 20 20 3a 20 24 22 20 7b 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 75 73 | ....:.$".{hidDeviceDescriptor.us |
| 2a80 | 61 67 65 50 61 67 65 7d 2d 7b 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 75 73 | agePage}-{hidDeviceDescriptor.us |
| 2aa0 | 61 67 65 7d 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 | age}";..............}........... |
| 2ac0 | 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 74 68 65 73 65 20 6c 61 79 6f 75 74 20 6e 61 | .....////REVIEW:.these.layout.na |
| 2ae0 | 6d 65 73 20 61 72 65 20 69 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 62 69 6e 64 20 74 6f 3b 20 63 | mes.are.impossible.to.bind.to;.c |
| 2b00 | 6f 6d 65 20 75 70 20 77 69 74 68 20 61 20 62 65 74 74 65 72 20 77 61 79 0d 0a 20 20 20 20 20 20 | ome.up.with.a.better.way........ |
| 2b20 | 20 20 20 20 20 20 2f 2f 2f 2f 54 4f 44 4f 3a 20 6d 61 74 63 68 20 48 49 44 20 6c 61 79 6f 75 74 | ......////TODO:.match.HID.layout |
| 2b40 | 73 20 62 79 20 76 65 6e 64 6f 72 20 61 6e 64 20 70 72 6f 64 75 63 74 20 49 44 0d 0a 20 20 20 20 | s.by.vendor.and.product.ID...... |
| 2b60 | 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 74 68 69 73 20 70 72 6f 62 61 62 6c | ........////REVIEW:.this.probabl |
| 2b80 | 79 20 77 6f 72 6b 73 20 66 69 6e 65 20 66 6f 72 20 6d 6f 73 74 20 70 72 6f 64 75 63 74 73 20 6f | y.works.fine.for.most.products.o |
| 2ba0 | 75 74 20 74 68 65 72 65 20 62 75 74 20 49 27 6d 20 6e 6f 74 20 73 75 72 65 20 69 74 20 77 6f 72 | ut.there.but.I'm.not.sure.it.wor |
| 2bc0 | 6b 73 20 72 65 6c 69 61 62 6c 79 20 66 6f 72 20 61 6c 6c 20 63 61 73 65 73 0d 0a 20 20 20 20 20 | ks.reliably.for.all.cases....... |
| 2be0 | 20 20 20 20 20 20 20 2f 2f 20 43 6f 6d 65 20 75 70 20 77 69 74 68 20 61 20 75 6e 69 71 75 65 20 | .......//.Come.up.with.a.unique. |
| 2c00 | 74 65 6d 70 6c 61 74 65 20 6e 61 6d 65 2e 20 48 49 44 73 20 61 72 65 20 72 65 71 75 69 72 65 64 | template.name..HIDs.are.required |
| 2c20 | 20 74 6f 20 68 61 76 65 20 70 72 6f 64 75 63 74 20 61 6e 64 20 76 65 6e 64 6f 72 20 49 44 73 2e | .to.have.product.and.vendor.IDs. |
| 2c40 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 65 20 67 6f 20 77 69 74 68 20 74 68 65 20 | ..............//.We.go.with.the. |
| 2c60 | 73 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 73 20 69 66 20 77 65 20 68 61 76 65 20 74 68 65 6d 20 | string.versions.if.we.have.them. |
| 2c80 | 61 6e 64 20 77 69 74 68 20 74 68 65 20 6e 75 6d 65 72 69 63 20 76 65 72 73 69 6f 6e 73 20 69 66 | and.with.the.numeric.versions.if |
| 2ca0 | 20 77 65 20 64 6f 6e 27 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 6c | .we.don't...............string.l |
| 2cc0 | 61 79 6f 75 74 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 | ayoutName;..............var.devi |
| 2ce0 | 63 65 4d 61 74 63 68 65 72 20 3d 20 49 6e 70 75 74 44 65 76 69 63 65 4d 61 74 63 68 65 72 2e 46 | ceMatcher.=.InputDeviceMatcher.F |
| 2d00 | 72 6f 6d 44 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 28 64 65 73 63 72 69 70 74 69 6f 6e | romDeviceDescription(description |
| 2d20 | 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 | );..............if.(!string.IsNu |
| 2d40 | 6c 6c 4f 72 45 6d 70 74 79 28 64 65 73 63 72 69 70 74 69 6f 6e 2e 70 72 6f 64 75 63 74 29 20 26 | llOrEmpty(description.product).& |
| 2d60 | 26 20 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 64 65 73 63 72 69 70 74 | &.!string.IsNullOrEmpty(descript |
| 2d80 | 69 6f 6e 2e 6d 61 6e 75 66 61 63 74 75 72 65 72 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ion.manufacturer)).............. |
| 2da0 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 4e 61 6d 65 20 3d 20 | {..................layoutName.=. |
| 2dc0 | 24 22 7b 6b 48 49 44 4e 61 6d 65 73 70 61 63 65 7d 3a 3a 7b 64 65 73 63 72 69 70 74 69 6f 6e 2e | $"{kHIDNamespace}::{description. |
| 2de0 | 6d 61 6e 75 66 61 63 74 75 72 65 72 7d 20 7b 64 65 73 63 72 69 70 74 69 6f 6e 2e 70 72 6f 64 75 | manufacturer}.{description.produ |
| 2e00 | 63 74 7d 7b 75 73 61 67 65 4e 61 6d 65 7d 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d | ct}{usageName}";..............}. |
| 2e20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 | .............else.if.(!string.Is |
| 2e40 | 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 64 65 73 63 72 69 70 74 69 6f 6e 2e 70 72 6f 64 75 63 74 29 | NullOrEmpty(description.product) |
| 2e60 | 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )..............{................ |
| 2e80 | 20 20 6c 61 79 6f 75 74 4e 61 6d 65 20 3d 20 24 22 7b 6b 48 49 44 4e 61 6d 65 73 70 61 63 65 7d | ..layoutName.=.$"{kHIDNamespace} |
| 2ea0 | 3a 3a 7b 64 65 73 63 72 69 70 74 69 6f 6e 2e 70 72 6f 64 75 63 74 7d 7b 75 73 61 67 65 4e 61 6d | ::{description.product}{usageNam |
| 2ec0 | 65 7d 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | e}";..............}............. |
| 2ee0 | 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 | .else..............{............ |
| 2f00 | 20 20 20 20 20 20 2f 2f 20 53 61 6e 69 74 79 20 63 68 65 63 6b 20 74 6f 20 6d 61 6b 65 20 73 75 | ......//.Sanity.check.to.make.su |
| 2f20 | 72 65 20 77 65 20 72 65 61 6c 6c 79 20 68 61 76 65 20 74 68 65 20 64 61 74 61 20 77 65 20 65 78 | re.we.really.have.the.data.we.ex |
| 2f40 | 70 65 63 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 69 64 44 65 | pect...................if.(hidDe |
| 2f60 | 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 76 65 6e 64 6f 72 49 64 20 3d 3d 20 30 29 0d 0a 20 | viceDescriptor.vendorId.==.0)... |
| 2f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d | ...................return.null;. |
| 2fa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 4e 61 6d 65 20 3d 0d 0a 20 | .................layoutName.=... |
| 2fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 7b 6b 48 49 44 4e 61 6d 65 73 70 | ...................$"{kHIDNamesp |
| 2fe0 | 61 63 65 7d 3a 3a 7b 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 76 65 6e 64 6f | ace}::{hidDeviceDescriptor.vendo |
| 3000 | 72 49 64 3a 58 7d 2d 7b 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 70 72 6f 64 | rId:X}-{hidDeviceDescriptor.prod |
| 3020 | 75 63 74 49 64 3a 58 7d 7b 75 73 61 67 65 4e 61 6d 65 7d 22 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 | uctId:X}{usageName}";........... |
| 3040 | 20 20 20 20 20 20 20 20 20 64 65 76 69 63 65 4d 61 74 63 68 65 72 20 3d 20 64 65 76 69 63 65 4d | .........deviceMatcher.=.deviceM |
| 3060 | 61 74 63 68 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 | atcher.......................Wit |
| 3080 | 68 43 61 70 61 62 69 6c 69 74 79 28 22 70 72 6f 64 75 63 74 49 64 22 2c 20 68 69 64 44 65 76 69 | hCapability("productId",.hidDevi |
| 30a0 | 63 65 44 65 73 63 72 69 70 74 6f 72 2e 70 72 6f 64 75 63 74 49 64 29 0d 0a 20 20 20 20 20 20 20 | ceDescriptor.productId)......... |
| 30c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 43 61 70 61 62 69 6c 69 74 79 28 22 76 65 | ..............WithCapability("ve |
| 30e0 | 6e 64 6f 72 49 64 22 2c 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 76 65 6e | ndorId",.hidDeviceDescriptor.ven |
| 3100 | 64 6f 72 49 64 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 | dorId);..............}.......... |
| 3120 | 20 20 20 20 20 20 2f 2f 20 41 6c 73 6f 20 6d 61 74 63 68 20 62 79 20 75 73 61 67 65 2e 20 53 65 | ......//.Also.match.by.usage..Se |
| 3140 | 65 20 63 6f 6d 6d 65 6e 74 20 61 62 6f 76 65 20 61 62 6f 75 74 20 6d 75 6c 74 69 70 6c 65 20 48 | e.comment.above.about.multiple.H |
| 3160 | 49 44 20 69 6e 74 65 72 66 61 63 65 73 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 64 65 76 69 63 65 | ID.interfaces.on.the.same.device |
| 3180 | 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 76 69 63 65 4d 61 74 63 68 65 72 20 3d 20 64 | ...............deviceMatcher.=.d |
| 31a0 | 65 76 69 63 65 4d 61 74 63 68 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 | eviceMatcher...................W |
| 31c0 | 69 74 68 43 61 70 61 62 69 6c 69 74 79 28 22 75 73 61 67 65 22 2c 20 68 69 64 44 65 76 69 63 65 | ithCapability("usage",.hidDevice |
| 31e0 | 44 65 73 63 72 69 70 74 6f 72 2e 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | Descriptor.usage)............... |
| 3200 | 20 20 20 2e 57 69 74 68 43 61 70 61 62 69 6c 69 74 79 28 22 75 73 61 67 65 50 61 67 65 22 2c 20 | ....WithCapability("usagePage",. |
| 3220 | 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 75 73 61 67 65 50 61 67 65 29 3b 0d | hidDeviceDescriptor.usagePage);. |
| 3240 | 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 74 65 72 20 6c 61 79 6f 75 | ...............//.Register.layou |
| 3260 | 74 20 62 75 69 6c 64 65 72 20 74 68 61 74 20 77 69 6c 6c 20 74 75 72 6e 20 74 68 65 20 48 49 44 | t.builder.that.will.turn.the.HID |
| 3280 | 20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 74 6f 20 61 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .descriptor.into.an............. |
| 32a0 | 20 2f 2f 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 20 69 6e 73 74 61 6e 63 65 2e | .//.InputControlLayout.instance. |
| 32c0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 61 79 6f 75 74 20 3d 20 6e 65 77 20 48 | ..............var.layout.=.new.H |
| 32e0 | 49 44 4c 61 79 6f 75 74 42 75 69 6c 64 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | IDLayoutBuilder..............{.. |
| 3300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 4e 61 6d 65 20 3d 20 64 65 | ................displayName.=.de |
| 3320 | 73 63 72 69 70 74 69 6f 6e 2e 70 72 6f 64 75 63 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | scription.product,.............. |
| 3340 | 20 20 20 20 68 69 64 44 65 73 63 72 69 70 74 6f 72 20 3d 20 68 69 64 44 65 76 69 63 65 44 65 73 | ....hidDescriptor.=.hidDeviceDes |
| 3360 | 63 72 69 70 74 6f 72 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 | criptor,..................parent |
| 3380 | 4c 61 79 6f 75 74 20 3d 20 62 61 73 65 4c 61 79 6f 75 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | Layout.=.baseLayout,............ |
| 33a0 | 20 20 20 20 20 20 64 65 76 69 63 65 54 79 70 65 20 3d 20 62 61 73 65 54 79 70 65 20 3f 3f 20 74 | ......deviceType.=.baseType.??.t |
| 33c0 | 79 70 65 6f 66 28 48 49 44 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 | ypeof(HID)..............};...... |
| 33e0 | 20 20 20 20 20 20 20 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 52 65 67 69 73 74 65 72 4c 61 79 6f | ........InputSystem.RegisterLayo |
| 3400 | 75 74 42 75 69 6c 64 65 72 28 28 29 20 3d 3e 20 6c 61 79 6f 75 74 2e 42 75 69 6c 64 28 29 2c 0d | utBuilder(().=>.layout.Build(),. |
| 3420 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 4e 61 6d 65 2c 20 62 61 73 | .................layoutName,.bas |
| 3440 | 65 4c 61 79 6f 75 74 2c 20 64 65 76 69 63 65 4d 61 74 63 68 65 72 29 3b 0d 0a 0d 0a 20 20 20 20 | eLayout,.deviceMatcher);........ |
| 3460 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c 61 79 6f 75 74 4e 61 6d 65 3b 0d 0a 20 20 20 20 | ........return.layoutName;...... |
| 3480 | 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 | ....}............internal.static |
| 34a0 | 20 75 6e 73 61 66 65 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 52 65 61 64 | .unsafe.HIDDeviceDescriptor.Read |
| 34c0 | 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 72 65 66 20 49 6e 70 75 74 44 65 76 | HIDDeviceDescriptor(ref.InputDev |
| 34e0 | 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 20 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e | iceDescription.deviceDescription |
| 3500 | 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 44 65 76 69 63 65 45 78 65 63 75 74 | ,..............InputDeviceExecut |
| 3520 | 65 43 6f 6d 6d 61 6e 64 44 65 6c 65 67 61 74 65 20 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 44 | eCommandDelegate.executeCommandD |
| 3540 | 65 6c 65 67 61 74 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | elegate)..........{............. |
| 3560 | 20 69 66 20 28 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 2e 69 6e 74 65 72 66 61 63 65 | .if.(deviceDescription.interface |
| 3580 | 4e 61 6d 65 20 21 3d 20 6b 48 49 44 49 6e 74 65 72 66 61 63 65 29 0d 0a 20 20 20 20 20 20 20 20 | Name.!=.kHIDInterface).......... |
| 35a0 | 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 | ........throw.new.ArgumentExcept |
| 35c0 | 69 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 44 65 76 69 | ion(......................$"Devi |
| 35e0 | 63 65 20 27 7b 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 7d 27 20 69 73 20 6e 6f 74 20 | ce.'{deviceDescription}'.is.not. |
| 3600 | 61 20 48 49 44 22 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 65 65 20 69 | a.HID");................//.See.i |
| 3620 | 66 20 77 65 20 68 61 76 65 20 74 6f 20 72 65 71 75 65 73 74 20 61 20 48 49 44 20 64 65 73 63 72 | f.we.have.to.request.a.HID.descr |
| 3640 | 69 70 74 6f 72 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 | iptor.from.the.device........... |
| 3660 | 20 20 20 20 2f 2f 20 57 65 20 73 75 70 70 6f 72 74 20 68 61 76 69 6e 67 20 74 68 65 20 64 65 73 | ....//.We.support.having.the.des |
| 3680 | 63 72 69 70 74 6f 72 20 64 69 72 65 63 74 6c 79 20 61 73 20 61 20 4a 53 4f 4e 20 73 74 72 69 6e | criptor.directly.as.a.JSON.strin |
| 36a0 | 67 20 69 6e 20 74 68 65 20 60 63 61 70 61 62 69 6c 69 74 69 65 73 60 0d 0a 20 20 20 20 20 20 20 | g.in.the.`capabilities`......... |
| 36c0 | 20 20 20 20 20 2f 2f 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 64 65 76 69 63 65 20 64 65 73 63 | .....//.field.of.the.device.desc |
| 36e0 | 72 69 70 74 69 6f 6e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 65 65 64 54 6f | ription...............var.needTo |
| 3700 | 52 65 71 75 65 73 74 44 65 73 63 72 69 70 74 6f 72 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 | RequestDescriptor.=.true;....... |
| 3720 | 20 20 20 20 20 20 20 76 61 72 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 3d | .......var.hidDeviceDescriptor.= |
| 3740 | 20 6e 65 77 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0d 0a 20 20 20 | .new.HIDDeviceDescriptor();..... |
| 3760 | 20 20 20 20 20 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 | .........if.(!string.IsNullOrEmp |
| 3780 | 74 79 28 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 61 62 69 6c 69 74 69 65 | ty(deviceDescription.capabilitie |
| 37a0 | 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s))..............{.............. |
| 37c0 | 20 20 20 20 74 72 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | ....try..................{...... |
| 37e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 | ................hidDeviceDescrip |
| 3800 | 74 6f 72 20 3d 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 46 72 6f 6d 4a 73 | tor.=.HIDDeviceDescriptor.FromJs |
| 3820 | 6f 6e 28 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 61 62 69 6c 69 74 69 65 | on(deviceDescription.capabilitie |
| 3840 | 73 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 | s);........................//.If |
| 3860 | 20 74 68 65 72 65 27 73 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 64 65 73 63 72 69 70 | .there's.elements.in.the.descrip |
| 3880 | 74 6f 72 2c 20 77 65 27 72 65 20 67 6f 6f 64 20 77 69 74 68 20 74 68 65 20 64 65 73 63 72 69 70 | tor,.we're.good.with.the.descrip |
| 38a0 | 74 6f 72 2e 20 49 66 20 74 68 65 72 65 20 61 72 65 6e 27 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 | tor..If.there.aren't,........... |
| 38c0 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 67 6f 20 61 6e 64 20 61 73 6b 20 74 68 65 20 | ...........//.we.go.and.ask.the. |
| 38e0 | 64 65 76 69 63 65 20 66 6f 72 20 61 20 66 75 6c 6c 20 64 65 73 63 72 69 70 74 6f 72 2e 0d 0a 20 | device.for.a.full.descriptor.... |
| 3900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 69 64 44 65 76 69 63 65 | ...................if.(hidDevice |
| 3920 | 44 65 73 63 72 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 20 21 3d 20 6e 75 6c 6c 20 26 26 20 68 | Descriptor.elements.!=.null.&&.h |
| 3940 | 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 2e 4c 65 6e 67 | idDeviceDescriptor.elements.Leng |
| 3960 | 74 68 20 3e 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | th.>.0)......................... |
| 3980 | 20 6e 65 65 64 54 6f 52 65 71 75 65 73 74 44 65 73 63 72 69 70 74 6f 72 20 3d 20 66 61 6c 73 65 | .needToRequestDescriptor.=.false |
| 39a0 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 | ;..................}............ |
| 39c0 | 20 20 20 20 20 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 20 65 78 63 65 70 74 69 6f 6e | ......catch.(Exception.exception |
| 39e0 | 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 | )..................{............ |
| 3a00 | 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e 4c 6f 67 45 72 72 6f 72 28 24 22 43 6f 75 6c 64 | ..........Debug.LogError($"Could |
| 3a20 | 20 6e 6f 74 20 70 61 72 73 65 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 20 6f 66 20 64 65 76 | .not.parse.HID.descriptor.of.dev |
| 3a40 | 69 63 65 20 27 7b 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 7d 27 22 29 3b 0d 0a 20 20 | ice.'{deviceDescription}'");.... |
| 3a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e 4c 6f 67 45 78 63 65 70 | ..................Debug.LogExcep |
| 3a80 | 74 69 6f 6e 28 65 78 63 65 70 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tion(exception);................ |
| 3aa0 | 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..}..............}.............. |
| 3ac0 | 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 77 65 20 2a 63 6f 75 6c 64 2a 20 73 77 69 74 63 68 20 | ..////REVIEW:.we.*could*.switch. |
| 3ae0 | 74 6f 20 61 20 73 69 6e 67 6c 65 20 70 61 74 68 20 68 65 72 65 20 74 68 61 74 20 73 75 70 70 6f | to.a.single.path.here.that.suppo |
| 3b00 | 72 74 73 20 2a 6f 6e 6c 79 2a 20 70 61 72 73 65 64 20 64 65 73 63 72 69 70 74 6f 72 73 20 62 75 | rts.*only*.parsed.descriptors.bu |
| 3b20 | 74 20 69 74 27 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 20 20 20 20 20 20 20 20 | t.it'd..............////........ |
| 3b40 | 6d 65 61 6e 20 68 61 76 69 6e 67 20 74 6f 20 73 77 69 74 63 68 20 2a 65 76 65 72 79 2a 20 70 6c | mean.having.to.switch.*every*.pl |
| 3b60 | 61 74 66 6f 72 6d 20 73 75 70 70 6f 72 74 69 6e 67 20 48 49 44 20 74 6f 20 74 68 65 20 68 61 63 | atform.supporting.HID.to.the.hac |
| 3b80 | 6b 20 77 65 20 63 75 72 72 65 6e 74 6c 79 20 68 61 76 65 20 74 6f 20 64 6f 0d 0a 20 20 20 20 20 | k.we.currently.have.to.do....... |
| 3ba0 | 20 20 20 20 20 20 20 2f 2f 2f 2f 20 20 20 20 20 20 20 20 6f 6e 20 57 69 6e 64 6f 77 73 0d 0a 0d | .......////........on.Windows... |
| 3bc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 71 75 65 73 74 20 64 65 73 63 72 69 70 74 | .............//.Request.descript |
| 3be0 | 6f 72 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 | or,.if.necessary...............i |
| 3c00 | 66 20 28 6e 65 65 64 54 6f 52 65 71 75 65 73 74 44 65 73 63 72 69 70 74 6f 72 29 0d 0a 20 20 20 | f.(needToRequestDescriptor)..... |
| 3c20 | 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 | .........{..................//.T |
| 3c40 | 72 79 20 74 6f 20 67 65 74 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 48 49 44 20 64 65 | ry.to.get.the.size.of.the.HID.de |
| 3c60 | 73 63 72 69 70 74 6f 72 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 | scriptor.from.the.device........ |
| 3c80 | 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f 72 43 | ...........var.sizeOfDescriptorC |
| 3ca0 | 6f 6d 6d 61 6e 64 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 28 | ommand.=.new.InputDeviceCommand( |
| 3cc0 | 51 75 65 72 79 48 49 44 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 53 69 7a 65 44 65 76 69 | QueryHIDReportDescriptorSizeDevi |
| 3ce0 | 63 65 43 6f 6d 6d 61 6e 64 54 79 70 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ceCommandType);................. |
| 3d00 | 20 76 61 72 20 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f 72 49 6e 42 79 74 65 73 20 3d 20 65 | .var.sizeOfDescriptorInBytes.=.e |
| 3d20 | 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 44 65 6c 65 67 61 74 65 28 72 65 66 20 73 69 7a 65 4f 66 | xecuteCommandDelegate(ref.sizeOf |
| 3d40 | 44 65 73 63 72 69 70 74 6f 72 43 6f 6d 6d 61 6e 64 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | DescriptorCommand);............. |
| 3d60 | 20 20 20 20 20 69 66 20 28 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f 72 49 6e 42 79 74 65 73 | .....if.(sizeOfDescriptorInBytes |
| 3d80 | 20 3e 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | .>.0)..................{........ |
| 3da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 77 20 74 72 79 20 74 6f 20 66 65 74 63 | ..............//.Now.try.to.fetc |
| 3dc0 | 68 20 74 68 65 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 2e 0d 0a 20 20 20 20 20 20 20 20 20 | h.the.HID.descriptor............ |
| 3de0 | 20 20 20 20 20 20 20 20 20 20 20 75 73 69 6e 67 20 28 76 61 72 20 62 75 66 66 65 72 20 3d 0d 0a | ...........using.(var.buffer.=.. |
| 3e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 | ...............................I |
| 3e20 | 6e 70 75 74 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 2e 41 6c 6c 6f 63 61 74 65 4e 61 74 69 76 65 | nputDeviceCommand.AllocateNative |
| 3e40 | 28 51 75 65 72 79 48 49 44 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 44 65 76 69 63 65 43 | (QueryHIDReportDescriptorDeviceC |
| 3e60 | 6f 6d 6d 61 6e 64 54 79 70 65 2c 20 28 69 6e 74 29 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f | ommandType,.(int)sizeOfDescripto |
| 3e80 | 72 49 6e 42 79 74 65 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rInBytes))...................... |
| 3ea0 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 | {..........................var.c |
| 3ec0 | 6f 6d 6d 61 6e 64 50 74 72 20 3d 20 28 49 6e 70 75 74 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 2a | ommandPtr.=.(InputDeviceCommand* |
| 3ee0 | 29 62 75 66 66 65 72 2e 47 65 74 55 6e 73 61 66 65 50 74 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 | )buffer.GetUnsafePtr();......... |
| 3f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 78 65 63 75 74 65 43 6f 6d 6d | .................if.(executeComm |
| 3f20 | 61 6e 64 44 65 6c 65 67 61 74 65 28 72 65 66 20 2a 63 6f 6d 6d 61 6e 64 50 74 72 29 20 21 3d 20 | andDelegate(ref.*commandPtr).!=. |
| 3f40 | 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f 72 49 6e 42 79 74 65 73 29 0d 0a 20 20 20 20 20 20 | sizeOfDescriptorInBytes)........ |
| 3f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 | ......................return.new |
| 3f80 | 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 | .HIDDeviceDescriptor();......... |
| 3fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 72 79 20 74 6f 20 70 61 72 | ...................//.Try.to.par |
| 3fc0 | 73 65 20 74 68 65 20 48 49 44 20 72 65 70 6f 72 74 20 64 65 73 63 72 69 70 74 6f 72 2e 0d 0a 20 | se.the.HID.report.descriptor.... |
| 3fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 48 49 44 50 | .......................if.(!HIDP |
| 4000 | 61 72 73 65 72 2e 50 61 72 73 65 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 28 28 62 79 74 | arser.ParseReportDescriptor((byt |
| 4020 | 65 2a 29 63 6f 6d 6d 61 6e 64 50 74 72 2d 3e 70 61 79 6c 6f 61 64 50 74 72 2c 20 28 69 6e 74 29 | e*)commandPtr->payloadPtr,.(int) |
| 4040 | 73 69 7a 65 4f 66 44 65 73 63 72 69 70 74 6f 72 49 6e 42 79 74 65 73 2c 20 72 65 66 20 68 69 64 | sizeOfDescriptorInBytes,.ref.hid |
| 4060 | 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | DeviceDescriptor)).............. |
| 4080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 48 49 44 44 65 | ................return.new.HIDDe |
| 40a0 | 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | viceDescriptor();............... |
| 40c0 | 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......}........................ |
| 40e0 | 2f 2f 20 55 70 64 61 74 65 20 74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 6f 6e 20 74 68 65 20 | //.Update.the.descriptor.on.the. |
| 4100 | 64 65 76 69 63 65 20 77 69 74 68 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 65 20 67 | device.with.the.information.we.g |
| 4120 | 6f 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 76 69 63 65 44 | ot.......................deviceD |
| 4140 | 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 61 62 69 6c 69 74 69 65 73 20 3d 20 68 69 64 44 65 76 | escription.capabilities.=.hidDev |
| 4160 | 69 63 65 44 65 73 63 72 69 70 74 6f 72 2e 54 6f 4a 73 6f 6e 28 29 3b 0d 0a 20 20 20 20 20 20 20 | iceDescriptor.ToJson();......... |
| 4180 | 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 | .........}..................else |
| 41a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ..................{............. |
| 41c0 | 20 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 20 64 65 76 69 63 65 20 6d 61 79 20 6e 6f 74 20 73 | .........//.The.device.may.not.s |
| 41e0 | 75 70 70 6f 72 74 20 62 69 6e 61 72 79 20 64 65 73 63 72 69 70 74 6f 72 73 20 62 75 74 20 6d 61 | upport.binary.descriptors.but.ma |
| 4200 | 79 20 73 75 70 70 6f 72 74 20 70 61 72 73 65 64 20 64 65 73 63 72 69 70 74 6f 72 73 20 73 6f 0d | y.support.parsed.descriptors.so. |
| 4220 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 72 79 20 74 68 65 20 | .....................//.try.the. |
| 4240 | 49 4f 43 54 4c 20 66 6f 72 20 70 61 72 73 65 64 20 64 65 73 63 72 69 70 74 6f 72 73 20 6e 65 78 | IOCTL.for.parsed.descriptors.nex |
| 4260 | 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 0d 0a 20 20 20 20 | t.......................//...... |
| 4280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 70 61 74 68 20 65 78 69 | ................//.This.path.exi |
| 42a0 | 73 74 73 20 70 72 65 74 74 79 20 6d 75 63 68 20 6f 6e 6c 79 20 66 6f 72 20 74 68 65 20 73 61 6b | sts.pretty.much.only.for.the.sak |
| 42c0 | 65 20 6f 66 20 57 69 6e 64 6f 77 73 20 77 68 65 72 65 20 69 74 20 69 73 20 6e 6f 74 20 70 6f 73 | e.of.Windows.where.it.is.not.pos |
| 42e0 | 73 69 62 6c 65 20 74 6f 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sible.to.get.................... |
| 4300 | 20 20 2f 2f 20 75 6e 70 61 72 73 65 64 2f 62 69 6e 61 72 79 20 64 65 73 63 72 69 70 74 6f 72 73 | ..//.unparsed/binary.descriptors |
| 4320 | 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 20 28 61 6e 64 20 77 68 65 72 65 20 67 65 74 74 | .from.the.device.(and.where.gett |
| 4340 | 69 6e 67 20 65 6c 65 6d 65 6e 74 20 6f 66 66 73 65 74 73 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 | ing.element.offsets.is.only.poss |
| 4360 | 69 62 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 69 74 | ible......................//.wit |
| 4380 | 68 20 73 6f 6d 65 20 64 69 72 74 79 20 68 61 63 6b 73 20 77 65 27 72 65 20 70 65 72 66 6f 72 6d | h.some.dirty.hacks.we're.perform |
| 43a0 | 69 6e 67 20 69 6e 20 74 68 65 20 6e 61 74 69 76 65 20 72 75 6e 74 69 6d 65 29 2e 0d 0a 0d 0a 20 | ing.in.the.native.runtime)...... |
| 43c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 20 6b 4d 61 | ...................const.int.kMa |
| 43e0 | 78 44 65 73 63 72 69 70 74 6f 72 42 75 66 66 65 72 53 69 7a 65 20 3d 20 32 20 2a 20 31 30 32 34 | xDescriptorBufferSize.=.2.*.1024 |
| 4400 | 20 2a 20 31 30 32 34 3b 20 2f 2f 2f 2f 54 4f 44 4f 3a 20 73 77 69 74 63 68 20 74 6f 20 6c 61 72 | .*.1024;.////TODO:.switch.to.lar |
| 4420 | 67 65 72 20 62 75 66 66 65 72 20 62 61 73 65 64 20 6f 6e 20 72 65 74 75 72 6e 20 63 6f 64 65 20 | ger.buffer.based.on.return.code. |
| 4440 | 69 66 20 72 65 71 75 65 73 74 20 66 61 69 6c 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.request.fails................ |
| 4460 | 20 20 20 20 20 20 75 73 69 6e 67 20 28 76 61 72 20 62 75 66 66 65 72 20 3d 0d 0a 20 20 20 20 20 | ......using.(var.buffer.=....... |
| 4480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 44 | ..........................InputD |
| 44a0 | 65 76 69 63 65 43 6f 6d 6d 61 6e 64 2e 41 6c 6c 6f 63 61 74 65 4e 61 74 69 76 65 28 51 75 65 72 | eviceCommand.AllocateNative(Quer |
| 44c0 | 79 48 49 44 50 61 72 73 65 64 52 65 70 6f 72 74 44 65 73 63 72 69 70 74 6f 72 44 65 76 69 63 65 | yHIDParsedReportDescriptorDevice |
| 44e0 | 43 6f 6d 6d 61 6e 64 54 79 70 65 2c 20 6b 4d 61 78 44 65 73 63 72 69 70 74 6f 72 42 75 66 66 65 | CommandType,.kMaxDescriptorBuffe |
| 4500 | 72 53 69 7a 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | rSize))......................{.. |
| 4520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6d 6d | ........................var.comm |
| 4540 | 61 6e 64 50 74 72 20 3d 20 28 49 6e 70 75 74 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 2a 29 62 75 | andPtr.=.(InputDeviceCommand*)bu |
| 4560 | 66 66 65 72 2e 47 65 74 55 6e 73 61 66 65 50 74 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ffer.GetUnsafePtr();............ |
| 4580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 75 74 66 38 4c 65 6e 67 74 68 20 3d 20 65 | ..............var.utf8Length.=.e |
| 45a0 | 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 44 65 6c 65 67 61 74 65 28 72 65 66 20 2a 63 6f 6d 6d 61 | xecuteCommandDelegate(ref.*comma |
| 45c0 | 6e 64 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndPtr);......................... |
| 45e0 | 20 69 66 20 28 75 74 66 38 4c 65 6e 67 74 68 20 3c 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | .if.(utf8Length.<.0)............ |
| 4600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 48 49 44 | ..................return.new.HID |
| 4620 | 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 | DeviceDescriptor();............. |
| 4640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 75 72 6e 20 55 54 46 2d 38 20 62 75 66 | ...............//.Turn.UTF-8.buf |
| 4660 | 66 65 72 20 69 6e 74 6f 20 73 74 72 69 6e 67 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer.into.string................. |
| 4680 | 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 54 4f 44 4f 3a 20 69 73 20 74 68 65 72 65 20 61 20 77 | ..........////TODO:.is.there.a.w |
| 46a0 | 61 79 20 74 6f 20 6e 6f 74 20 68 61 76 65 20 74 6f 20 63 6f 70 79 20 68 65 72 65 3f 0d 0a 20 20 | ay.to.not.have.to.copy.here?.... |
| 46c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 75 74 66 38 20 3d | ......................var.utf8.= |
| 46e0 | 20 6e 65 77 20 62 79 74 65 5b 75 74 66 38 4c 65 6e 67 74 68 5d 3b 0d 0a 20 20 20 20 20 20 20 20 | .new.byte[utf8Length];.......... |
| 4700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 78 65 64 28 62 79 74 65 2a 20 75 74 66 38 | ................fixed(byte*.utf8 |
| 4720 | 50 74 72 20 3d 20 75 74 66 38 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Ptr.=.utf8)..................... |
| 4740 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....{.......................... |
| 4760 | 20 20 20 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 4d 65 6d 43 70 79 28 75 74 66 38 50 74 72 | ....UnsafeUtility.MemCpy(utf8Ptr |
| 4780 | 2c 20 63 6f 6d 6d 61 6e 64 50 74 72 2d 3e 70 61 79 6c 6f 61 64 50 74 72 2c 20 75 74 66 38 4c 65 | ,.commandPtr->payloadPtr,.utf8Le |
| 47a0 | 6e 67 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ngth);.......................... |
| 47c0 | 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 | }..........................var.d |
| 47e0 | 65 73 63 72 69 70 74 6f 72 4a 73 6f 6e 20 3d 20 45 6e 63 6f 64 69 6e 67 2e 55 54 46 38 2e 47 65 | escriptorJson.=.Encoding.UTF8.Ge |
| 4800 | 74 53 74 72 69 6e 67 28 75 74 66 38 2c 20 30 2c 20 28 69 6e 74 29 75 74 66 38 4c 65 6e 67 74 68 | tString(utf8,.0,.(int)utf8Length |
| 4820 | 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | );............................// |
| 4840 | 20 54 72 79 20 74 6f 20 70 61 72 73 65 20 74 68 65 20 48 49 44 20 72 65 70 6f 72 74 20 64 65 73 | .Try.to.parse.the.HID.report.des |
| 4860 | 63 72 69 70 74 6f 72 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | criptor......................... |
| 4880 | 20 20 74 72 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | ..try..........................{ |
| 48a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 | ..............................hi |
| 48c0 | 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 3d 20 48 49 44 44 65 76 69 63 65 44 65 73 | dDeviceDescriptor.=.HIDDeviceDes |
| 48e0 | 63 72 69 70 74 6f 72 2e 46 72 6f 6d 4a 73 6f 6e 28 64 65 73 63 72 69 70 74 6f 72 4a 73 6f 6e 29 | criptor.FromJson(descriptorJson) |
| 4900 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 | ;..........................}.... |
| 4920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68 20 28 45 78 63 | ......................catch.(Exc |
| 4940 | 65 70 74 69 6f 6e 20 65 78 63 65 70 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | eption.exception)............... |
| 4960 | 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........{.................... |
| 4980 | 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e 4c 6f 67 45 72 72 6f 72 28 24 22 43 6f 75 6c 64 | ..........Debug.LogError($"Could |
| 49a0 | 20 6e 6f 74 20 70 61 72 73 65 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 20 6f 66 20 64 65 76 | .not.parse.HID.descriptor.of.dev |
| 49c0 | 69 63 65 20 27 7b 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 7d 27 22 29 3b 0d 0a 20 20 | ice.'{deviceDescription}'");.... |
| 49e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e | ..........................Debug. |
| 4a00 | 4c 6f 67 45 78 63 65 70 74 69 6f 6e 28 65 78 63 65 70 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 | LogException(exception);........ |
| 4a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 | ......................return.new |
| 4a40 | 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 | .HIDDeviceDescriptor();......... |
| 4a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | .................}.............. |
| 4a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 55 70 64 61 74 65 20 74 68 65 20 64 65 73 63 | ..............//.Update.the.desc |
| 4aa0 | 72 69 70 74 6f 72 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 20 77 69 74 68 20 74 68 65 20 69 6e | riptor.on.the.device.with.the.in |
| 4ac0 | 66 6f 72 6d 61 74 69 6f 6e 20 77 65 20 67 6f 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | formation.we.got................ |
| 4ae0 | 20 20 20 20 20 20 20 20 20 20 20 64 65 76 69 63 65 44 65 73 63 72 69 70 74 69 6f 6e 2e 63 61 70 | ...........deviceDescription.cap |
| 4b00 | 61 62 69 6c 69 74 69 65 73 20 3d 20 64 65 73 63 72 69 70 74 6f 72 4a 73 6f 6e 3b 0d 0a 20 20 20 | abilities.=.descriptorJson;..... |
| 4b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................}.............. |
| 4b40 | 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ....}..............}............ |
| 4b60 | 20 20 20 20 72 65 74 75 72 6e 20 68 69 64 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 3b 0d | ....return.hidDeviceDescriptor;. |
| 4b80 | 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 | .........}............public.sta |
| 4ba0 | 74 69 63 20 73 74 72 69 6e 67 20 55 73 61 67 65 50 61 67 65 54 6f 53 74 72 69 6e 67 28 55 73 61 | tic.string.UsagePageToString(Usa |
| 4bc0 | 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 | gePage.usagePage)..........{.... |
| 4be0 | 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 69 6e 74 29 75 73 61 67 65 50 61 67 65 20 | ..........return.(int)usagePage. |
| 4c00 | 3e 3d 20 30 78 46 46 30 30 20 3f 20 22 56 65 6e 64 6f 72 2d 44 65 66 69 6e 65 64 22 20 3a 20 75 | >=.0xFF00.?."Vendor-Defined".:.u |
| 4c20 | 73 61 67 65 50 61 67 65 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d | sagePage.ToString();..........}. |
| 4c40 | 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 | ...........public.static.string. |
| 4c60 | 55 73 61 67 65 54 6f 53 74 72 69 6e 67 28 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 | UsageToString(UsagePage.usagePag |
| 4c80 | 65 2c 20 69 6e 74 20 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | e,.int.usage)..........{........ |
| 4ca0 | 20 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 | ......switch.(usagePage)........ |
| 4cc0 | 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 73 | ......{..................case.Us |
| 4ce0 | 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3a 0d 0a 20 20 20 20 20 20 20 | agePage.GenericDesktop:......... |
| 4d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 28 47 65 6e 65 72 69 63 44 65 73 | .............return.((GenericDes |
| 4d20 | 6b 74 6f 70 29 75 73 61 67 65 29 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 | ktop)usage).ToString();......... |
| 4d40 | 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e 53 69 6d 75 6c 61 74 69 | .........case.UsagePage.Simulati |
| 4d60 | 6f 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | on:......................return. |
| 4d80 | 28 28 53 69 6d 75 6c 61 74 69 6f 6e 29 75 73 61 67 65 29 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d | ((Simulation)usage).ToString();. |
| 4da0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0d 0a 20 20 20 20 20 | .................default:....... |
| 4dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 | ...............return.null;..... |
| 4de0 | 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 | .........}..........}........... |
| 4e00 | 20 5b 53 65 72 69 61 6c 69 7a 61 62 6c 65 5d 0d 0a 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 | .[Serializable]..........private |
| 4e20 | 20 63 6c 61 73 73 20 48 49 44 4c 61 79 6f 75 74 42 75 69 6c 64 65 72 0d 0a 20 20 20 20 20 20 20 | .class.HIDLayoutBuilder......... |
| 4e40 | 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 64 69 | .{..............public.string.di |
| 4e60 | 73 70 6c 61 79 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 | splayName;..............public.H |
| 4e80 | 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 68 69 64 44 65 73 63 72 69 70 74 6f 72 | IDDeviceDescriptor.hidDescriptor |
| 4ea0 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 70 61 72 | ;..............public.string.par |
| 4ec0 | 65 6e 74 4c 61 79 6f 75 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 54 | entLayout;..............public.T |
| 4ee0 | 79 70 65 20 64 65 76 69 63 65 54 79 70 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 | ype.deviceType;................p |
| 4f00 | 75 62 6c 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 20 42 75 69 6c 64 28 29 | ublic.InputControlLayout.Build() |
| 4f20 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............{................. |
| 4f40 | 20 76 61 72 20 62 75 69 6c 64 65 72 20 3d 20 6e 65 77 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c | .var.builder.=.new.InputControlL |
| 4f60 | 61 79 6f 75 74 2e 42 75 69 6c 64 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | ayout.Builder..................{ |
| 4f80 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 4e 61 6d | ......................displayNam |
| 4fa0 | 65 20 3d 20 64 69 73 70 6c 61 79 4e 61 6d 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.=.displayName,................ |
| 4fc0 | 20 20 20 20 20 20 74 79 70 65 20 3d 20 64 65 76 69 63 65 54 79 70 65 2c 0d 0a 20 20 20 20 20 20 | ......type.=.deviceType,........ |
| 4fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 73 4c 61 79 6f 75 74 20 3d 20 70 61 | ..............extendsLayout.=.pa |
| 5000 | 72 65 6e 74 4c 61 79 6f 75 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rentLayout,..................... |
| 5020 | 20 73 74 61 74 65 46 6f 72 6d 61 74 20 3d 20 6e 65 77 20 46 6f 75 72 43 43 28 27 48 27 2c 20 27 | .stateFormat.=.new.FourCC('H',.' |
| 5040 | 49 27 2c 20 27 44 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 0d 0a | I',.'D')..................};.... |
| 5060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 78 45 6c 65 6d 65 6e 74 20 3d 20 41 | ................var.xElement.=.A |
| 5080 | 72 72 61 79 2e 46 69 6e 64 28 68 69 64 44 65 73 63 72 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 | rray.Find(hidDescriptor.elements |
| 50a0 | 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 20 3d | ,......................element.= |
| 50c0 | 3e 20 65 6c 65 6d 65 6e 74 2e 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 61 67 65 | >.element.usagePage.==.UsagePage |
| 50e0 | 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 26 26 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .GenericDesktop.&&.............. |
| 5100 | 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 2e 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 | ........element.usage.==.(int)Ge |
| 5120 | 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nericDesktop.X);................ |
| 5140 | 20 20 76 61 72 20 79 45 6c 65 6d 65 6e 74 20 3d 20 41 72 72 61 79 2e 46 69 6e 64 28 68 69 64 44 | ..var.yElement.=.Array.Find(hidD |
| 5160 | 65 73 63 72 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | escriptor.elements,............. |
| 5180 | 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 20 3d 3e 20 65 6c 65 6d 65 6e 74 2e 75 73 61 67 | .........element.=>.element.usag |
| 51a0 | 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f | ePage.==.UsagePage.GenericDeskto |
| 51c0 | 70 20 26 26 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e | p.&&......................elemen |
| 51e0 | 74 2e 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 59 | t.usage.==.(int)GenericDesktop.Y |
| 5200 | 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 | );....................////REVIEW |
| 5220 | 3a 20 69 6e 20 63 61 73 65 20 74 68 65 20 58 20 61 6e 64 20 59 20 63 6f 6e 74 72 6f 6c 20 61 72 | :.in.case.the.X.and.Y.control.ar |
| 5240 | 65 20 6e 6f 6e 2d 63 6f 6e 74 69 67 75 6f 75 73 2c 20 73 68 6f 75 6c 64 20 77 65 20 65 76 65 6e | e.non-contiguous,.should.we.even |
| 5260 | 20 74 75 72 6e 20 74 68 65 6d 20 69 6e 74 6f 20 61 20 73 74 69 63 6b 0d 0a 20 20 20 20 20 20 20 | .turn.them.into.a.stick......... |
| 5280 | 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 74 68 65 72 65 20 2a 68 61 73 2a | .........////REVIEW:.there.*has* |
| 52a0 | 20 74 6f 20 62 65 20 61 6e 20 58 20 61 6e 64 20 61 20 59 20 66 6f 72 20 75 73 20 74 6f 20 62 65 | .to.be.an.X.and.a.Y.for.us.to.be |
| 52c0 | 20 61 62 6c 65 20 74 6f 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 72 65 61 74 65 20 61 20 6a | .able.to.successfully.create.a.j |
| 52e0 | 6f 79 73 74 69 63 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 47 | oystick..................//.If.G |
| 5300 | 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 20 61 6e 64 20 47 65 6e 65 72 69 63 44 65 73 6b 74 | enericDesktop.X.and.GenericDeskt |
| 5320 | 6f 70 2e 59 20 61 72 65 20 62 6f 74 68 20 70 72 65 73 65 6e 74 2c 20 74 75 72 6e 20 74 68 65 20 | op.Y.are.both.present,.turn.the. |
| 5340 | 63 6f 6e 74 72 6f 6c 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 74 | controls..................//.int |
| 5360 | 6f 20 61 20 73 74 69 63 6b 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 | o.a.stick...................var. |
| 5380 | 68 61 76 65 53 74 69 63 6b 20 3d 20 78 45 6c 65 6d 65 6e 74 2e 75 73 61 67 65 20 3d 3d 20 28 69 | haveStick.=.xElement.usage.==.(i |
| 53a0 | 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 20 26 26 20 79 45 6c 65 6d 65 6e 74 2e | nt)GenericDesktop.X.&&.yElement. |
| 53c0 | 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 59 3b 0d | usage.==.(int)GenericDesktop.Y;. |
| 53e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 61 76 65 53 74 69 63 6b 29 0d | .................if.(haveStick). |
| 5400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................{.............. |
| 5420 | 20 20 20 20 20 20 20 20 69 6e 74 20 62 69 74 4f 66 66 73 65 74 2c 20 62 79 74 65 4f 66 66 73 65 | ........int.bitOffset,.byteOffse |
| 5440 | 74 2c 20 73 69 7a 65 49 6e 42 69 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t,.sizeInBits;.................. |
| 5460 | 20 20 20 20 69 66 20 28 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 | ....if.(xElement.reportOffsetInB |
| 5480 | 69 74 73 20 3c 3d 20 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 | its.<=.yElement.reportOffsetInBi |
| 54a0 | 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | ts)......................{...... |
| 54c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 4f 66 66 73 65 74 20 3d 20 | ....................bitOffset.=. |
| 54e0 | 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 3b | xElement.reportOffsetInBits.%.8; |
| 5500 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 74 65 4f 66 | ..........................byteOf |
| 5520 | 66 73 65 74 20 3d 20 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 | fset.=.xElement.reportOffsetInBi |
| 5540 | 74 73 20 2f 20 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ts./.8;......................... |
| 5560 | 20 73 69 7a 65 49 6e 42 69 74 73 20 3d 20 28 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 | .sizeInBits.=.(yElement.reportOf |
| 5580 | 66 73 65 74 49 6e 42 69 74 73 20 2b 20 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 53 69 7a 65 | fsetInBits.+.yElement.reportSize |
| 55a0 | 49 6e 42 69 74 73 29 20 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | InBits).-....................... |
| 55c0 | 20 20 20 20 20 20 20 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 | .......xElement.reportOffsetInBi |
| 55e0 | 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 | ts;......................}...... |
| 5600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 | ................else............ |
| 5620 | 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........{..................... |
| 5640 | 20 20 20 20 20 62 69 74 4f 66 66 73 65 74 20 3d 20 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 | .....bitOffset.=.yElement.report |
| 5660 | 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | OffsetInBits.%.8;............... |
| 5680 | 20 20 20 20 20 20 20 20 20 20 20 62 79 74 65 4f 66 66 73 65 74 20 3d 20 79 45 6c 65 6d 65 6e 74 | ...........byteOffset.=.yElement |
| 56a0 | 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 2f 20 38 3b 0d 0a 20 20 20 20 20 20 | .reportOffsetInBits./.8;........ |
| 56c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 7a 65 49 6e 42 69 74 73 20 3d 20 28 | ..................sizeInBits.=.( |
| 56e0 | 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 2b 20 78 45 | xElement.reportOffsetInBits.+.xE |
| 5700 | 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 20 2d 0d 0a 20 20 20 20 | lement.reportSizeInBits).-...... |
| 5720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 45 6c 65 6d 65 6e 74 | ........................yElement |
| 5740 | 2e 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .reportSizeInBits;.............. |
| 5760 | 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........}....................... |
| 5780 | 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 73 74 69 63 6b 4e 61 6d 65 20 3d 20 22 73 74 69 63 6b | .const.string.stickName.=."stick |
| 57a0 | 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e | ";......................builder. |
| 57c0 | 41 64 64 43 6f 6e 74 72 6f 6c 28 73 74 69 63 6b 4e 61 6d 65 29 0d 0a 20 20 20 20 20 20 20 20 20 | AddControl(stickName)........... |
| 57e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 44 69 73 70 6c 61 79 4e 61 6d 65 28 | ................WithDisplayName( |
| 5800 | 22 53 74 69 63 6b 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "Stick")........................ |
| 5820 | 20 20 2e 57 69 74 68 4c 61 79 6f 75 74 28 22 53 74 69 63 6b 22 29 0d 0a 20 20 20 20 20 20 20 20 | ...WithLayout("Stick").......... |
| 5840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 | .................WithBitOffset(( |
| 5860 | 75 69 6e 74 29 62 69 74 4f 66 66 73 65 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uint)bitOffset)................. |
| 5880 | 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 79 74 65 4f 66 66 73 65 74 28 28 75 69 6e 74 29 62 | ..........WithByteOffset((uint)b |
| 58a0 | 79 74 65 4f 66 66 73 65 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | yteOffset)...................... |
| 58c0 | 20 20 20 20 2e 57 69 74 68 53 69 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 73 69 7a 65 49 6e | .....WithSizeInBits((uint)sizeIn |
| 58e0 | 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | Bits)........................... |
| 5900 | 57 69 74 68 55 73 61 67 65 73 28 43 6f 6d 6d 6f 6e 55 73 61 67 65 73 2e 50 72 69 6d 61 72 79 32 | WithUsages(CommonUsages.Primary2 |
| 5920 | 44 4d 6f 74 69 6f 6e 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | DMotion);....................... |
| 5940 | 20 76 61 72 20 78 45 6c 65 6d 65 6e 74 50 61 72 61 6d 65 74 65 72 73 20 3d 20 78 45 6c 65 6d 65 | .var.xElementParameters.=.xEleme |
| 5960 | 6e 74 2e 44 65 74 65 72 6d 69 6e 65 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0d 0a 20 20 20 20 20 | nt.DetermineParameters();....... |
| 5980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 79 45 6c 65 6d 65 6e 74 50 61 72 61 6d | ...............var.yElementParam |
| 59a0 | 65 74 65 72 73 20 3d 20 79 45 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 50 61 72 61 6d 65 | eters.=.yElement.DetermineParame |
| 59c0 | 74 65 72 73 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 | ters();........................b |
| 59e0 | 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 73 74 69 63 6b 4e 61 6d 65 20 2b 20 22 2f | uilder.AddControl(stickName.+."/ |
| 5a00 | 78 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 | x")...........................Wi |
| 5a20 | 74 68 46 6f 72 6d 61 74 28 78 45 6c 65 6d 65 6e 74 2e 69 73 53 69 67 6e 65 64 20 3f 20 49 6e 70 | thFormat(xElement.isSigned.?.Inp |
| 5a40 | 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 53 42 69 74 20 3a 20 49 6e 70 75 74 53 | utStateBlock.FormatSBit.:.InputS |
| 5a60 | 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 42 69 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | tateBlock.FormatBit)............ |
| 5a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 79 74 65 4f 66 66 73 65 74 28 28 75 | ...............WithByteOffset((u |
| 5aa0 | 69 6e 74 29 28 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 | int)(xElement.reportOffsetInBits |
| 5ac0 | 20 2f 20 38 20 2d 20 62 79 74 65 4f 66 66 73 65 74 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ./.8.-.byteOffset))............. |
| 5ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 75 69 6e | ..............WithBitOffset((uin |
| 5b00 | 74 29 28 78 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 | t)(xElement.reportOffsetInBits.% |
| 5b20 | 20 38 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 | .8))...........................W |
| 5b40 | 69 74 68 53 69 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 78 45 6c 65 6d 65 6e 74 2e 72 65 70 | ithSizeInBits((uint)xElement.rep |
| 5b60 | 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ortSizeInBits).................. |
| 5b80 | 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 78 45 6c 65 6d 65 6e 74 | .........WithParameters(xElement |
| 5ba0 | 50 61 72 61 6d 65 74 65 72 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Parameters)..................... |
| 5bc0 | 20 20 20 20 20 2e 57 69 74 68 44 65 66 61 75 6c 74 53 74 61 74 65 28 78 45 6c 65 6d 65 6e 74 2e | ......WithDefaultState(xElement. |
| 5be0 | 44 65 74 65 72 6d 69 6e 65 44 65 66 61 75 6c 74 53 74 61 74 65 28 29 29 0d 0a 20 20 20 20 20 20 | DetermineDefaultState())........ |
| 5c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 72 6f 63 65 73 73 6f 72 | ...................WithProcessor |
| 5c20 | 73 28 78 45 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 50 72 6f 63 65 73 73 6f 72 73 28 29 | s(xElement.DetermineProcessors() |
| 5c40 | 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 | );........................builde |
| 5c60 | 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 73 74 69 63 6b 4e 61 6d 65 20 2b 20 22 2f 79 22 29 0d 0a | r.AddControl(stickName.+."/y").. |
| 5c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 46 6f 72 | .........................WithFor |
| 5ca0 | 6d 61 74 28 79 45 6c 65 6d 65 6e 74 2e 69 73 53 69 67 6e 65 64 20 3f 20 49 6e 70 75 74 53 74 61 | mat(yElement.isSigned.?.InputSta |
| 5cc0 | 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 53 42 69 74 20 3a 20 49 6e 70 75 74 53 74 61 74 65 42 | teBlock.FormatSBit.:.InputStateB |
| 5ce0 | 6c 6f 63 6b 2e 46 6f 72 6d 61 74 42 69 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lock.FormatBit)................. |
| 5d00 | 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 79 74 65 4f 66 66 73 65 74 28 28 75 69 6e 74 29 28 | ..........WithByteOffset((uint)( |
| 5d20 | 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 2f 20 38 20 | yElement.reportOffsetInBits./.8. |
| 5d40 | 2d 20 62 79 74 65 4f 66 66 73 65 74 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -.byteOffset)).................. |
| 5d60 | 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 75 69 6e 74 29 28 79 45 | .........WithBitOffset((uint)(yE |
| 5d80 | 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 29 29 0d | lement.reportOffsetInBits.%.8)). |
| 5da0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 53 69 | ..........................WithSi |
| 5dc0 | 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 79 45 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 53 69 | zeInBits((uint)yElement.reportSi |
| 5de0 | 7a 65 49 6e 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | zeInBits)....................... |
| 5e00 | 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 79 45 6c 65 6d 65 6e 74 50 61 72 61 6d | ....WithParameters(yElementParam |
| 5e20 | 65 74 65 72 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eters).......................... |
| 5e40 | 2e 57 69 74 68 44 65 66 61 75 6c 74 53 74 61 74 65 28 79 45 6c 65 6d 65 6e 74 2e 44 65 74 65 72 | .WithDefaultState(yElement.Deter |
| 5e60 | 6d 69 6e 65 44 65 66 61 75 6c 74 53 74 61 74 65 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | mineDefaultState())............. |
| 5e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 72 6f 63 65 73 73 6f 72 73 28 79 45 6c | ..............WithProcessors(yEl |
| 5ea0 | 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 50 72 6f 63 65 73 73 6f 72 73 28 29 29 3b 0d 0a 0d | ement.DetermineProcessors());... |
| 5ec0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 72 6f 70 61 67 61 74 | .....................//.Propagat |
| 5ee0 | 65 20 70 61 72 61 6d 65 74 65 72 73 20 6e 65 65 64 65 64 20 6f 6e 20 78 20 61 6e 64 20 79 20 74 | e.parameters.needed.on.x.and.y.t |
| 5f00 | 6f 20 74 68 65 20 66 6f 75 72 20 62 75 74 74 6f 6e 20 63 6f 6e 74 72 6f 6c 73 2e 0d 0a 20 20 20 | o.the.four.button.controls...... |
| 5f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 | .................builder.AddCont |
| 5f40 | 72 6f 6c 28 73 74 69 63 6b 4e 61 6d 65 20 2b 20 22 2f 75 70 22 29 0d 0a 20 20 20 20 20 20 20 20 | rol(stickName.+."/up").......... |
| 5f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 | .................WithParameters( |
| 5f80 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 | ..............................St |
| 5fa0 | 72 69 6e 67 48 65 6c 70 65 72 73 2e 4a 6f 69 6e 28 22 2c 22 2c 20 79 45 6c 65 6d 65 6e 74 50 61 | ringHelpers.Join(",",.yElementPa |
| 5fc0 | 72 61 6d 65 74 65 72 73 2c 20 22 63 6c 61 6d 70 3d 32 2c 63 6c 61 6d 70 4d 69 6e 3d 2d 31 2c 63 | rameters,."clamp=2,clampMin=-1,c |
| 5fe0 | 6c 61 6d 70 4d 61 78 3d 30 2c 69 6e 76 65 72 74 3d 74 72 75 65 22 29 29 3b 0d 0a 20 20 20 20 20 | lampMax=0,invert=true"));....... |
| 6000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f | ...............builder.AddContro |
| 6020 | 6c 28 73 74 69 63 6b 4e 61 6d 65 20 2b 20 22 2f 64 6f 77 6e 22 29 0d 0a 20 20 20 20 20 20 20 20 | l(stickName.+."/down").......... |
| 6040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 | .................WithParameters( |
| 6060 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 | ..............................St |
| 6080 | 72 69 6e 67 48 65 6c 70 65 72 73 2e 4a 6f 69 6e 28 22 2c 22 2c 20 79 45 6c 65 6d 65 6e 74 50 61 | ringHelpers.Join(",",.yElementPa |
| 60a0 | 72 61 6d 65 74 65 72 73 2c 20 22 63 6c 61 6d 70 3d 32 2c 63 6c 61 6d 70 4d 69 6e 3d 30 2c 63 6c | rameters,."clamp=2,clampMin=0,cl |
| 60c0 | 61 6d 70 4d 61 78 3d 31 2c 69 6e 76 65 72 74 3d 66 61 6c 73 65 22 29 29 3b 0d 0a 20 20 20 20 20 | ampMax=1,invert=false"));....... |
| 60e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f | ...............builder.AddContro |
| 6100 | 6c 28 73 74 69 63 6b 4e 61 6d 65 20 2b 20 22 2f 6c 65 66 74 22 29 0d 0a 20 20 20 20 20 20 20 20 | l(stickName.+."/left").......... |
| 6120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 | .................WithParameters( |
| 6140 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 | ..............................St |
| 6160 | 72 69 6e 67 48 65 6c 70 65 72 73 2e 4a 6f 69 6e 28 22 2c 22 2c 20 78 45 6c 65 6d 65 6e 74 50 61 | ringHelpers.Join(",",.xElementPa |
| 6180 | 72 61 6d 65 74 65 72 73 2c 20 22 63 6c 61 6d 70 3d 32 2c 63 6c 61 6d 70 4d 69 6e 3d 2d 31 2c 63 | rameters,."clamp=2,clampMin=-1,c |
| 61a0 | 6c 61 6d 70 4d 61 78 3d 30 2c 69 6e 76 65 72 74 22 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | lampMax=0,invert"));............ |
| 61c0 | 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 73 74 69 | ..........builder.AddControl(sti |
| 61e0 | 63 6b 4e 61 6d 65 20 2b 20 22 2f 72 69 67 68 74 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ckName.+."/right").............. |
| 6200 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 0d 0a 20 20 | .............WithParameters(.... |
| 6220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 72 69 6e 67 | ..........................String |
| 6240 | 48 65 6c 70 65 72 73 2e 4a 6f 69 6e 28 22 2c 22 2c 20 78 45 6c 65 6d 65 6e 74 50 61 72 61 6d 65 | Helpers.Join(",",.xElementParame |
| 6260 | 74 65 72 73 2c 20 22 63 6c 61 6d 70 3d 32 2c 63 6c 61 6d 70 4d 69 6e 3d 30 2c 63 6c 61 6d 70 4d | ters,."clamp=2,clampMin=0,clampM |
| 6280 | 61 78 3d 31 22 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 | ax=1"));..................}..... |
| 62a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 72 6f 63 65 73 73 20 48 49 44 20 64 65 | ...............//.Process.HID.de |
| 62c0 | 73 63 72 69 70 74 6f 72 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 | scriptor...................var.e |
| 62e0 | 6c 65 6d 65 6e 74 73 20 3d 20 68 69 64 44 65 73 63 72 69 70 74 6f 72 2e 65 6c 65 6d 65 6e 74 73 | lements.=.hidDescriptor.elements |
| 6300 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 6c 65 6d 65 6e 74 43 6f | ;..................var.elementCo |
| 6320 | 75 6e 74 20 3d 20 65 6c 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 | unt.=.elements.Length;.......... |
| 6340 | 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 65 6c 65 6d | ........for.(var.i.=.0;.i.<.elem |
| 6360 | 65 6e 74 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | entCount;.++i).................. |
| 6380 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 66 20 76 61 72 20 65 | {......................ref.var.e |
| 63a0 | 6c 65 6d 65 6e 74 20 3d 20 72 65 66 20 65 6c 65 6d 65 6e 74 73 5b 69 5d 3b 0d 0a 20 20 20 20 20 | lement.=.ref.elements[i];....... |
| 63c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 | ...............if.(element.repor |
| 63e0 | 74 54 79 70 65 20 21 3d 20 48 49 44 52 65 70 6f 72 74 54 79 70 65 2e 49 6e 70 75 74 29 0d 0a 20 | tType.!=.HIDReportType.Input)... |
| 6400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b | .......................continue; |
| 6420 | 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 6b 69 70 20 | ........................//.Skip. |
| 6440 | 58 20 61 6e 64 20 59 20 69 66 20 77 65 20 61 6c 72 65 61 64 79 20 74 75 72 6e 65 64 20 74 68 65 | X.and.Y.if.we.already.turned.the |
| 6460 | 6d 20 69 6e 74 6f 20 61 20 73 74 69 63 6b 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m.into.a.stick.................. |
| 6480 | 20 20 20 20 20 69 66 20 28 68 61 76 65 53 74 69 63 6b 20 26 26 20 28 65 6c 65 6d 65 6e 74 2e 49 | .....if.(haveStick.&&.(element.I |
| 64a0 | 73 28 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2c 20 28 69 6e 74 | s(UsagePage.GenericDesktop,.(int |
| 64c0 | 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 29 20 7c 7c 0d 0a 20 20 20 20 20 20 20 20 20 | )GenericDesktop.X).||........... |
| 64e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 | .............................ele |
| 6500 | 6d 65 6e 74 2e 49 73 28 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 | ment.Is(UsagePage.GenericDesktop |
| 6520 | 2c 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 59 29 29 29 0d 0a 20 20 20 20 | ,.(int)GenericDesktop.Y)))...... |
| 6540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 0d | ....................continue;... |
| 6560 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 61 79 6f 75 74 20 | .....................var.layout. |
| 6580 | 3d 20 65 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 4c 61 79 6f 75 74 28 29 3b 0d 0a 20 20 | =.element.DetermineLayout();.... |
| 65a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 61 79 6f 75 74 20 21 3d 20 | ..................if.(layout.!=. |
| 65c0 | 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 | null)......................{.... |
| 65e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 73 73 69 67 6e 20 | ......................//.Assign. |
| 6600 | 75 6e 69 71 75 65 20 6e 61 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | unique.name..................... |
| 6620 | 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 20 3d 20 65 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 | ......var.name.=.element.Determi |
| 6640 | 6e 65 4e 61 6d 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | neName();....................... |
| 6660 | 20 20 20 44 65 62 75 67 2e 41 73 73 65 72 74 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 | ...Debug.Assert(!string.IsNullOr |
| 6680 | 45 6d 70 74 79 28 6e 61 6d 65 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Empty(name));................... |
| 66a0 | 20 20 20 20 20 20 20 6e 61 6d 65 20 3d 20 53 74 72 69 6e 67 48 65 6c 70 65 72 73 2e 4d 61 6b 65 | .......name.=.StringHelpers.Make |
| 66c0 | 55 6e 69 71 75 65 4e 61 6d 65 28 6e 61 6d 65 2c 20 62 75 69 6c 64 65 72 2e 63 6f 6e 74 72 6f 6c | UniqueName(name,.builder.control |
| 66e0 | 73 2c 20 78 20 3d 3e 20 78 2e 6e 61 6d 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s,.x.=>.x.name);................ |
| 6700 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 64 64 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 | ............//.Add.control...... |
| 6720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c | .....................var.control |
| 6740 | 20 3d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .=.............................. |
| 6760 | 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 | builder.AddControl(name)........ |
| 6780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 44 | ...........................WithD |
| 67a0 | 69 73 70 6c 61 79 4e 61 6d 65 28 65 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 44 69 73 70 | isplayName(element.DetermineDisp |
| 67c0 | 6c 61 79 4e 61 6d 65 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | layName())...................... |
| 67e0 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 4c 61 79 6f 75 74 28 6c 61 79 6f 75 74 29 0d | .............WithLayout(layout). |
| 6800 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6820 | 20 2e 57 69 74 68 42 79 74 65 4f 66 66 73 65 74 28 28 75 69 6e 74 29 65 6c 65 6d 65 6e 74 2e 72 | ..WithByteOffset((uint)element.r |
| 6840 | 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 2f 20 38 29 0d 0a 20 20 20 20 20 20 20 20 | eportOffsetInBits./.8).......... |
| 6860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 | .........................WithBit |
| 6880 | 4f 66 66 73 65 74 28 28 75 69 6e 74 29 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 | Offset((uint)element.reportOffse |
| 68a0 | 74 49 6e 42 69 74 73 20 25 20 38 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tInBits.%.8).................... |
| 68c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 53 69 7a 65 49 6e 42 69 74 73 28 28 75 | ...............WithSizeInBits((u |
| 68e0 | 69 6e 74 29 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 0d 0a 20 | int)element.reportSizeInBits)... |
| 6900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | ................................ |
| 6920 | 57 69 74 68 46 6f 72 6d 61 74 28 65 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 46 6f 72 6d | WithFormat(element.DetermineForm |
| 6940 | 61 74 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | at())........................... |
| 6960 | 20 20 20 20 20 20 20 2e 57 69 74 68 44 65 66 61 75 6c 74 53 74 61 74 65 28 65 6c 65 6d 65 6e 74 | ........WithDefaultState(element |
| 6980 | 2e 44 65 74 65 72 6d 69 6e 65 44 65 66 61 75 6c 74 53 74 61 74 65 28 29 29 0d 0a 20 20 20 20 20 | .DetermineDefaultState())....... |
| 69a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 | ............................With |
| 69c0 | 50 72 6f 63 65 73 73 6f 72 73 28 65 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 50 72 6f 63 | Processors(element.DetermineProc |
| 69e0 | 65 73 73 6f 72 73 28 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | essors());...................... |
| 6a00 | 20 20 20 20 20 20 76 61 72 20 70 61 72 61 6d 65 74 65 72 73 20 3d 20 65 6c 65 6d 65 6e 74 2e 44 | ......var.parameters.=.element.D |
| 6a20 | 65 74 65 72 6d 69 6e 65 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 | etermineParameters();........... |
| 6a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 2e 49 73 4e 75 6c | ...............if.(!string.IsNul |
| 6a60 | 6c 4f 72 45 6d 70 74 79 28 70 61 72 61 6d 65 74 65 72 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 | lOrEmpty(parameters))........... |
| 6a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 72 6f 6c 2e 57 69 74 68 50 | ...................control.WithP |
| 6aa0 | 61 72 61 6d 65 74 65 72 73 28 70 61 72 61 6d 65 74 65 72 73 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 | arameters(parameters);.......... |
| 6ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 75 73 61 67 65 73 20 3d 20 65 | ..................var.usages.=.e |
| 6ae0 | 6c 65 6d 65 6e 74 2e 44 65 74 65 72 6d 69 6e 65 55 73 61 67 65 73 28 29 3b 0d 0a 20 20 20 20 20 | lement.DetermineUsages();....... |
| 6b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 73 20 21 3d | ...................if.(usages.!= |
| 6b20 | 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .null).......................... |
| 6b40 | 20 20 20 20 63 6f 6e 74 72 6f 6c 2e 57 69 74 68 55 73 61 67 65 73 28 75 73 61 67 65 73 29 3b 0d | ....control.WithUsages(usages);. |
| 6b60 | 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 | ...........................eleme |
| 6b80 | 6e 74 2e 41 64 64 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 73 28 72 65 66 20 65 6c 65 6d 65 6e 74 2c | nt.AddChildControls(ref.element, |
| 6ba0 | 20 6e 61 6d 65 2c 20 72 65 66 20 62 75 69 6c 64 65 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | .name,.ref.builder);............ |
| 6bc0 | 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a | ..........}..................}.. |
| 6be0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 62 75 69 6c 64 65 72 | ..................return.builder |
| 6c00 | 2e 42 75 69 6c 64 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 | .Build();..............}........ |
| 6c20 | 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 65 6e 75 6d 20 48 49 44 52 65 | ..}............public.enum.HIDRe |
| 6c40 | 70 6f 72 74 54 79 70 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | portType..........{............. |
| 6c60 | 20 55 6e 6b 6e 6f 77 6e 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 2c 0d 0a 20 | .Unknown,..............Input,... |
| 6c80 | 20 20 20 20 20 20 20 20 20 20 20 4f 75 74 70 75 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........Output,.............. |
| 6ca0 | 46 65 61 74 75 72 65 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 | Feature..........}............pu |
| 6cc0 | 62 6c 69 63 20 65 6e 75 6d 20 48 49 44 43 6f 6c 6c 65 63 74 69 6f 6e 54 79 70 65 0d 0a 20 20 20 | blic.enum.HIDCollectionType..... |
| 6ce0 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 68 79 73 69 63 61 6c 20 3d 20 30 | .....{..............Physical.=.0 |
| 6d00 | 78 30 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 | x00,..............Application.=. |
| 6d20 | 30 78 30 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 6f 67 69 63 61 6c 20 3d 20 30 78 30 | 0x01,..............Logical.=.0x0 |
| 6d40 | 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 70 6f 72 74 20 3d 20 30 78 30 33 2c 0d 0a | 2,..............Report.=.0x03,.. |
| 6d60 | 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 64 41 72 72 61 79 20 3d 20 30 78 30 34 2c 0d 0a | ............NamedArray.=.0x04,.. |
| 6d80 | 20 20 20 20 20 20 20 20 20 20 20 20 55 73 61 67 65 53 77 69 74 63 68 20 3d 20 30 78 30 35 2c 0d | ............UsageSwitch.=.0x05,. |
| 6da0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 73 61 67 65 4d 6f 64 69 66 69 65 72 20 3d 20 30 78 30 | .............UsageModifier.=.0x0 |
| 6dc0 | 36 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 5b 53 79 73 74 65 6d 2e | 6..........}............[System. |
| 6de0 | 44 69 61 67 6e 6f 73 74 69 63 73 2e 43 6f 64 65 41 6e 61 6c 79 73 69 73 2e 53 75 70 70 72 65 73 | Diagnostics.CodeAnalysis.Suppres |
| 6e00 | 73 4d 65 73 73 61 67 65 28 22 4d 69 63 72 6f 73 6f 66 74 2e 4e 61 6d 69 6e 67 22 2c 20 22 43 41 | sMessage("Microsoft.Naming",."CA |
| 6e20 | 31 37 32 36 3a 55 73 65 50 72 65 66 65 72 72 65 64 54 65 72 6d 73 22 2c 20 4d 65 73 73 61 67 65 | 1726:UsePreferredTerms",.Message |
| 6e40 | 49 64 20 3d 20 22 46 6c 61 67 73 22 2c 20 4a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 3d 20 22 4e | Id.=."Flags",.Justification.=."N |
| 6e60 | 6f 20 62 65 74 74 65 72 20 74 65 72 6d 20 66 6f 72 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61 74 | o.better.term.for.underlying.dat |
| 6e80 | 61 2e 22 29 5d 0d 0a 20 20 20 20 20 20 20 20 5b 46 6c 61 67 73 5d 0d 0a 20 20 20 20 20 20 20 20 | a.")]..........[Flags].......... |
| 6ea0 | 70 75 62 6c 69 63 20 65 6e 75 6d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 0d 0a 20 20 20 | public.enum.HIDElementFlags..... |
| 6ec0 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 73 74 61 6e 74 20 3d 20 31 | .....{..............Constant.=.1 |
| 6ee0 | 20 3c 3c 20 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 61 72 69 61 62 6c 65 20 3d 20 31 | .<<.0,..............Variable.=.1 |
| 6f00 | 20 3c 3c 20 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 6c 61 74 69 76 65 20 3d 20 31 | .<<.1,..............Relative.=.1 |
| 6f20 | 20 3c 3c 20 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 72 61 70 20 3d 20 31 20 3c 3c 20 | .<<.2,..............Wrap.=.1.<<. |
| 6f40 | 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 6e 4c 69 6e 65 61 72 20 3d 20 31 20 3c 3c | 3,..............NonLinear.=.1.<< |
| 6f60 | 20 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 50 72 65 66 65 72 72 65 64 20 3d 20 31 | .4,..............NoPreferred.=.1 |
| 6f80 | 20 3c 3c 20 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 75 6c 6c 53 74 61 74 65 20 3d 20 | .<<.5,..............NullState.=. |
| 6fa0 | 31 20 3c 3c 20 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 6f 6c 61 74 69 6c 65 20 3d 20 | 1.<<.6,..............Volatile.=. |
| 6fc0 | 31 20 3c 3c 20 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 75 66 66 65 72 65 64 42 79 74 | 1.<<.7,..............BufferedByt |
| 6fe0 | 65 73 20 3d 20 31 20 3c 3c 20 38 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 | es.=.1.<<.8..........}.......... |
| 7000 | 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 44 65 73 | ..///.<summary>..........///.Des |
| 7020 | 63 72 69 70 74 6f 72 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f 72 74 20 65 6c 65 6d | criptor.for.a.single.report.elem |
| 7040 | 65 6e 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 | ent...........///.</summary>.... |
| 7060 | 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 62 6c 65 5d 0d 0a 20 20 20 20 20 20 20 20 70 75 | ......[Serializable]..........pu |
| 7080 | 62 6c 69 63 20 73 74 72 75 63 74 20 48 49 44 45 6c 65 6d 65 6e 74 44 65 73 63 72 69 70 74 6f 72 | blic.struct.HIDElementDescriptor |
| 70a0 | 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 | ..........{..............public. |
| 70c0 | 69 6e 74 20 75 73 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 55 | int.usage;..............public.U |
| 70e0 | 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | sagePage.usagePage;............. |
| 7100 | 20 70 75 62 6c 69 63 20 69 6e 74 20 75 6e 69 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 | .public.int.unit;..............p |
| 7120 | 75 62 6c 69 63 20 69 6e 74 20 75 6e 69 74 45 78 70 6f 6e 65 6e 74 3b 0d 0a 20 20 20 20 20 20 20 | ublic.int.unitExponent;......... |
| 7140 | 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 6c 6f 67 69 63 61 6c 4d 69 6e 3b 0d 0a 20 20 20 | .....public.int.logicalMin;..... |
| 7160 | 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 6c 6f 67 69 63 61 6c 4d 61 78 3b 0d | .........public.int.logicalMax;. |
| 7180 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 70 68 79 73 69 63 61 6c | .............public.int.physical |
| 71a0 | 4d 69 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 70 68 79 | Min;..............public.int.phy |
| 71c0 | 73 69 63 61 6c 4d 61 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 49 | sicalMax;..............public.HI |
| 71e0 | 44 52 65 70 6f 72 74 54 79 70 65 20 72 65 70 6f 72 74 54 79 70 65 3b 0d 0a 20 20 20 20 20 20 20 | DReportType.reportType;......... |
| 7200 | 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 49 6e 64 65 78 3b | .....public.int.collectionIndex; |
| 7220 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 72 65 70 6f 72 74 49 | ..............public.int.reportI |
| 7240 | 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 72 65 70 6f 72 | d;..............public.int.repor |
| 7260 | 74 53 69 7a 65 49 6e 42 69 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 | tSizeInBits;..............public |
| 7280 | 20 69 6e 74 20 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 3b 0d 0a 20 20 20 20 20 20 | .int.reportOffsetInBits;........ |
| 72a0 | 20 20 20 20 20 20 5b 53 79 73 74 65 6d 2e 44 69 61 67 6e 6f 73 74 69 63 73 2e 43 6f 64 65 41 6e | ......[System.Diagnostics.CodeAn |
| 72c0 | 61 6c 79 73 69 73 2e 53 75 70 70 72 65 73 73 4d 65 73 73 61 67 65 28 22 4d 69 63 72 6f 73 6f 66 | alysis.SuppressMessage("Microsof |
| 72e0 | 74 2e 4e 61 6d 69 6e 67 22 2c 20 22 43 41 31 37 32 36 3a 55 73 65 50 72 65 66 65 72 72 65 64 54 | t.Naming",."CA1726:UsePreferredT |
| 7300 | 65 72 6d 73 22 2c 20 4d 65 73 73 61 67 65 49 64 20 3d 20 22 66 6c 61 67 73 22 2c 20 4a 75 73 74 | erms",.MessageId.=."flags",.Just |
| 7320 | 69 66 69 63 61 74 69 6f 6e 20 3d 20 22 4e 6f 20 62 65 74 74 65 72 20 74 65 72 6d 20 66 6f 72 20 | ification.=."No.better.term.for. |
| 7340 | 75 6e 64 65 72 6c 79 69 6e 67 20 64 61 74 61 2e 22 29 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | underlying.data.")]............. |
| 7360 | 20 70 75 62 6c 69 63 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 20 66 6c 61 67 73 3b 0d 0a | .public.HIDElementFlags.flags;.. |
| 7380 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 69 65 6c 64 73 20 6f 6e 6c 79 20 72 65 6c | ..............//.Fields.only.rel |
| 73a0 | 65 76 61 6e 74 20 74 6f 20 61 72 72 61 79 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 | evant.to.arrays...............pu |
| 73c0 | 62 6c 69 63 20 69 6e 74 3f 20 75 73 61 67 65 4d 69 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | blic.int?.usageMin;............. |
| 73e0 | 20 70 75 62 6c 69 63 20 69 6e 74 3f 20 75 73 61 67 65 4d 61 78 3b 0d 0a 0d 0a 20 20 20 20 20 20 | .public.int?.usageMax;.......... |
| 7400 | 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 68 61 73 4e 75 6c 6c 53 74 61 74 65 20 3d | ......public.bool.hasNullState.= |
| 7420 | 3e 20 28 66 6c 61 67 73 20 26 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 4e 75 6c 6c 53 | >.(flags.&.HIDElementFlags.NullS |
| 7440 | 74 61 74 65 29 20 3d 3d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 4e 75 6c 6c 53 74 61 | tate).==.HIDElementFlags.NullSta |
| 7460 | 74 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 68 | te;................public.bool.h |
| 7480 | 61 73 50 72 65 66 65 72 72 65 64 53 74 61 74 65 20 3d 3e 20 28 66 6c 61 67 73 20 26 20 48 49 44 | asPreferredState.=>.(flags.&.HID |
| 74a0 | 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 4e 6f 50 72 65 66 65 72 72 65 64 29 20 21 3d 20 48 49 44 | ElementFlags.NoPreferred).!=.HID |
| 74c0 | 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 4e 6f 50 72 65 66 65 72 72 65 64 3b 0d 0a 0d 0a 20 20 20 | ElementFlags.NoPreferred;....... |
| 74e0 | 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 41 72 72 61 79 20 3d 3e 20 | .........public.bool.isArray.=>. |
| 7500 | 28 66 6c 61 67 73 20 26 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 56 61 72 69 61 62 6c | (flags.&.HIDElementFlags.Variabl |
| 7520 | 65 29 20 21 3d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 56 61 72 69 61 62 6c 65 3b 0d | e).!=.HIDElementFlags.Variable;. |
| 7540 | 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 4e 6f 6e | ...............public.bool.isNon |
| 7560 | 4c 69 6e 65 61 72 20 3d 3e 20 28 66 6c 61 67 73 20 26 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 | Linear.=>.(flags.&.HIDElementFla |
| 7580 | 67 73 2e 4e 6f 6e 4c 69 6e 65 61 72 29 20 3d 3d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 | gs.NonLinear).==.HIDElementFlags |
| 75a0 | 2e 4e 6f 6e 4c 69 6e 65 61 72 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 | .NonLinear;................publi |
| 75c0 | 63 20 62 6f 6f 6c 20 69 73 52 65 6c 61 74 69 76 65 20 3d 3e 20 28 66 6c 61 67 73 20 26 20 48 49 | c.bool.isRelative.=>.(flags.&.HI |
| 75e0 | 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 52 65 6c 61 74 69 76 65 29 20 3d 3d 20 48 49 44 45 6c | DElementFlags.Relative).==.HIDEl |
| 7600 | 65 6d 65 6e 74 46 6c 61 67 73 2e 52 65 6c 61 74 69 76 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ementFlags.Relative;............ |
| 7620 | 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 43 6f 6e 73 74 61 6e 74 20 3d 3e 20 28 66 | ....public.bool.isConstant.=>.(f |
| 7640 | 6c 61 67 73 20 26 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 43 6f 6e 73 74 61 6e 74 29 | lags.&.HIDElementFlags.Constant) |
| 7660 | 20 3d 3d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 43 6f 6e 73 74 61 6e 74 3b 0d 0a 0d | .==.HIDElementFlags.Constant;... |
| 7680 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 57 72 61 70 70 | .............public.bool.isWrapp |
| 76a0 | 69 6e 67 20 3d 3e 20 28 66 6c 61 67 73 20 26 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e | ing.=>.(flags.&.HIDElementFlags. |
| 76c0 | 57 72 61 70 29 20 3d 3d 20 48 49 44 45 6c 65 6d 65 6e 74 46 6c 61 67 73 2e 57 72 61 70 3b 0d 0a | Wrap).==.HIDElementFlags.Wrap;.. |
| 76e0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 62 6f 6f 6c 20 69 73 53 69 | ..............internal.bool.isSi |
| 7700 | 67 6e 65 64 20 3d 3e 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 3c 20 30 3b 0d 0a 0d 0a 20 20 20 20 20 | gned.=>.logicalMin.<.0;......... |
| 7720 | 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 66 6c 6f 61 74 20 6d 69 6e 46 6c 6f 61 74 56 61 | .......internal.float.minFloatVa |
| 7740 | 6c 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | lue..............{.............. |
| 7760 | 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | ....get..................{...... |
| 7780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 78 56 61 6c 75 65 20 3d 20 28 | ................var.maxValue.=.( |
| 77a0 | 31 20 3c 3c 20 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 20 2d 20 31 3b 0d 0a 20 20 20 | 1.<<.reportSizeInBits).-.1;..... |
| 77c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 53 69 67 6e 65 64 29 0d 0a | .................if.(isSigned).. |
| 77e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c | ........................return.l |
| 7800 | 6f 67 69 63 61 6c 4d 69 6e 20 2f 20 28 66 6c 6f 61 74 29 28 28 6d 61 78 56 61 6c 75 65 20 2b 20 | ogicalMin./.(float)((maxValue.+. |
| 7820 | 31 29 20 2f 20 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | 1)./.2);......................re |
| 7840 | 74 75 72 6e 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2f 20 28 66 6c 6f 61 74 29 6d 61 78 56 61 6c 75 | turn.logicalMin./.(float)maxValu |
| 7860 | 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 | e;..................}........... |
| 7880 | 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 66 6c 6f | ...}................internal.flo |
| 78a0 | 61 74 20 6d 61 78 46 6c 6f 61 74 56 61 6c 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d | at.maxFloatValue..............{. |
| 78c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 | .................get............ |
| 78e0 | 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 | ......{......................var |
| 7900 | 20 6d 61 78 56 61 6c 75 65 20 3d 20 28 31 20 3c 3c 20 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 | .maxValue.=.(1.<<.reportSizeInBi |
| 7920 | 74 73 29 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | ts).-.1;......................if |
| 7940 | 20 28 69 73 53 69 67 6e 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(isSigned)..................... |
| 7960 | 20 20 20 20 20 72 65 74 75 72 6e 20 6c 6f 67 69 63 61 6c 4d 61 78 20 2f 20 28 66 6c 6f 61 74 29 | .....return.logicalMax./.(float) |
| 7980 | 28 28 6d 61 78 56 61 6c 75 65 20 2b 20 31 29 20 2f 20 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 | ((maxValue.+.1)./.2);........... |
| 79a0 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c 6f 67 69 63 61 6c 4d 61 78 20 2f 20 28 | ...........return.logicalMax./.( |
| 79c0 | 66 6c 6f 61 74 29 6d 61 78 56 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | float)maxValue;................. |
| 79e0 | 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .}..............}............... |
| 7a00 | 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 49 73 28 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 | .public.bool.Is(UsagePage.usageP |
| 7a20 | 61 67 65 2c 20 69 6e 74 20 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | age,.int.usage)..............{.. |
| 7a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 75 73 61 67 65 50 61 67 65 | ................return.usagePage |
| 7a60 | 20 3d 3d 20 74 68 69 73 2e 75 73 61 67 65 50 61 67 65 20 26 26 20 75 73 61 67 65 20 3d 3d 20 74 | .==.this.usagePage.&&.usage.==.t |
| 7a80 | 68 69 73 2e 75 73 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 | his.usage;..............}....... |
| 7aa0 | 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 44 65 74 65 72 6d 69 | .........internal.string.Determi |
| 7ac0 | 6e 65 4e 61 6d 65 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 | neName()..............{......... |
| 7ae0 | 20 20 20 20 20 20 20 20 20 2f 2f 20 49 74 27 73 20 72 61 72 65 20 66 6f 72 20 48 49 44 73 20 74 | .........//.It's.rare.for.HIDs.t |
| 7b00 | 6f 20 64 65 63 6c 61 72 65 20 73 74 72 69 6e 67 20 6e 61 6d 65 73 20 66 6f 72 20 69 74 65 6d 73 | o.declare.string.names.for.items |
| 7b20 | 20 61 6e 64 20 48 49 44 20 64 72 69 76 65 72 73 20 6d 61 79 20 72 65 70 6f 72 74 20 77 65 69 72 | .and.HID.drivers.may.report.weir |
| 7b40 | 64 20 73 74 72 69 6e 67 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70 6c | d.strings..................//.pl |
| 7b60 | 75 73 20 74 68 65 72 65 27 73 20 6e 6f 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 74 68 65 | us.there's.no.guarantee.that.the |
| 7b80 | 73 65 20 6e 61 6d 65 73 20 61 72 65 20 75 6e 69 71 75 65 20 70 65 72 20 69 74 65 6d 2e 20 53 6f | se.names.are.unique.per.item..So |
| 7ba0 | 2c 20 77 65 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 68 65 72 65 20 77 69 74 68 0d 0a 20 20 20 | ,.we.don't.bother.here.with..... |
| 7bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 65 76 69 63 65 2f 64 72 69 76 65 72 2d 73 75 | .............//.device/driver-su |
| 7be0 | 70 70 6c 69 65 64 20 6e 61 6d 65 73 20 61 74 20 61 6c 6c 20 62 75 74 20 72 61 74 68 65 72 20 64 | pplied.names.at.all.but.rather.d |
| 7c00 | 6f 20 6f 75 72 20 6f 77 6e 20 6e 61 6d 69 6e 67 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | o.our.own.naming................ |
| 7c20 | 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 20 | .....switch.(usagePage)......... |
| 7c40 | 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........{...................... |
| 7c60 | 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e 42 75 74 74 6f 6e 3a 0d 0a 20 20 20 20 20 20 20 20 | case.UsagePage.Button:.......... |
| 7c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 20 3d 3d 20 31 29 0d | ................if.(usage.==.1). |
| 7ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | .............................ret |
| 7cc0 | 75 72 6e 20 22 74 72 69 67 67 65 72 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | urn."trigger";.................. |
| 7ce0 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 22 62 75 74 74 6f 6e 7b 75 73 61 67 65 7d 22 3b | ........return.$"button{usage}"; |
| 7d00 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 73 61 67 65 | ......................case.Usage |
| 7d20 | 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 | Page.GenericDesktop:............ |
| 7d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 | ..............if.(usage.==.(int) |
| 7d60 | 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 48 61 74 53 77 69 74 63 68 29 0d 0a 20 20 20 20 20 | GenericDesktop.HatSwitch)....... |
| 7d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 68 | .......................return."h |
| 7da0 | 61 74 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 | at";..........................va |
| 7dc0 | 72 20 74 65 78 74 20 3d 20 28 28 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 29 75 73 61 67 65 29 | r.text.=.((GenericDesktop)usage) |
| 7de0 | 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .ToString();.................... |
| 7e00 | 20 20 20 20 20 20 2f 2f 20 4c 6f 77 65 72 2d 63 61 73 65 20 66 69 72 73 74 20 6c 65 74 74 65 72 | ......//.Lower-case.first.letter |
| 7e20 | 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 20 | ...........................text. |
| 7e40 | 3d 20 63 68 61 72 2e 54 6f 4c 6f 77 65 72 49 6e 76 61 72 69 61 6e 74 28 74 65 78 74 5b 30 5d 29 | =.char.ToLowerInvariant(text[0]) |
| 7e60 | 20 2b 20 74 65 78 74 2e 53 75 62 73 74 72 69 6e 67 28 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 | .+.text.Substring(1);........... |
| 7e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 65 78 74 3b 0d 0a 20 20 20 | ...............return.text;..... |
| 7ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............}.................. |
| 7ec0 | 20 20 2f 2f 20 46 61 6c 6c 62 61 63 6b 20 74 68 61 74 20 67 65 6e 65 72 61 74 65 73 20 61 20 73 | ..//.Fallback.that.generates.a.s |
| 7ee0 | 6f 6d 65 77 68 61 74 20 75 73 65 6c 65 73 73 20 62 75 74 20 61 74 20 6c 65 61 73 74 20 76 65 72 | omewhat.useless.but.at.least.ver |
| 7f00 | 79 20 69 6e 66 6f 72 6d 61 74 69 76 65 20 6e 61 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | y.informative.name.............. |
| 7f20 | 20 20 20 20 20 72 65 74 75 72 6e 20 24 22 55 73 61 67 65 50 61 67 65 28 7b 75 73 61 67 65 50 61 | .....return.$"UsagePage({usagePa |
| 7f40 | 67 65 3a 58 7d 29 20 55 73 61 67 65 28 7b 75 73 61 67 65 3a 58 7d 29 22 3b 0d 0a 20 20 20 20 20 | ge:X}).Usage({usage:X})";....... |
| 7f60 | 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c | .......}................internal |
| 7f80 | 20 73 74 72 69 6e 67 20 44 65 74 65 72 6d 69 6e 65 44 69 73 70 6c 61 79 4e 61 6d 65 28 29 0d 0a | .string.DetermineDisplayName().. |
| 7fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 | ............{..................s |
| 7fc0 | 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | witch.(usagePage)............... |
| 7fe0 | 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 | ...{......................case.U |
| 8000 | 73 61 67 65 50 61 67 65 2e 42 75 74 74 6f 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sagePage.Button:................ |
| 8020 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 20 3d 3d 20 31 29 0d 0a 20 20 20 20 20 | ..........if.(usage.==.1)....... |
| 8040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 54 | .......................return."T |
| 8060 | 72 69 67 67 65 72 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rigger";........................ |
| 8080 | 20 20 72 65 74 75 72 6e 20 24 22 42 75 74 74 6f 6e 20 7b 75 73 61 67 65 7d 22 3b 0d 0a 20 20 20 | ..return.$"Button.{usage}";..... |
| 80a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e | .................case.UsagePage. |
| 80c0 | 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | GenericDesktop:................. |
| 80e0 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 28 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 | .........return.((GenericDesktop |
| 8100 | 29 75 73 61 67 65 29 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | )usage).ToString();............. |
| 8120 | 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e | .....}....................return |
| 8140 | 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 | .null;..............}........... |
| 8160 | 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 62 6f 6f 6c 20 49 73 55 73 61 62 6c 65 45 6c 65 6d 65 | .....internal.bool.IsUsableEleme |
| 8180 | 6e 74 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | nt()..............{............. |
| 81a0 | 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .....switch.(usage)............. |
| 81c0 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 | .....{......................case |
| 81e0 | 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 3a 0d 0a 20 20 20 20 20 20 20 | .(int)GenericDesktop.X:......... |
| 8200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 | .............case.(int)GenericDe |
| 8220 | 73 6b 74 6f 70 2e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sktop.Y:........................ |
| 8240 | 20 20 72 65 74 75 72 6e 20 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 61 67 65 2e | ..return.usagePage.==.UsagePage. |
| 8260 | 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | GenericDesktop;................. |
| 8280 | 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....default:................... |
| 82a0 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 65 74 65 72 6d 69 6e 65 4c 61 79 6f 75 74 28 29 20 | .......return.DetermineLayout(). |
| 82c0 | 21 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 | !=.null;..................}..... |
| 82e0 | 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e | .........}................intern |
| 8300 | 61 6c 20 73 74 72 69 6e 67 20 44 65 74 65 72 6d 69 6e 65 4c 61 79 6f 75 74 28 29 0d 0a 20 20 20 | al.string.DetermineLayout()..... |
| 8320 | 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | .........{..................if.( |
| 8340 | 72 65 70 6f 72 74 54 79 70 65 20 21 3d 20 48 49 44 52 65 70 6f 72 74 54 79 70 65 2e 49 6e 70 75 | reportType.!=.HIDReportType.Inpu |
| 8360 | 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e | t)......................return.n |
| 8380 | 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 54 4f 44 4f | ull;....................////TODO |
| 83a0 | 3a 20 64 65 61 6c 20 77 69 74 68 20 61 72 72 61 79 73 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | :.deal.with.arrays.............. |
| 83c0 | 20 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 | ......switch.(usagePage)........ |
| 83e0 | 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........{..................... |
| 8400 | 20 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e 42 75 74 74 6f 6e 3a 0d 0a 20 20 20 20 20 20 20 | .case.UsagePage.Button:......... |
| 8420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 42 75 74 74 6f 6e 22 | .................return."Button" |
| 8440 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 55 73 61 67 | ;......................case.Usag |
| 8460 | 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 | ePage.GenericDesktop:........... |
| 8480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 29 0d 0a 20 | ...............switch.(usage)... |
| 84a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | .......................{........ |
| 84c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 | ......................case.(int) |
| 84e0 | 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | GenericDesktop.X:............... |
| 8500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 | ...............case.(int)Generic |
| 8520 | 44 65 73 6b 74 6f 70 2e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Desktop.Y:...................... |
| 8540 | 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 | ........case.(int)GenericDesktop |
| 8560 | 2e 5a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .Z:............................. |
| 8580 | 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 78 3a 0d 0a 20 | .case.(int)GenericDesktop.Rx:... |
| 85a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 | ...........................case. |
| 85c0 | 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 79 3a 0d 0a 20 20 20 20 20 20 20 | (int)GenericDesktop.Ry:......... |
| 85e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 | .....................case.(int)G |
| 8600 | 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | enericDesktop.Rz:............... |
| 8620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 | ...............case.(int)Generic |
| 8640 | 44 65 73 6b 74 6f 70 2e 56 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Desktop.Vx:..................... |
| 8660 | 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f | .........case.(int)GenericDeskto |
| 8680 | 70 2e 56 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.Vy:........................... |
| 86a0 | 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 7a 3a 0d | ...case.(int)GenericDesktop.Vz:. |
| 86c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 | .............................cas |
| 86e0 | 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 78 3a 0d 0a 20 20 20 | e.(int)GenericDesktop.Vbrx:..... |
| 8700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 | .........................case.(i |
| 8720 | 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 79 3a 0d 0a 20 20 20 20 20 20 20 | nt)GenericDesktop.Vbry:......... |
| 8740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 | .....................case.(int)G |
| 8760 | 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | enericDesktop.Vbrz:............. |
| 8780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 | .................case.(int)Gener |
| 87a0 | 69 63 44 65 73 6b 74 6f 70 2e 53 6c 69 64 65 72 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | icDesktop.Slider:............... |
| 87c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 | ...............case.(int)Generic |
| 87e0 | 44 65 73 6b 74 6f 70 2e 44 69 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Desktop.Dial:................... |
| 8800 | 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b | ...........case.(int)GenericDesk |
| 8820 | 74 6f 70 2e 57 68 65 65 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | top.Wheel:...................... |
| 8840 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 41 78 69 73 22 3b 0d 0a 0d 0a 20 20 | ............return."Axis";...... |
| 8860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 | ..........................case.( |
| 8880 | 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 53 65 6c 65 63 74 3a 0d 0a 20 20 20 20 | int)GenericDesktop.Select:...... |
| 88a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e | ........................case.(in |
| 88c0 | 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 53 74 61 72 74 3a 0d 0a 20 20 20 20 20 20 20 | t)GenericDesktop.Start:......... |
| 88e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 | .....................case.(int)G |
| 8900 | 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 70 61 64 55 70 3a 0d 0a 20 20 20 20 20 20 20 20 20 | enericDesktop.DpadUp:........... |
| 8920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| 8940 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 70 61 64 44 6f 77 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 | ericDesktop.DpadDown:........... |
| 8960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| 8980 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 70 61 64 4c 65 66 74 3a 0d 0a 20 20 20 20 20 20 20 20 20 | ericDesktop.DpadLeft:........... |
| 89a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| 89c0 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 70 61 64 52 69 67 68 74 3a 0d 0a 20 20 20 20 20 20 20 20 | ericDesktop.DpadRight:.......... |
| 89e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 | ........................return." |
| 8a00 | 42 75 74 74 6f 6e 22 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Button";........................ |
| 8a20 | 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 | ........case.(int)GenericDesktop |
| 8a40 | 2e 48 61 74 53 77 69 74 63 68 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .HatSwitch:..................... |
| 8a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 73 75 70 70 6f 72 74 20 68 61 74 | .............//.Only.support.hat |
| 8a80 | 20 73 77 69 74 63 68 65 73 20 77 69 74 68 20 38 20 64 69 72 65 63 74 69 6f 6e 73 2e 0d 0a 20 20 | .switches.with.8.directions..... |
| 8aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | ..............................if |
| 8ac0 | 20 28 6c 6f 67 69 63 61 6c 4d 61 78 20 2d 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 31 20 3d 3d | .(logicalMax.-.logicalMin.+.1.== |
| 8ae0 | 20 38 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .8)............................. |
| 8b00 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 44 70 61 64 22 3b 0d 0a 20 20 20 20 20 20 20 | .........return."Dpad";......... |
| 8b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d | .........................break;. |
| 8b40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 | .........................}...... |
| 8b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 | ....................break;...... |
| 8b80 | 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............}................... |
| 8ba0 | 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a | .return.null;..............}.... |
| 8bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 46 6f 75 72 43 43 20 44 65 74 65 | ............internal.FourCC.Dete |
| 8be0 | 72 6d 69 6e 65 46 6f 72 6d 61 74 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 | rmineFormat()..............{.... |
| 8c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 72 65 70 6f 72 74 53 69 7a 65 | ..............switch.(reportSize |
| 8c20 | 49 6e 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | InBits)..................{...... |
| 8c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 38 3a 0d 0a 20 20 20 20 20 20 20 | ................case.8:......... |
| 8c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 53 69 67 6e 65 64 29 0d 0a | .................if.(isSigned).. |
| 8c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | ............................retu |
| 8ca0 | 72 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 53 42 79 74 65 3b 0d | rn.InputStateBlock.FormatSByte;. |
| 8cc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | .........................return. |
| 8ce0 | 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 42 79 74 65 3b 0d 0a 20 20 20 | InputStateBlock.FormatByte;..... |
| 8d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 31 36 3a 0d 0a 20 20 20 20 20 | .................case.16:....... |
| 8d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 53 69 67 6e 65 64 29 | ...................if.(isSigned) |
| 8d40 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | ..............................re |
| 8d60 | 74 75 72 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 53 68 6f 72 74 | turn.InputStateBlock.FormatShort |
| 8d80 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 | ;..........................retur |
| 8da0 | 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 55 53 68 6f 72 74 3b 0d | n.InputStateBlock.FormatUShort;. |
| 8dc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 33 32 3a 0d 0a 20 | .....................case.32:... |
| 8de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 53 69 67 | .......................if.(isSig |
| 8e00 | 6e 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ned)............................ |
| 8e20 | 20 20 72 65 74 75 72 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 49 | ..return.InputStateBlock.FormatI |
| 8e40 | 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | nt;..........................ret |
| 8e60 | 75 72 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 55 49 6e 74 3b 0d | urn.InputStateBlock.FormatUInt;. |
| 8e80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0d 0a 20 | .....................default:... |
| 8ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 47 65 6e 65 72 69 | .......................//.Generi |
| 8ec0 | 63 20 62 69 74 66 69 65 6c 64 20 76 61 6c 75 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | c.bitfield.value................ |
| 8ee0 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 | ...........return.InputStateBloc |
| 8f00 | 6b 2e 46 6f 72 6d 61 74 42 69 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d | k.FormatBit;..................}. |
| 8f20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | .............}................in |
| 8f40 | 74 65 72 6e 61 6c 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 5b 5d 20 44 65 74 65 72 6d 69 6e | ternal.InternedString[].Determin |
| 8f60 | 65 55 73 61 67 65 73 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | eUsages()..............{........ |
| 8f80 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 | ..........if.(usagePage.==.Usage |
| 8fa0 | 50 61 67 65 2e 42 75 74 74 6f 6e 20 26 26 20 75 73 61 67 65 20 3d 3d 20 31 29 0d 0a 20 20 20 20 | Page.Button.&&.usage.==.1)...... |
| 8fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 5b 5d 20 7b 43 6f | ................return.new[].{Co |
| 8fe0 | 6d 6d 6f 6e 55 73 61 67 65 73 2e 50 72 69 6d 61 72 79 54 72 69 67 67 65 72 2c 20 43 6f 6d 6d 6f | mmonUsages.PrimaryTrigger,.Commo |
| 9000 | 6e 55 73 61 67 65 73 2e 50 72 69 6d 61 72 79 41 63 74 69 6f 6e 7d 3b 0d 0a 20 20 20 20 20 20 20 | nUsages.PrimaryAction};......... |
| 9020 | 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 67 65 50 | .........if.(usagePage.==.UsageP |
| 9040 | 61 67 65 2e 42 75 74 74 6f 6e 20 26 26 20 75 73 61 67 65 20 3d 3d 20 32 29 0d 0a 20 20 20 20 20 | age.Button.&&.usage.==.2)....... |
| 9060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 5b 5d 20 7b 43 6f 6d | ...............return.new[].{Com |
| 9080 | 6d 6f 6e 55 73 61 67 65 73 2e 53 65 63 6f 6e 64 61 72 79 54 72 69 67 67 65 72 2c 20 43 6f 6d 6d | monUsages.SecondaryTrigger,.Comm |
| 90a0 | 6f 6e 55 73 61 67 65 73 2e 53 65 63 6f 6e 64 61 72 79 41 63 74 69 6f 6e 7d 3b 0d 0a 20 20 20 20 | onUsages.SecondaryAction};...... |
| 90c0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 50 61 67 65 20 3d 3d 20 55 73 61 | ............if.(usagePage.==.Usa |
| 90e0 | 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 26 26 20 75 73 61 67 65 20 3d | gePage.GenericDesktop.&&.usage.= |
| 9100 | 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 7a 29 0d 0a 20 20 20 20 20 | =.(int)GenericDesktop.Rz)....... |
| 9120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 5b 5d 20 7b 20 43 6f | ...............return.new[].{.Co |
| 9140 | 6d 6d 6f 6e 55 73 61 67 65 73 2e 54 77 69 73 74 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | mmonUsages.Twist.};............. |
| 9160 | 20 20 20 20 20 2f 2f 2f 2f 54 4f 44 4f 3a 20 61 73 73 69 67 6e 20 68 61 74 73 77 69 74 63 68 20 | .....////TODO:.assign.hatswitch. |
| 9180 | 75 73 61 67 65 20 74 6f 20 66 69 72 73 74 20 61 6e 64 20 6f 6e 6c 79 20 74 6f 20 66 69 72 73 74 | usage.to.first.and.only.to.first |
| 91a0 | 20 68 61 74 73 77 69 74 63 68 20 65 6c 65 6d 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .hatswitch.element.............. |
| 91c0 | 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d | ....return.null;..............}. |
| 91e0 | 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 44 | ...............internal.string.D |
| 9200 | 65 74 65 72 6d 69 6e 65 50 61 72 61 6d 65 74 65 72 73 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | etermineParameters()............ |
| 9220 | 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 50 61 | ..{..................if.(usagePa |
| 9240 | 67 65 20 3d 3d 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 29 0d | ge.==.UsagePage.GenericDesktop). |
| 9260 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................{.............. |
| 9280 | 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 | ........switch.(usage).......... |
| 92a0 | 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............{................... |
| 92c0 | 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e | .......case.(int)GenericDesktop. |
| 92e0 | 58 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 | X:..........................case |
| 9300 | 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 5a 3a 0d 0a 20 20 20 20 20 20 20 | .(int)GenericDesktop.Z:......... |
| 9320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 | .................case.(int)Gener |
| 9340 | 69 63 44 65 73 6b 74 6f 70 2e 52 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | icDesktop.Rx:................... |
| 9360 | 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e | .......case.(int)GenericDesktop. |
| 9380 | 52 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 | Rz:..........................cas |
| 93a0 | 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 78 3a 0d 0a 20 20 20 20 20 | e.(int)GenericDesktop.Vx:....... |
| 93c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| 93e0 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ericDesktop.Vz:................. |
| 9400 | 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f | .........case.(int)GenericDeskto |
| 9420 | 70 2e 56 62 72 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.Vbrx:......................... |
| 9440 | 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 7a 3a 0d | .case.(int)GenericDesktop.Vbrz:. |
| 9460 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 | .........................case.(i |
| 9480 | 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 53 6c 69 64 65 72 3a 0d 0a 20 20 20 20 20 | nt)GenericDesktop.Slider:....... |
| 94a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| 94c0 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 69 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ericDesktop.Dial:............... |
| 94e0 | 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b | ...........case.(int)GenericDesk |
| 9500 | 74 6f 70 2e 57 68 65 65 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | top.Wheel:...................... |
| 9520 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 44 65 74 65 72 6d 69 6e 65 41 78 69 73 4e 6f 72 6d | ........return.DetermineAxisNorm |
| 9540 | 61 6c 69 7a 61 74 69 6f 6e 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 | alizationParameters();.......... |
| 9560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 75 72 20 59 73 20 74 65 6e 64 | ..................//.Our.Ys.tend |
| 9580 | 20 74 6f 20 62 65 20 74 68 65 20 6f 70 70 6f 73 69 74 65 20 6f 66 20 77 68 61 74 20 6d 6f 73 74 | .to.be.the.opposite.of.what.most |
| 95a0 | 20 48 49 44 73 20 64 6f 2e 20 57 65 20 63 61 6e 27 74 20 62 65 20 73 75 72 65 20 61 6e 64 20 6d | .HIDs.do..We.can't.be.sure.and.m |
| 95c0 | 61 79 20 77 65 6c 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ay.well......................... |
| 95e0 | 20 2f 2f 20 65 6e 64 20 75 70 20 69 6e 76 65 72 74 69 6e 67 20 61 20 76 61 6c 75 65 20 68 65 72 | .//.end.up.inverting.a.value.her |
| 9600 | 65 20 77 68 65 6e 20 77 65 20 73 68 6f 75 6c 64 6e 27 74 20 62 75 74 20 61 73 20 61 6c 77 61 79 | e.when.we.shouldn't.but.as.alway |
| 9620 | 73 20 77 69 74 68 20 74 68 65 20 48 49 44 20 66 61 6c 6c 62 61 63 6b 2c 0d 0a 20 20 20 20 20 20 | s.with.the.HID.fallback,........ |
| 9640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6c 65 74 27 73 20 74 72 79 20 74 | ..................//.let's.try.t |
| 9660 | 6f 20 64 6f 20 77 68 61 74 20 2a 73 65 65 6d 73 2a 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 74 | o.do.what.*seems*.to.work.with.t |
| 9680 | 68 65 20 6d 61 6a 6f 72 69 74 79 20 6f 66 20 64 65 76 69 63 65 73 2e 0d 0a 20 20 20 20 20 20 20 | he.majority.of.devices.......... |
| 96a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 | .................case.(int)Gener |
| 96c0 | 69 63 44 65 73 6b 74 6f 70 2e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | icDesktop.Y:.................... |
| 96e0 | 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 | ......case.(int)GenericDesktop.R |
| 9700 | 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 | y:..........................case |
| 9720 | 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 79 3a 0d 0a 20 20 20 20 20 20 | .(int)GenericDesktop.Vy:........ |
| 9740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 | ..................case.(int)Gene |
| 9760 | 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ricDesktop.Vbry:................ |
| 9780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 74 72 69 6e 67 48 65 6c 70 65 | ..............return.StringHelpe |
| 97a0 | 72 73 2e 4a 6f 69 6e 28 22 2c 22 2c 20 22 69 6e 76 65 72 74 22 2c 20 44 65 74 65 72 6d 69 6e 65 | rs.Join(",",."invert",.Determine |
| 97c0 | 41 78 69 73 4e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 50 61 72 61 6d 65 74 65 72 73 28 29 29 3b 0d | AxisNormalizationParameters());. |
| 97e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 | .....................}.......... |
| 9800 | 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | ........}....................ret |
| 9820 | 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 | urn.null;..............}........ |
| 9840 | 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 73 74 72 69 6e 67 20 44 65 74 65 72 6d 69 6e 65 | ........private.string.Determine |
| 9860 | 41 78 69 73 4e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 50 61 72 61 6d 65 74 65 72 73 28 29 0d 0a 20 | AxisNormalizationParameters()... |
| 9880 | 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | ...........{..................// |
| 98a0 | 20 49 66 20 77 65 20 68 61 76 65 20 6d 69 6e 2f 6d 61 78 20 62 6f 75 6e 64 73 20 6f 6e 20 74 68 | .If.we.have.min/max.bounds.on.th |
| 98c0 | 65 20 61 78 69 73 20 76 61 6c 75 65 73 2c 20 73 65 74 20 75 70 20 6e 6f 72 6d 61 6c 69 7a 61 74 | e.axis.values,.set.up.normalizat |
| 98e0 | 69 6f 6e 20 6f 6e 20 74 68 65 20 61 78 69 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ion.on.the.axis................. |
| 9900 | 20 20 2f 2f 20 4e 4f 54 45 3a 20 57 65 20 70 75 74 20 74 68 65 20 63 65 6e 74 65 72 20 69 6e 20 | ..//.NOTE:.We.put.the.center.in. |
| 9920 | 74 68 65 20 6d 69 64 64 6c 65 20 62 65 74 77 65 65 6e 20 6d 69 6e 2f 6d 61 78 20 61 73 20 77 65 | the.middle.between.min/max.as.we |
| 9940 | 20 63 61 6e 27 74 20 6b 6e 6f 77 20 77 68 65 72 65 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 | .can't.know.where.the........... |
| 9960 | 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 72 65 73 74 69 6e 67 20 70 6f 69 6e 74 20 6f 66 | .......//.......resting.point.of |
| 9980 | 20 74 68 65 20 61 78 69 73 20 69 73 20 28 6d 61 79 20 62 65 20 6f 6e 20 6d 69 6e 20 69 66 20 69 | .the.axis.is.(may.be.on.min.if.i |
| 99a0 | 74 27 73 20 61 20 74 72 69 67 67 65 72 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 29 2e 0d 0a 20 20 | t's.a.trigger,.for.example)..... |
| 99c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6c 6f 67 69 63 61 6c 4d 69 6e 20 3d 3d 20 | ..............if.(logicalMin.==. |
| 99e0 | 30 20 26 26 20 6c 6f 67 69 63 61 6c 4d 61 78 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 | 0.&&.logicalMax.==.0)........... |
| 9a00 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 6e 6f 72 6d 61 6c 69 7a 65 2c 6e 6f 72 | ...........return."normalize,nor |
| 9a20 | 6d 61 6c 69 7a 65 4d 69 6e 3d 30 2c 6e 6f 72 6d 61 6c 69 7a 65 4d 61 78 3d 31 2c 6e 6f 72 6d 61 | malizeMin=0,normalizeMax=1,norma |
| 9a40 | 6c 69 7a 65 5a 65 72 6f 3d 30 2e 35 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lizeZero=0.5";.................. |
| 9a60 | 76 61 72 20 6d 69 6e 20 3d 20 6d 69 6e 46 6c 6f 61 74 56 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 | var.min.=.minFloatValue;........ |
| 9a80 | 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 78 20 3d 20 6d 61 78 46 6c 6f 61 74 56 61 6c 75 | ..........var.max.=.maxFloatValu |
| 9aa0 | 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 6f 20 6e 6f 74 68 69 6e | e;..................//.Do.nothin |
| 9ac0 | 67 20 69 66 20 72 65 73 75 6c 74 20 6f 66 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f | g.if.result.of.floating-point.co |
| 9ae0 | 6e 76 65 72 73 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20 6e 6f 72 6d 61 6c 69 7a 65 64 2e 0d | nversion.is.already.normalized.. |
| 9b00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 4d 61 74 68 66 2e 41 70 70 72 6f | .................if.(Mathf.Appro |
| 9b20 | 78 69 6d 61 74 65 6c 79 28 30 66 2c 20 6d 69 6e 29 20 26 26 20 4d 61 74 68 66 2e 41 70 70 72 6f | ximately(0f,.min).&&.Mathf.Appro |
| 9b40 | 78 69 6d 61 74 65 6c 79 28 30 66 2c 20 6d 61 78 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ximately(0f,.max)).............. |
| 9b60 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ........return.null;............ |
| 9b80 | 20 20 20 20 20 20 76 61 72 20 7a 65 72 6f 20 3d 20 6d 69 6e 20 2b 20 28 6d 61 78 20 2d 20 6d 69 | ......var.zero.=.min.+.(max.-.mi |
| 9ba0 | 6e 29 20 2f 20 32 2e 30 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 | n)./.2.0f;..................retu |
| 9bc0 | 72 6e 20 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 28 43 75 6c 74 75 72 65 49 6e 66 6f 2e 49 6e 76 | rn.string.Format(CultureInfo.Inv |
| 9be0 | 61 72 69 61 6e 74 43 75 6c 74 75 72 65 2c 20 22 6e 6f 72 6d 61 6c 69 7a 65 2c 6e 6f 72 6d 61 6c | ariantCulture,."normalize,normal |
| 9c00 | 69 7a 65 4d 69 6e 3d 7b 30 7d 2c 6e 6f 72 6d 61 6c 69 7a 65 4d 61 78 3d 7b 31 7d 2c 6e 6f 72 6d | izeMin={0},normalizeMax={1},norm |
| 9c20 | 61 6c 69 7a 65 5a 65 72 6f 3d 7b 32 7d 22 2c 20 6d 69 6e 2c 20 6d 61 78 2c 20 7a 65 72 6f 29 3b | alizeZero={2}",.min,.max,.zero); |
| 9c40 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 | ..............}................i |
| 9c60 | 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 44 65 74 65 72 6d 69 6e 65 50 72 6f 63 65 73 73 6f | nternal.string.DetermineProcesso |
| 9c80 | 72 73 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | rs()..............{............. |
| 9ca0 | 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 20 20 20 | .....switch.(usagePage)......... |
| 9cc0 | 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........{...................... |
| 9ce0 | 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 3a 0d 0a | case.UsagePage.GenericDesktop:.. |
| 9d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 | ........................switch.( |
| 9d20 | 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | usage).......................... |
| 9d40 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | {..............................c |
| 9d60 | 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 3a 0d 0a 20 20 20 20 | ase.(int)GenericDesktop.X:...... |
| 9d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e | ........................case.(in |
| 9da0 | 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | t)GenericDesktop.Y:............. |
| 9dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 | .................case.(int)Gener |
| 9de0 | 69 63 44 65 73 6b 74 6f 70 2e 5a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | icDesktop.Z:.................... |
| 9e00 | 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 | ..........case.(int)GenericDeskt |
| 9e20 | 6f 70 2e 52 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | op.Rx:.......................... |
| 9e40 | 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 79 3a | ....case.(int)GenericDesktop.Ry: |
| 9e60 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 | ..............................ca |
| 9e80 | 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 7a 3a 0d 0a 20 20 20 20 | se.(int)GenericDesktop.Rz:...... |
| 9ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e | ........................case.(in |
| 9ec0 | 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 | t)GenericDesktop.Vx:............ |
| 9ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 | ..................case.(int)Gene |
| 9f00 | 72 69 63 44 65 73 6b 74 6f 70 2e 56 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ricDesktop.Vy:.................. |
| 9f20 | 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 | ............case.(int)GenericDes |
| 9f40 | 6b 74 6f 70 2e 56 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ktop.Vz:........................ |
| 9f60 | 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 | ......case.(int)GenericDesktop.V |
| 9f80 | 62 72 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | brx:............................ |
| 9fa0 | 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 79 3a | ..case.(int)GenericDesktop.Vbry: |
| 9fc0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 | ..............................ca |
| 9fe0 | 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 7a 3a 0d 0a 20 20 | se.(int)GenericDesktop.Vbrz:.... |
| a000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 | ..........................case.( |
| a020 | 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 53 6c 69 64 65 72 3a 0d 0a 20 20 20 20 | int)GenericDesktop.Slider:...... |
| a040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e | ........................case.(in |
| a060 | 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 69 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 | t)GenericDesktop.Dial:.......... |
| a080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 | ....................case.(int)Ge |
| a0a0 | 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 57 68 65 65 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | nericDesktop.Wheel:............. |
| a0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 61 78 69 | .....................return."axi |
| a0e0 | 73 44 65 61 64 7a 6f 6e 65 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sDeadzone";..................... |
| a100 | 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....}.......................... |
| a120 | 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 | break;..................}....... |
| a140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 | .............return.null;....... |
| a160 | 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c | .......}................internal |
| a180 | 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 20 44 65 74 65 72 6d 69 6e 65 44 65 66 61 75 6c 74 | .PrimitiveValue.DetermineDefault |
| a1a0 | 53 74 61 74 65 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 | State()..............{.......... |
| a1c0 | 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 75 73 61 67 65 50 61 67 65 29 0d 0a 20 20 20 20 | ........switch.(usagePage)...... |
| a1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............{................... |
| a200 | 20 20 20 63 61 73 65 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 | ...case.UsagePage.GenericDesktop |
| a220 | 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 | :..........................switc |
| a240 | 68 20 28 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h.(usage)....................... |
| a260 | 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...{............................ |
| a280 | 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 48 61 74 53 77 | ..case.(int)GenericDesktop.HatSw |
| a2a0 | 69 74 63 68 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | itch:........................... |
| a2c0 | 20 20 20 20 20 20 20 2f 2f 20 46 69 67 75 72 65 20 6f 75 74 20 6e 75 6c 6c 20 73 74 61 74 65 20 | .......//.Figure.out.null.state. |
| a2e0 | 66 6f 72 20 68 61 74 20 73 77 69 74 63 68 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | for.hat.switches................ |
| a300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 68 61 73 4e 75 6c 6c 53 74 | ...................if.(hasNullSt |
| a320 | 61 74 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ate)............................ |
| a340 | 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......{......................... |
| a360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 66 6f | .............//.We're.looking.fo |
| a380 | 72 20 61 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 6f 75 74 2d 6f 66 2d 72 61 6e 67 65 20 77 | r.a.value.that.is.out-of-range.w |
| a3a0 | 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ith.respect.to.the.............. |
| a3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6c 6f 67 69 63 | ........................//.logic |
| a3e0 | 61 6c 20 6d 69 6e 20 61 6e 64 20 6d 61 78 20 62 75 74 20 69 6e 20 72 61 6e 67 65 20 77 69 74 68 | al.min.and.max.but.in.range.with |
| a400 | 20 72 65 73 70 65 63 74 20 74 6f 20 77 68 61 74 20 77 65 20 63 61 6e 20 73 74 6f 72 65 0d 0a 20 | .respect.to.what.we.can.store... |
| a420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a440 | 20 20 20 2f 2f 20 69 6e 20 74 68 65 20 62 69 74 73 20 77 65 20 68 61 76 65 2e 0d 0a 0d 0a 20 20 | ...//.in.the.bits.we.have....... |
| a460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a480 | 20 20 2f 2f 20 54 65 73 74 20 6c 6f 77 65 72 20 62 6f 75 6e 64 2e 0d 0a 20 20 20 20 20 20 20 20 | ..//.Test.lower.bound........... |
| a4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 | ............................var. |
| a4c0 | 6d 69 6e 4d 69 6e 75 73 4f 6e 65 20 3d 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2d 20 31 3b 0d 0a 20 | minMinusOne.=.logicalMin.-.1;... |
| a4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a500 | 20 20 20 69 66 20 28 6d 69 6e 4d 69 6e 75 73 4f 6e 65 20 3e 3d 20 30 29 0d 0a 20 20 20 20 20 20 | ...if.(minMinusOne.>=.0)........ |
| a520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a540 | 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 28 6d 69 6e 4d | ..return.new.PrimitiveValue(minM |
| a560 | 69 6e 75 73 4f 6e 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inusOne);....................... |
| a580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 65 73 74 20 75 70 70 65 72 20 62 | .................//.Test.upper.b |
| a5a0 | 6f 75 6e 64 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ound............................ |
| a5c0 | 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 78 50 6c 75 73 4f 6e 65 20 3d 20 6c 6f 67 69 | ...........var.maxPlusOne.=.logi |
| a5e0 | 63 61 6c 4d 61 78 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | calMax.+.1;..................... |
| a600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 78 50 6c 75 73 4f 6e 65 20 | .................if.(maxPlusOne. |
| a620 | 3c 3d 20 28 31 20 3c 3c 20 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 20 2d 20 31 29 0d | <=.(1.<<.reportSizeInBits).-.1). |
| a640 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a660 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 72 69 6d 69 74 69 76 65 56 61 6c | .........return.new.PrimitiveVal |
| a680 | 75 65 28 6d 61 78 50 6c 75 73 4f 6e 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ue(maxPlusOne);................. |
| a6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................}.............. |
| a6c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 0d 0a 20 20 | ....................break;...... |
| a6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 | ..........................case.( |
| a700 | 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 58 3a 0d 0a 20 20 20 20 20 20 20 20 20 | int)GenericDesktop.X:........... |
| a720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| a740 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 59 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ericDesktop.Y:.................. |
| a760 | 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 | ............case.(int)GenericDes |
| a780 | 6b 74 6f 70 2e 5a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ktop.Z:......................... |
| a7a0 | 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 78 | .....case.(int)GenericDesktop.Rx |
| a7c0 | 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | :..............................c |
| a7e0 | 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 79 3a 0d 0a 20 20 20 | ase.(int)GenericDesktop.Ry:..... |
| a800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 | .........................case.(i |
| a820 | 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 52 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 | nt)GenericDesktop.Rz:........... |
| a840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| a860 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 78 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ericDesktop.Vx:................. |
| a880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 | .............case.(int)GenericDe |
| a8a0 | 73 6b 74 6f 70 2e 56 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sktop.Vy:....................... |
| a8c0 | 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e | .......case.(int)GenericDesktop. |
| a8e0 | 56 7a 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Vz:............................. |
| a900 | 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 78 3a 0d | .case.(int)GenericDesktop.Vbrx:. |
| a920 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 | .............................cas |
| a940 | 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 79 3a 0d 0a 20 20 20 | e.(int)GenericDesktop.Vbry:..... |
| a960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 | .........................case.(i |
| a980 | 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 56 62 72 7a 3a 0d 0a 20 20 20 20 20 20 20 | nt)GenericDesktop.Vbrz:......... |
| a9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 | .....................case.(int)G |
| a9c0 | 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 53 6c 69 64 65 72 3a 0d 0a 20 20 20 20 20 20 20 20 20 | enericDesktop.Slider:........... |
| a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e | ...................case.(int)Gen |
| aa00 | 65 72 69 63 44 65 73 6b 74 6f 70 2e 44 69 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ericDesktop.Dial:............... |
| aa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 28 69 6e 74 29 47 65 6e 65 72 69 63 | ...............case.(int)Generic |
| aa40 | 44 65 73 6b 74 6f 70 2e 57 68 65 65 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Desktop.Wheel:.................. |
| aa60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 6f 72 20 61 78 65 73 20 74 68 61 74 | ................//.For.axes.that |
| aa80 | 20 61 72 65 20 2a 4e 4f 54 2a 20 73 74 6f 72 65 64 20 61 73 20 73 69 67 6e 65 64 20 76 61 6c 75 | .are.*NOT*.stored.as.signed.valu |
| aaa0 | 65 73 20 28 77 68 69 63 68 20 77 65 20 61 73 73 75 6d 65 20 61 72 65 0d 0a 20 20 20 20 20 20 20 | es.(which.we.assume.are......... |
| aac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 65 6e 74 | .........................//.cent |
| aae0 | 65 72 65 64 20 6f 6e 20 30 29 2c 20 70 75 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 74 61 74 | ered.on.0),.put.the.default.stat |
| ab00 | 65 20 69 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 6d 69 6e 20 | e.in.the.middle.between.the.min. |
| ab20 | 61 6e 64 20 6d 61 78 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | and.max......................... |
| ab40 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 53 69 67 6e 65 64 29 0d 0a 20 20 20 20 20 20 | ..........if.(!isSigned)........ |
| ab60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 | ..........................{..... |
| ab80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| aba0 | 20 76 61 72 20 64 65 66 61 75 6c 74 56 61 6c 75 65 20 3d 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b | .var.defaultValue.=.logicalMin.+ |
| abc0 | 20 28 6c 6f 67 69 63 61 6c 4d 61 78 20 2d 20 6c 6f 67 69 63 61 6c 4d 69 6e 29 20 2f 20 32 3b 0d | .(logicalMax.-.logicalMin)./.2;. |
| abe0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ac00 | 20 20 20 20 20 69 66 20 28 64 65 66 61 75 6c 74 56 61 6c 75 65 20 21 3d 20 30 29 0d 0a 20 20 20 | .....if.(defaultValue.!=.0)..... |
| ac20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ac40 | 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 28 64 | .....return.new.PrimitiveValue(d |
| ac60 | 65 66 61 75 6c 74 56 61 6c 75 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | efaultValue);................... |
| ac80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...............}................ |
| aca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 | ..................break;........ |
| acc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ..................}............. |
| ace0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .............break;............. |
| ad00 | 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e | .....}....................return |
| ad20 | 20 6e 65 77 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 | .new.PrimitiveValue();.......... |
| ad40 | 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 76 6f | ....}................internal.vo |
| ad60 | 69 64 20 41 64 64 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 73 28 72 65 66 20 48 49 44 45 6c 65 6d 65 | id.AddChildControls(ref.HIDEleme |
| ad80 | 6e 74 44 65 73 63 72 69 70 74 6f 72 20 65 6c 65 6d 65 6e 74 2c 20 73 74 72 69 6e 67 20 63 6f 6e | ntDescriptor.element,.string.con |
| ada0 | 74 72 6f 6c 4e 61 6d 65 2c 20 72 65 66 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 | trolName,.ref.InputControlLayout |
| adc0 | 2e 42 75 69 6c 64 65 72 20 62 75 69 6c 64 65 72 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b | .Builder.builder)..............{ |
| ade0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 75 73 61 67 65 50 61 67 65 20 | ..................if.(usagePage. |
| ae00 | 3d 3d 20 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 26 26 20 75 | ==.UsagePage.GenericDesktop.&&.u |
| ae20 | 73 61 67 65 20 3d 3d 20 28 69 6e 74 29 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2e 48 61 74 53 | sage.==.(int)GenericDesktop.HatS |
| ae40 | 77 69 74 63 68 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 | witch)..................{....... |
| ae60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 72 65 20 64 6f 65 73 6e 27 74 20 | ...............//.There.doesn't. |
| ae80 | 73 65 65 6d 20 74 6f 20 62 65 20 65 6e 6f 75 67 68 20 73 70 65 63 69 66 69 63 69 74 79 20 69 6e | seem.to.be.enough.specificity.in |
| aea0 | 20 74 68 65 20 48 49 44 20 73 70 65 63 20 74 6f 20 72 65 6c 69 61 62 6c 79 20 66 69 67 75 72 65 | .the.HID.spec.to.reliably.figure |
| aec0 | 20 74 68 69 73 20 63 61 73 65 20 6f 75 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .this.case.out.................. |
| aee0 | 20 20 20 20 20 2f 2f 20 41 6c 62 65 69 74 20 64 65 74 61 69 6c 20 69 73 20 73 63 61 72 63 65 2c | .....//.Albeit.detail.is.scarce, |
| af00 | 20 77 65 20 63 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 6d 61 6b 65 20 73 6f 6d 65 20 69 6e 66 | .we.could.probably.make.some.inf |
| af20 | 65 72 65 6e 63 65 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 75 6e 69 74 20 73 65 74 74 69 6e | erences.based.on.the.unit.settin |
| af40 | 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 66 20 74 68 65 | g......................//.of.the |
| af60 | 20 68 61 74 20 73 77 69 74 63 68 20 62 75 74 20 65 76 65 6e 20 74 68 65 6e 20 69 74 20 73 65 65 | .hat.switch.but.even.then.it.see |
| af80 | 6d 73 20 74 68 65 72 65 27 73 20 6d 75 63 68 20 6c 65 66 74 20 74 6f 20 74 68 65 20 77 68 69 6d | ms.there's.much.left.to.the.whim |
| afa0 | 73 20 6f 66 20 61 20 68 61 72 64 77 61 72 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 2e 0d 0a 20 | s.of.a.hardware.manufacturer.... |
| afc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 45 76 65 6e 20 69 66 20 77 65 | ...................//.Even.if.we |
| afe0 | 20 6b 6e 6f 77 20 76 61 6c 75 65 73 20 67 6f 20 63 6c 6f 63 6b 77 69 73 65 20 28 48 49 44 20 73 | .know.values.go.clockwise.(HID.s |
| b000 | 70 65 63 20 64 6f 65 73 6e 27 74 20 72 65 61 6c 6c 79 20 73 61 79 3b 20 70 72 6f 62 61 62 6c 79 | pec.doesn't.really.say;.probably |
| b020 | 20 63 61 6e 20 62 65 20 69 6e 66 65 72 72 65 64 20 66 72 6f 6d 20 75 6e 69 74 29 2c 0d 0a 20 20 | .can.be.inferred.from.unit),.... |
| b040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 68 69 63 68 20 64 69 72 65 63 | ..................//.which.direc |
| b060 | 74 69 6f 6e 20 64 6f 20 77 65 20 73 74 61 72 74 20 77 69 74 68 3f 20 49 73 20 30 20 64 65 67 72 | tion.do.we.start.with?.Is.0.degr |
| b080 | 65 65 73 20 75 70 20 6f 72 20 72 69 67 68 74 3f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ees.up.or.right?................ |
| b0a0 | 20 20 20 20 20 20 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | ......//......................// |
| b0c0 | 20 57 68 61 74 20 77 65 20 64 6f 20 68 65 72 65 20 69 73 20 73 69 6d 70 6c 79 20 6d 61 6b 65 20 | .What.we.do.here.is.simply.make. |
| b0e0 | 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 77 65 27 72 65 20 64 65 61 6c 69 6e | the.assumption.that.we're.dealin |
| b100 | 67 20 77 69 74 68 20 64 65 67 72 65 65 73 20 68 65 72 65 2c 20 74 68 61 74 20 77 65 20 67 6f 20 | g.with.degrees.here,.that.we.go. |
| b120 | 63 6c 6f 63 6b 77 69 73 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | clockwise,...................... |
| b140 | 2f 2f 20 61 6e 64 20 74 68 61 74 20 30 20 64 65 67 72 65 65 73 20 69 73 20 75 70 20 28 77 68 69 | //.and.that.0.degrees.is.up.(whi |
| b160 | 63 68 20 69 73 20 61 63 74 75 61 6c 6c 79 20 74 68 65 20 6f 70 70 6f 73 69 74 65 20 6f 66 20 74 | ch.is.actually.the.opposite.of.t |
| b180 | 68 65 20 63 6f 6f 72 64 69 6e 61 74 65 20 73 79 73 74 65 6d 20 73 75 67 67 65 73 74 65 64 20 69 | he.coordinate.system.suggested.i |
| b1a0 | 6e 20 35 2e 39 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | n.5.9.of......................// |
| b1c0 | 20 6f 66 20 74 68 65 20 48 49 44 20 73 70 65 63 20 62 75 74 20 73 65 65 6d 73 20 74 6f 20 62 65 | .of.the.HID.spec.but.seems.to.be |
| b1e0 | 20 77 68 61 74 20 6d 61 6e 75 66 61 63 74 75 72 65 72 73 20 61 72 65 20 61 63 74 75 61 6c 6c 79 | .what.manufacturers.are.actually |
| b200 | 20 75 73 69 6e 67 20 69 6e 20 70 72 61 63 74 69 63 65 29 2e 20 4f 66 20 63 6f 75 72 73 65 2c 20 | .using.in.practice)..Of.course,. |
| b220 | 69 66 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 | if.the......................//.d |
| b240 | 65 76 69 63 65 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 61 63 74 75 61 6c 6c 79 20 | evice.we're.looking.at.actually. |
| b260 | 73 65 74 73 20 74 68 69 6e 67 73 20 75 70 20 64 69 66 66 65 72 65 6e 74 6c 79 2c 20 74 68 65 6e | sets.things.up.differently,.then |
| b280 | 20 77 65 20 65 6e 64 20 75 70 20 77 69 74 68 20 65 69 74 68 65 72 20 61 6e 20 69 6e 63 6f 72 72 | .we.end.up.with.either.an.incorr |
| b2a0 | 65 63 74 6c 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 72 | ectly......................//.or |
| b2c0 | 69 65 6e 74 65 64 20 6f 72 20 28 77 6f 72 73 65 29 20 61 20 6e 6f 6e 2d 66 75 6e 63 74 69 6f 6e | iented.or.(worse).a.non-function |
| b2e0 | 61 6c 20 68 61 74 20 73 77 69 74 63 68 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | al.hat.switch................... |
| b300 | 20 20 20 20 20 20 76 61 72 20 6e 75 6c 6c 56 61 6c 75 65 20 3d 20 44 65 74 65 72 6d 69 6e 65 44 | ......var.nullValue.=.DetermineD |
| b320 | 65 66 61 75 6c 74 53 74 61 74 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | efaultState();.................. |
| b340 | 20 20 20 20 69 66 20 28 6e 75 6c 6c 56 61 6c 75 65 2e 69 73 45 6d 70 74 79 29 0d 0a 20 20 20 20 | ....if.(nullValue.isEmpty)...... |
| b360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0d 0a 0d 0a 20 | ....................return;..... |
| b380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 74 | ...................////REVIEW:.t |
| b3a0 | 68 69 73 20 70 72 6f 62 61 62 6c 79 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 77 69 74 68 20 68 61 74 | his.probably.only.works.with.hat |
| b3c0 | 73 77 69 74 63 68 65 73 20 74 68 61 74 20 68 61 76 65 20 74 68 65 69 72 20 6e 75 6c 6c 20 76 61 | switches.that.have.their.null.va |
| b3e0 | 6c 75 65 20 61 74 20 6c 6f 67 69 63 61 6c 4d 61 78 2b 31 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 | lue.at.logicalMax+1............. |
| b400 | 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 63 6f | ...........builder.AddControl(co |
| b420 | 6e 74 72 6f 6c 4e 61 6d 65 20 2b 20 22 2f 75 70 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ntrolName.+."/up").............. |
| b440 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 46 6f 72 6d 61 74 28 49 6e 70 75 74 53 74 61 | .............WithFormat(InputSta |
| b460 | 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 42 69 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | teBlock.FormatBit).............. |
| b480 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 4c 61 79 6f 75 74 28 22 44 69 73 63 72 65 74 | .............WithLayout("Discret |
| b4a0 | 65 42 75 74 74 6f 6e 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eButton")....................... |
| b4c0 | 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 | ....WithParameters(string.Format |
| b4e0 | 28 43 75 6c 74 75 72 65 49 6e 66 6f 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 2c 0d 0a | (CultureInfo.InvariantCulture,.. |
| b500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 69 6e | ............................"min |
| b520 | 56 61 6c 75 65 3d 7b 30 7d 2c 6d 61 78 56 61 6c 75 65 3d 7b 31 7d 2c 6e 75 6c 6c 56 61 6c 75 65 | Value={0},maxValue={1},nullValue |
| b540 | 3d 7b 32 7d 2c 77 72 61 70 41 74 56 61 6c 75 65 3d 7b 33 7d 22 2c 0d 0a 20 20 20 20 20 20 20 20 | ={2},wrapAtValue={3}",.......... |
| b560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 69 63 61 6c 4d 61 78 2c 20 | ....................logicalMax,. |
| b580 | 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 31 2c 20 6e 75 6c 6c 56 61 6c 75 65 2e 54 6f 53 74 72 69 | logicalMin.+.1,.nullValue.ToStri |
| b5a0 | 6e 67 28 29 2c 20 6c 6f 67 69 63 61 6c 4d 61 78 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ng(),.logicalMax)).............. |
| b5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 75 69 6e 74 | .............WithBitOffset((uint |
| b5e0 | 29 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 29 | )element.reportOffsetInBits.%.8) |
| b600 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 53 | ...........................WithS |
| b620 | 69 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 | izeInBits((uint)reportSizeInBits |
| b640 | 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 | );........................builde |
| b660 | 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 63 6f 6e 74 72 6f 6c 4e 61 6d 65 20 2b 20 22 2f 72 69 67 | r.AddControl(controlName.+."/rig |
| b680 | 68 74 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 | ht")...........................W |
| b6a0 | 69 74 68 46 6f 72 6d 61 74 28 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 | ithFormat(InputStateBlock.Format |
| b6c0 | 42 69 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 | Bit)...........................W |
| b6e0 | 69 74 68 4c 61 79 6f 75 74 28 22 44 69 73 63 72 65 74 65 42 75 74 74 6f 6e 22 29 0d 0a 20 20 20 | ithLayout("DiscreteButton")..... |
| b700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 | ......................WithParame |
| b720 | 74 65 72 73 28 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 28 43 75 6c 74 75 72 65 49 6e 66 6f 2e 49 | ters(string.Format(CultureInfo.I |
| b740 | 6e 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nvariantCulture,................ |
| b760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 69 6e 56 61 6c 75 65 3d 7b 30 7d 2c 6d 61 78 56 | .............."minValue={0},maxV |
| b780 | 61 6c 75 65 3d 7b 31 7d 22 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | alue={1}",...................... |
| b7a0 | 20 20 20 20 20 20 20 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 31 2c 20 6c 6f 67 69 63 61 6c 4d | ........logicalMin.+.1,.logicalM |
| b7c0 | 69 6e 20 2b 20 33 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | in.+.3))........................ |
| b7e0 | 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 75 69 6e 74 29 65 6c 65 6d 65 6e 74 2e 72 | ...WithBitOffset((uint)element.r |
| b800 | 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 29 0d 0a 20 20 20 20 20 20 20 20 | eportOffsetInBits.%.8).......... |
| b820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 53 69 7a 65 49 6e 42 69 74 73 28 | .................WithSizeInBits( |
| b840 | 28 75 69 6e 74 29 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 29 3b 0d 0a 0d 0a 20 20 20 20 | (uint)reportSizeInBits);........ |
| b860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 | ................builder.AddContr |
| b880 | 6f 6c 28 63 6f 6e 74 72 6f 6c 4e 61 6d 65 20 2b 20 22 2f 64 6f 77 6e 22 29 0d 0a 20 20 20 20 20 | ol(controlName.+."/down")....... |
| b8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 46 6f 72 6d 61 74 28 49 | ....................WithFormat(I |
| b8c0 | 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 46 6f 72 6d 61 74 42 69 74 29 0d 0a 20 20 20 20 20 | nputStateBlock.FormatBit)....... |
| b8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 4c 61 79 6f 75 74 28 22 | ....................WithLayout(" |
| b900 | 44 69 73 63 72 65 74 65 42 75 74 74 6f 6e 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | DiscreteButton")................ |
| b920 | 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 73 74 72 69 6e 67 | ...........WithParameters(string |
| b940 | 2e 46 6f 72 6d 61 74 28 43 75 6c 74 75 72 65 49 6e 66 6f 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c | .Format(CultureInfo.InvariantCul |
| b960 | 74 75 72 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ture,........................... |
| b980 | 20 20 20 22 6d 69 6e 56 61 6c 75 65 3d 7b 30 7d 2c 6d 61 78 56 61 6c 75 65 3d 7b 31 7d 22 2c 0d | ..."minValue={0},maxValue={1}",. |
| b9a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 | .............................log |
| b9c0 | 69 63 61 6c 4d 69 6e 20 2b 20 33 2c 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 35 29 29 0d 0a 20 | icalMin.+.3,.logicalMin.+.5))... |
| b9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f | ........................WithBitO |
| ba00 | 66 66 73 65 74 28 28 75 69 6e 74 29 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 | ffset((uint)element.reportOffset |
| ba20 | 49 6e 42 69 74 73 20 25 20 38 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | InBits.%.8)..................... |
| ba40 | 20 20 20 20 20 2e 57 69 74 68 53 69 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 72 65 70 6f 72 | ......WithSizeInBits((uint)repor |
| ba60 | 74 53 69 7a 65 49 6e 42 69 74 73 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tSizeInBits);................... |
| ba80 | 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 64 64 43 6f 6e 74 72 6f 6c 28 63 6f 6e 74 72 6f 6c 4e | .....builder.AddControl(controlN |
| baa0 | 61 6d 65 20 2b 20 22 2f 6c 65 66 74 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ame.+."/left").................. |
| bac0 | 20 20 20 20 20 20 20 20 2e 57 69 74 68 46 6f 72 6d 61 74 28 49 6e 70 75 74 53 74 61 74 65 42 6c | .........WithFormat(InputStateBl |
| bae0 | 6f 63 6b 2e 46 6f 72 6d 61 74 42 69 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ock.FormatBit).................. |
| bb00 | 20 20 20 20 20 20 20 20 2e 57 69 74 68 4c 61 79 6f 75 74 28 22 44 69 73 63 72 65 74 65 42 75 74 | .........WithLayout("DiscreteBut |
| bb20 | 74 6f 6e 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | ton")........................... |
| bb40 | 57 69 74 68 50 61 72 61 6d 65 74 65 72 73 28 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 28 43 75 6c | WithParameters(string.Format(Cul |
| bb60 | 74 75 72 65 49 6e 66 6f 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 2c 0d 0a 20 20 20 20 | tureInfo.InvariantCulture,...... |
| bb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 69 6e 56 61 6c 75 | ........................"minValu |
| bba0 | 65 3d 7b 30 7d 2c 6d 61 78 56 61 6c 75 65 3d 7b 31 7d 22 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | e={0},maxValue={1}",............ |
| bbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 35 | ..................logicalMin.+.5 |
| bbe0 | 2c 20 6c 6f 67 69 63 61 6c 4d 69 6e 20 2b 20 37 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ,.logicalMin.+.7)).............. |
| bc00 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 42 69 74 4f 66 66 73 65 74 28 28 75 69 6e 74 | .............WithBitOffset((uint |
| bc20 | 29 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 25 20 38 29 | )element.reportOffsetInBits.%.8) |
| bc40 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 57 69 74 68 53 | ...........................WithS |
| bc60 | 69 7a 65 49 6e 42 69 74 73 28 28 75 69 6e 74 29 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 | izeInBits((uint)reportSizeInBits |
| bc80 | 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 | );..................}........... |
| bca0 | 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c | ...}..........}............///.< |
| bcc0 | 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 44 65 73 63 72 69 70 74 6f 72 | summary>..........///.Descriptor |
| bce0 | 20 66 6f 72 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 48 49 44 20 65 6c 65 6d 65 6e 74 | .for.a.collection.of.HID.element |
| bd00 | 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 | s...........///.</summary>...... |
| bd20 | 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 62 6c 65 5d 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c | ....[Serializable]..........publ |
| bd40 | 69 63 20 73 74 72 75 63 74 20 48 49 44 43 6f 6c 6c 65 63 74 69 6f 6e 44 65 73 63 72 69 70 74 6f | ic.struct.HIDCollectionDescripto |
| bd60 | 72 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 | r..........{..............public |
| bd80 | 20 48 49 44 43 6f 6c 6c 65 63 74 69 6f 6e 54 79 70 65 20 74 79 70 65 3b 0d 0a 20 20 20 20 20 20 | .HIDCollectionType.type;........ |
| bda0 | 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 75 73 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 | ......public.int.usage;......... |
| bdc0 | 20 20 20 20 20 70 75 62 6c 69 63 20 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 3b | .....public.UsagePage.usagePage; |
| bde0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 70 61 72 65 6e 74 3b | ..............public.int.parent; |
| be00 | 20 2f 2f 20 2d 31 20 69 66 20 6e 6f 20 70 61 72 65 6e 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 | .//.-1.if.no.parent............. |
| be20 | 20 20 70 75 62 6c 69 63 20 69 6e 74 20 63 68 69 6c 64 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 | ..public.int.childCount;........ |
| be40 | 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 66 69 72 73 74 43 68 69 6c 64 3b 0d 0a 20 20 | ......public.int.firstChild;.... |
| be60 | 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e | ......}............///.<summary> |
| be80 | 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 48 49 44 20 64 65 73 63 72 69 70 74 6f 72 20 66 6f 72 | ..........///.HID.descriptor.for |
| bea0 | 20 61 20 48 49 44 20 63 6c 61 73 73 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f | .a.HID.class.device...........// |
| bec0 | 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 | /.</summary>..........///.<remar |
| bee0 | 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 61 20 70 72 6f 63 65 | ks>..........///.This.is.a.proce |
| bf00 | 73 73 65 64 20 76 69 65 77 20 6f 66 20 74 68 65 20 63 6f 6d 62 69 6e 65 64 20 64 65 73 63 72 69 | ssed.view.of.the.combined.descri |
| bf20 | 70 74 6f 72 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 61 20 48 49 44 20 61 73 20 64 65 66 69 6e | ptors.provided.by.a.HID.as.defin |
| bf40 | 65 64 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 6e 20 74 68 65 20 48 49 44 20 73 70 65 63 69 | ed..........///.in.the.HID.speci |
| bf60 | 66 69 63 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 69 74 27 73 20 61 20 63 6f 6d 62 69 6e 61 74 69 6f | fication,.i.e..it's.a.combinatio |
| bf80 | 6e 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 55 53 42 20 64 65 | n.of.information.from.the.USB.de |
| bfa0 | 76 69 63 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 64 65 73 63 72 69 70 74 6f 72 2c 20 48 49 | vice..........///.descriptor,.HI |
| bfc0 | 44 20 63 6c 61 73 73 20 64 65 73 63 72 69 70 74 6f 72 2c 20 61 6e 64 20 48 49 44 20 72 65 70 6f | D.class.descriptor,.and.HID.repo |
| bfe0 | 72 74 20 64 65 73 63 72 69 70 74 6f 72 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 | rt.descriptor...........///.</re |
| c000 | 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 62 6c 65 5d 0d 0a | marks>..........[Serializable].. |
| c020 | 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 20 48 49 44 44 65 76 69 63 65 44 | ........public.struct.HIDDeviceD |
| c040 | 65 73 63 72 69 70 74 6f 72 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 | escriptor..........{............ |
| c060 | 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | ..///.<summary>............../// |
| c080 | 20 55 53 42 20 76 65 6e 64 6f 72 20 49 44 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | .USB.vendor.ID.............../// |
| c0a0 | 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 | .</summary>..............///.<re |
| c0c0 | 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 6f 20 67 65 74 20 74 | marks>..............///.To.get.t |
| c0e0 | 68 65 20 73 74 72 69 6e 67 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 76 65 6e 64 6f 72 20 | he.string.version.of.the.vendor. |
| c100 | 49 44 2c 20 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 44 65 | ID,.see.<see.cref="InputDeviceDe |
| c120 | 73 63 72 69 70 74 69 6f 6e 2e 6d 61 6e 75 66 61 63 74 75 72 65 72 22 2f 3e 0d 0a 20 20 20 20 20 | scription.manufacturer"/>....... |
| c140 | 20 20 20 20 20 20 20 2f 2f 2f 20 6f 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 | .......///.on.<see.cref="InputDe |
| c160 | 76 69 63 65 2e 64 65 73 63 72 69 70 74 69 6f 6e 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 | vice.description"/>............. |
| c180 | 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 | ..///.</remarks>..............pu |
| c1a0 | 62 6c 69 63 20 69 6e 74 20 76 65 6e 64 6f 72 49 64 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | blic.int.vendorId;.............. |
| c1c0 | 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | ..///.<summary>............../// |
| c1e0 | 20 55 53 42 20 70 72 6f 64 75 63 74 20 49 44 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | .USB.product.ID...............// |
| c200 | 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 | /.</summary>..............public |
| c220 | 20 69 6e 74 20 70 72 6f 64 75 63 74 49 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 | .int.productId;..............pub |
| c240 | 6c 69 63 20 69 6e 74 20 75 73 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c | lic.int.usage;..............publ |
| c260 | 69 63 20 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 3b 0d 0a 0d 0a 20 20 20 20 20 | ic.UsagePage.usagePage;......... |
| c280 | 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 | .......///.<summary>............ |
| c2a0 | 20 20 2f 2f 2f 20 4d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 69 6e 64 69 76 69 64 75 61 6c | ..///.Maximum.size.of.individual |
| c2c0 | 20 69 6e 70 75 74 20 72 65 70 6f 72 74 73 20 73 65 6e 74 20 62 79 20 74 68 65 20 64 65 76 69 63 | .input.reports.sent.by.the.devic |
| c2e0 | 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a | e...............///.</summary>.. |
| c300 | 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 69 6e 70 75 74 52 65 70 6f | ............public.int.inputRepo |
| c320 | 72 74 53 69 7a 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d | rtSize;................///.<summ |
| c340 | 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 4d 61 78 69 6d 75 6d 20 73 69 | ary>..............///.Maximum.si |
| c360 | 7a 65 20 6f 66 20 69 6e 64 69 76 69 64 75 61 6c 20 6f 75 74 70 75 74 20 72 65 70 6f 72 74 73 20 | ze.of.individual.output.reports. |
| c380 | 73 65 6e 74 20 74 6f 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | sent.to.the.device.............. |
| c3a0 | 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 | .///.</summary>..............pub |
| c3c0 | 6c 69 63 20 69 6e 74 20 6f 75 74 70 75 74 52 65 70 6f 72 74 53 69 7a 65 3b 0d 0a 0d 0a 20 20 20 | lic.int.outputReportSize;....... |
| c3e0 | 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 | .........///.<summary>.......... |
| c400 | 20 20 20 20 2f 2f 2f 20 4d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 69 6e 64 69 76 69 64 75 | ....///.Maximum.size.of.individu |
| c420 | 61 6c 20 66 65 61 74 75 72 65 20 72 65 70 6f 72 74 73 20 65 78 63 68 61 6e 67 65 64 20 77 69 74 | al.feature.reports.exchanged.wit |
| c440 | 68 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c | h.the.device...............///.< |
| c460 | 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e | /summary>..............public.in |
| c480 | 74 20 66 65 61 74 75 72 65 52 65 70 6f 72 74 53 69 7a 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | t.featureReportSize;............ |
| c4a0 | 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 45 6c 65 6d 65 6e 74 44 65 73 63 72 69 70 74 6f 72 5b | ....public.HIDElementDescriptor[ |
| c4c0 | 5d 20 65 6c 65 6d 65 6e 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 | ].elements;..............public. |
| c4e0 | 48 49 44 43 6f 6c 6c 65 63 74 69 6f 6e 44 65 73 63 72 69 70 74 6f 72 5b 5d 20 63 6f 6c 6c 65 63 | HIDCollectionDescriptor[].collec |
| c500 | 74 69 6f 6e 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 | tions;................public.str |
| c520 | 69 6e 67 20 54 6f 4a 73 6f 6e 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 | ing.ToJson()..............{..... |
| c540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4a 73 6f 6e 55 74 69 6c 69 74 79 2e | .............return.JsonUtility. |
| c560 | 54 6f 4a 73 6f 6e 28 74 68 69 73 2c 20 74 72 75 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ToJson(this,.true);............. |
| c580 | 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 | .}................public.static. |
| c5a0 | 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 20 46 72 6f 6d 4a 73 6f 6e 28 73 74 72 | HIDDeviceDescriptor.FromJson(str |
| c5c0 | 69 6e 67 20 6a 73 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | ing.json)..............{........ |
| c5e0 | 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4a 73 6f 6e 55 74 69 6c 69 74 79 2e 46 72 6f | ..........return.JsonUtility.Fro |
| c600 | 6d 4a 73 6f 6e 3c 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 3e 28 6a 73 6f 6e 29 | mJson<HIDDeviceDescriptor>(json) |
| c620 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 | ;..............}..........}..... |
| c640 | 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f | .......///.<summary>..........// |
| c660 | 2f 20 48 65 6c 70 65 72 20 74 6f 20 71 75 69 63 6b 6c 79 20 62 75 69 6c 64 20 64 65 73 63 72 69 | /.Helper.to.quickly.build.descri |
| c680 | 70 74 6f 72 73 20 66 6f 72 20 61 72 62 69 74 72 61 72 79 20 48 49 44 73 2e 0d 0a 20 20 20 20 20 | ptors.for.arbitrary.HIDs........ |
| c6a0 | 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 | ...///.</summary>..........publi |
| c6c0 | 63 20 73 74 72 75 63 74 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 42 75 69 6c | c.struct.HIDDeviceDescriptorBuil |
| c6e0 | 64 65 72 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c | der..........{..............publ |
| c700 | 69 63 20 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 | ic.UsagePage.usagePage;......... |
| c720 | 20 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 20 75 73 61 67 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 | .....public.int.usage;.......... |
| c740 | 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 | ......public.HIDDeviceDescriptor |
| c760 | 42 75 69 6c 64 65 72 28 55 73 61 67 65 50 61 67 65 20 75 73 61 67 65 50 61 67 65 2c 20 69 6e 74 | Builder(UsagePage.usagePage,.int |
| c780 | 20 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 74 68 69 73 28 | .usage)..................:.this( |
| c7a0 | 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )..............{................ |
| c7c0 | 20 20 74 68 69 73 2e 75 73 61 67 65 50 61 67 65 20 3d 20 75 73 61 67 65 50 61 67 65 3b 0d 0a 20 | ..this.usagePage.=.usagePage;... |
| c7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 75 73 61 67 65 20 3d 20 75 73 61 67 | ...............this.usage.=.usag |
| c800 | 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | e;..............}............... |
| c820 | 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 42 75 69 6c 64 | .public.HIDDeviceDescriptorBuild |
| c840 | 65 72 28 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 | er(GenericDesktop.usage)........ |
| c860 | 20 20 20 20 20 20 20 20 20 20 3a 20 74 68 69 73 28 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 | ..........:.this(UsagePage.Gener |
| c880 | 69 63 44 65 73 6b 74 6f 70 2c 20 28 69 6e 74 29 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 | icDesktop,.(int)usage).......... |
| c8a0 | 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ....{..............}............ |
| c8c0 | 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 42 75 | ....public.HIDDeviceDescriptorBu |
| c8e0 | 69 6c 64 65 72 20 53 74 61 72 74 52 65 70 6f 72 74 28 48 49 44 52 65 70 6f 72 74 54 79 70 65 20 | ilder.StartReport(HIDReportType. |
| c900 | 72 65 70 6f 72 74 54 79 70 65 2c 20 69 6e 74 20 72 65 70 6f 72 74 49 64 20 3d 20 31 29 0d 0a 20 | reportType,.int.reportId.=.1)... |
| c920 | 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f | ...........{..................m_ |
| c940 | 43 75 72 72 65 6e 74 52 65 70 6f 72 74 49 64 20 3d 20 72 65 70 6f 72 74 49 64 3b 0d 0a 20 20 20 | CurrentReportId.=.reportId;..... |
| c960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 74 54 79 70 65 | .............m_CurrentReportType |
| c980 | 20 3d 20 72 65 70 6f 72 74 54 79 70 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .=.reportType;.................. |
| c9a0 | 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 3d 20 38 3b | m_CurrentReportOffsetInBits.=.8; |
| c9c0 | 20 2f 2f 20 52 65 70 6f 72 74 20 49 44 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .//.Report.ID................... |
| c9e0 | 72 65 74 75 72 6e 20 74 68 69 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 | return.this;..............}..... |
| ca00 | 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 | ...........public.HIDDeviceDescr |
| ca20 | 69 70 74 6f 72 42 75 69 6c 64 65 72 20 41 64 64 45 6c 65 6d 65 6e 74 28 55 73 61 67 65 50 61 67 | iptorBuilder.AddElement(UsagePag |
| ca40 | 65 20 75 73 61 67 65 50 61 67 65 2c 20 69 6e 74 20 75 73 61 67 65 2c 20 69 6e 74 20 73 69 7a 65 | e.usagePage,.int.usage,.int.size |
| ca60 | 49 6e 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 | InBits)..............{.......... |
| ca80 | 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 45 6c 65 6d 65 6e 74 73 20 3d 3d 20 6e 75 6c 6c 29 0d | ........if.(m_Elements.==.null). |
| caa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................{.............. |
| cac0 | 20 20 20 20 20 20 20 20 6d 5f 45 6c 65 6d 65 6e 74 73 20 3d 20 6e 65 77 20 4c 69 73 74 3c 48 49 | ........m_Elements.=.new.List<HI |
| cae0 | 44 45 6c 65 6d 65 6e 74 44 65 73 63 72 69 70 74 6f 72 3e 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 | DElementDescriptor>();.......... |
| cb00 | 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d | ........}..................else. |
| cb20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .................{.............. |
| cb40 | 20 20 20 20 20 20 20 20 2f 2f 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 75 73 61 67 65 20 61 | ........//.Make.sure.the.usage.a |
| cb60 | 6e 64 20 75 73 61 67 65 50 61 67 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 69 73 20 75 6e 69 71 | nd.usagePage.combination.is.uniq |
| cb80 | 75 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 | ue.......................foreach |
| cba0 | 20 28 76 61 72 20 65 6c 65 6d 65 6e 74 20 69 6e 20 6d 5f 45 6c 65 6d 65 6e 74 73 29 0d 0a 20 20 | .(var.element.in.m_Elements).... |
| cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ..................{............. |
| cbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 6b 69 70 20 65 6c 65 6d 65 6e 74 73 20 74 68 | .............//.Skip.elements.th |
| cc00 | 61 74 20 61 72 65 6e 27 74 20 69 6e 20 74 68 65 20 73 61 6d 65 20 72 65 70 6f 72 74 2e 0d 0a 20 | at.aren't.in.the.same.report.... |
| cc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6c 65 6d 65 | .......................if.(eleme |
| cc40 | 6e 74 2e 72 65 70 6f 72 74 49 64 20 21 3d 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 74 49 64 | nt.reportId.!=.m_CurrentReportId |
| cc60 | 20 7c 7c 20 65 6c 65 6d 65 6e 74 2e 72 65 70 6f 72 74 54 79 70 65 20 21 3d 20 6d 5f 43 75 72 72 | .||.element.reportType.!=.m_Curr |
| cc80 | 65 6e 74 52 65 70 6f 72 74 54 79 70 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | entReportType).................. |
| cca0 | 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 | ............continue;........... |
| ccc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 6c 65 6d 65 6e 74 2e 75 73 61 | .................if.(element.usa |
| cce0 | 67 65 50 61 67 65 20 3d 3d 20 75 73 61 67 65 50 61 67 65 20 26 26 20 65 6c 65 6d 65 6e 74 2e 75 | gePage.==.usagePage.&&.element.u |
| cd00 | 73 61 67 65 20 3d 3d 20 75 73 61 67 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sage.==.usage).................. |
| cd20 | 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 4f 70 65 | ............throw.new.InvalidOpe |
| cd40 | 72 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rationException(................ |
| cd60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 61 6e 6e 6f 74 20 61 64 64 20 74 | ..................$"Cannot.add.t |
| cd80 | 77 6f 20 65 6c 65 6d 65 6e 74 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 75 73 61 67 65 20 | wo.elements.with.the.same.usage. |
| cda0 | 70 61 67 65 20 27 7b 75 73 61 67 65 50 61 67 65 7d 27 20 61 6e 64 20 75 73 61 67 65 20 27 30 78 | page.'{usagePage}'.and.usage.'0x |
| cdc0 | 7b 75 73 61 67 65 3a 58 7d 20 74 68 65 20 74 6f 20 73 61 6d 65 20 64 65 76 69 63 65 22 29 3b 0d | {usage:X}.the.to.same.device");. |
| cde0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 | .....................}.......... |
| ce00 | 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 45 | ........}....................m_E |
| ce20 | 6c 65 6d 65 6e 74 73 2e 41 64 64 28 6e 65 77 20 48 49 44 45 6c 65 6d 65 6e 74 44 65 73 63 72 69 | lements.Add(new.HIDElementDescri |
| ce40 | 70 74 6f 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 | ptor..................{......... |
| ce60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 61 67 65 20 3d 20 75 73 61 67 65 2c 0d 0a 20 20 20 | .............usage.=.usage,..... |
| ce80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 61 67 65 50 61 67 65 20 3d 20 75 73 61 | .................usagePage.=.usa |
| cea0 | 67 65 50 61 67 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 | gePage,......................rep |
| cec0 | 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 3d 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 | ortOffsetInBits.=.m_CurrentRepor |
| cee0 | 74 4f 66 66 73 65 74 49 6e 42 69 74 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tOffsetInBits,.................. |
| cf00 | 20 20 20 20 72 65 70 6f 72 74 53 69 7a 65 49 6e 42 69 74 73 20 3d 20 73 69 7a 65 49 6e 42 69 74 | ....reportSizeInBits.=.sizeInBit |
| cf20 | 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6f 72 74 54 79 | s,......................reportTy |
| cf40 | 70 65 20 3d 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 74 54 79 70 65 2c 0d 0a 20 20 20 20 20 | pe.=.m_CurrentReportType,....... |
| cf60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6f 72 74 49 64 20 3d 20 6d 5f 43 75 72 72 | ...............reportId.=.m_Curr |
| cf80 | 65 6e 74 52 65 70 6f 72 74 49 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 29 3b | entReportId..................}); |
| cfa0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 | ..................m_CurrentRepor |
| cfc0 | 74 4f 66 66 73 65 74 49 6e 42 69 74 73 20 2b 3d 20 73 69 7a 65 49 6e 42 69 74 73 3b 0d 0a 0d 0a | tOffsetInBits.+=.sizeInBits;.... |
| cfe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 3b 0d 0a 20 20 | ................return.this;.... |
| d000 | 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 | ..........}................publi |
| d020 | 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 42 75 69 6c 64 65 72 20 41 64 64 | c.HIDDeviceDescriptorBuilder.Add |
| d040 | 45 6c 65 6d 65 6e 74 28 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 75 73 61 67 65 2c 20 69 6e | Element(GenericDesktop.usage,.in |
| d060 | 74 20 73 69 7a 65 49 6e 42 69 74 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 | t.sizeInBits)..............{.... |
| d080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 41 64 64 45 6c 65 6d 65 6e 74 28 | ..............return.AddElement( |
| d0a0 | 55 73 61 67 65 50 61 67 65 2e 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 2c 20 28 69 6e 74 29 75 | UsagePage.GenericDesktop,.(int)u |
| d0c0 | 73 61 67 65 2c 20 73 69 7a 65 49 6e 42 69 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | sage,.sizeInBits);.............. |
| d0e0 | 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 | }................public.HIDDevic |
| d100 | 65 44 65 73 63 72 69 70 74 6f 72 42 75 69 6c 64 65 72 20 57 69 74 68 50 68 79 73 69 63 61 6c 4d | eDescriptorBuilder.WithPhysicalM |
| d120 | 69 6e 4d 61 78 28 69 6e 74 20 6d 69 6e 2c 20 69 6e 74 20 6d 61 78 29 0d 0a 20 20 20 20 20 20 20 | inMax(int.min,.int.max)......... |
| d140 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 69 6e 64 65 | .....{..................var.inde |
| d160 | 78 20 3d 20 6d 5f 45 6c 65 6d 65 6e 74 73 2e 43 6f 75 6e 74 20 2d 20 31 3b 0d 0a 20 20 20 20 20 | x.=.m_Elements.Count.-.1;....... |
| d180 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 6e 64 65 78 20 3c 20 30 29 0d 0a 20 20 20 20 20 | ...........if.(index.<.0)....... |
| d1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 | ...............throw.new.Invalid |
| d1c0 | 4f 70 65 72 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 65 6c 65 6d 65 6e 74 20 68 | OperationException("No.element.h |
| d1e0 | 61 73 20 62 65 65 6e 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 64 65 73 63 72 69 70 74 6f 72 20 | as.been.added.to.the.descriptor. |
| d200 | 79 65 74 22 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 6c | yet");....................var.el |
| d220 | 65 6d 65 6e 74 20 3d 20 6d 5f 45 6c 65 6d 65 6e 74 73 5b 69 6e 64 65 78 5d 3b 0d 0a 20 20 20 20 | ement.=.m_Elements[index];...... |
| d240 | 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 2e 70 68 79 73 69 63 61 6c 4d 69 6e 20 | ............element.physicalMin. |
| d260 | 3d 20 6d 69 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 2e | =.min;..................element. |
| d280 | 70 68 79 73 69 63 61 6c 4d 61 78 20 3d 20 6d 61 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | physicalMax.=.max;.............. |
| d2a0 | 20 20 20 20 6d 5f 45 6c 65 6d 65 6e 74 73 5b 69 6e 64 65 78 5d 20 3d 20 65 6c 65 6d 65 6e 74 3b | ....m_Elements[index].=.element; |
| d2c0 | 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 3b | ....................return.this; |
| d2e0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 | ..............}................p |
| d300 | 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 42 75 69 6c 64 65 72 | ublic.HIDDeviceDescriptorBuilder |
| d320 | 20 57 69 74 68 4c 6f 67 69 63 61 6c 4d 69 6e 4d 61 78 28 69 6e 74 20 6d 69 6e 2c 20 69 6e 74 20 | .WithLogicalMinMax(int.min,.int. |
| d340 | 6d 61 78 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | max)..............{............. |
| d360 | 20 20 20 20 20 76 61 72 20 69 6e 64 65 78 20 3d 20 6d 5f 45 6c 65 6d 65 6e 74 73 2e 43 6f 75 6e | .....var.index.=.m_Elements.Coun |
| d380 | 74 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 6e 64 65 | t.-.1;..................if.(inde |
| d3a0 | 78 20 3c 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f | x.<.0)......................thro |
| d3c0 | 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 4f 70 65 72 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 | w.new.InvalidOperationException( |
| d3e0 | 22 4e 6f 20 65 6c 65 6d 65 6e 74 20 68 61 73 20 62 65 65 6e 20 61 64 64 65 64 20 74 6f 20 74 68 | "No.element.has.been.added.to.th |
| d400 | 65 20 64 65 73 63 72 69 70 74 6f 72 20 79 65 74 22 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 | e.descriptor.yet");............. |
| d420 | 20 20 20 20 20 20 20 76 61 72 20 65 6c 65 6d 65 6e 74 20 3d 20 6d 5f 45 6c 65 6d 65 6e 74 73 5b | .......var.element.=.m_Elements[ |
| d440 | 69 6e 64 65 78 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 | index];..................element |
| d460 | 2e 6c 6f 67 69 63 61 6c 4d 69 6e 20 3d 20 6d 69 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .logicalMin.=.min;.............. |
| d480 | 20 20 20 20 65 6c 65 6d 65 6e 74 2e 6c 6f 67 69 63 61 6c 4d 61 78 20 3d 20 6d 61 78 3b 0d 0a 20 | ....element.logicalMax.=.max;... |
| d4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 45 6c 65 6d 65 6e 74 73 5b 69 6e 64 65 78 5d | ...............m_Elements[index] |
| d4c0 | 20 3d 20 65 6c 65 6d 65 6e 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | .=.element;....................r |
| d4e0 | 65 74 75 72 6e 20 74 68 69 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 | eturn.this;..............}...... |
| d500 | 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 | ..........public.HIDDeviceDescri |
| d520 | 70 74 6f 72 20 46 69 6e 69 73 68 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 | ptor.Finish()..............{.... |
| d540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e | ..............var.descriptor.=.n |
| d560 | 65 77 20 48 49 44 44 65 76 69 63 65 44 65 73 63 72 69 70 74 6f 72 0d 0a 20 20 20 20 20 20 20 20 | ew.HIDDeviceDescriptor.......... |
| d580 | 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 | ........{......................u |
| d5a0 | 73 61 67 65 20 3d 20 75 73 61 67 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sage.=.usage,................... |
| d5c0 | 20 20 20 75 73 61 67 65 50 61 67 65 20 3d 20 75 73 61 67 65 50 61 67 65 2c 0d 0a 20 20 20 20 20 | ...usagePage.=.usagePage,....... |
| d5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 20 3d 20 6d 5f 45 6c 65 6d | ...............elements.=.m_Elem |
| d600 | 65 6e 74 73 3f 2e 54 6f 41 72 72 61 79 28 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ents?.ToArray(),................ |
| d620 | 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 3d 20 6d 5f 43 6f 6c 6c 65 63 74 69 6f 6e | ......collections.=.m_Collection |
| d640 | 73 3f 2e 54 6f 41 72 72 61 79 28 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d | s?.ToArray(),..................} |
| d660 | 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 65 73 63 | ;....................return.desc |
| d680 | 72 69 70 74 6f 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 | riptor;..............}.......... |
| d6a0 | 20 20 20 20 20 20 70 72 69 76 61 74 65 20 69 6e 74 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 | ......private.int.m_CurrentRepor |
| d6c0 | 74 49 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 48 49 44 52 65 70 | tId;..............private.HIDRep |
| d6e0 | 6f 72 74 54 79 70 65 20 6d 5f 43 75 72 72 65 6e 74 52 65 70 6f 72 74 54 79 70 65 3b 0d 0a 20 20 | ortType.m_CurrentReportType;.... |
| d700 | 20 20 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 69 6e 74 20 6d 5f 43 75 72 72 65 6e 74 52 | ..........private.int.m_CurrentR |
| d720 | 65 70 6f 72 74 4f 66 66 73 65 74 49 6e 42 69 74 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | eportOffsetInBits;.............. |
| d740 | 20 20 70 72 69 76 61 74 65 20 4c 69 73 74 3c 48 49 44 45 6c 65 6d 65 6e 74 44 65 73 63 72 69 70 | ..private.List<HIDElementDescrip |
| d760 | 74 6f 72 3e 20 6d 5f 45 6c 65 6d 65 6e 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 | tor>.m_Elements;..............pr |
| d780 | 69 76 61 74 65 20 4c 69 73 74 3c 48 49 44 43 6f 6c 6c 65 63 74 69 6f 6e 44 65 73 63 72 69 70 74 | ivate.List<HIDCollectionDescript |
| d7a0 | 6f 72 3e 20 6d 5f 43 6f 6c 6c 65 63 74 69 6f 6e 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | or>.m_Collections;.............. |
| d7c0 | 20 20 70 72 69 76 61 74 65 20 69 6e 74 20 6d 5f 49 6e 70 75 74 52 65 70 6f 72 74 53 69 7a 65 3b | ..private.int.m_InputReportSize; |
| d7e0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 69 6e 74 20 6d 5f 4f 75 74 70 | ..............private.int.m_Outp |
| d800 | 75 74 52 65 70 6f 72 74 53 69 7a 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 76 61 | utReportSize;..............priva |
| d820 | 74 65 20 69 6e 74 20 6d 5f 46 65 61 74 75 72 65 52 65 70 6f 72 74 53 69 7a 65 3b 0d 0a 20 20 20 | te.int.m_FeatureReportSize;..... |
| d840 | 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d | .....}............///.<summary>. |
| d860 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 45 6e 75 6d 65 72 61 74 69 6f 6e 20 6f 66 20 48 49 44 20 | .........///.Enumeration.of.HID. |
| d880 | 75 73 61 67 65 20 70 61 67 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d | usage.pages...........///.</summ |
| d8a0 | 61 72 79 3e 30 30 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 | ary>00..........///.<remarks>... |
| d8c0 | 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 | .......///.Note.that.some.of.the |
| d8e0 | 20 76 61 6c 75 65 73 20 61 72 65 20 61 63 74 75 61 6c 6c 79 20 72 61 6e 67 65 73 2e 0d 0a 20 20 | .values.are.actually.ranges..... |
| d900 | 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f | ......///.</remarks>..........// |
| d920 | 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 75 73 62 2e | /.<seealso.cref="http://www.usb. |
| d940 | 6f 72 67 2f 64 65 76 65 6c 6f 70 65 72 73 2f 68 69 64 70 61 67 65 2f 48 75 74 31 5f 31 32 76 32 | org/developers/hidpage/Hut1_12v2 |
| d960 | 2e 70 64 66 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 65 6e 75 6d 20 55 73 61 | .pdf"/>..........public.enum.Usa |
| d980 | 67 65 50 61 67 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 | gePage..........{..............U |
| d9a0 | 6e 64 65 66 69 6e 65 64 20 3d 20 30 78 30 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 47 65 | ndefined.=.0x00,..............Ge |
| d9c0 | 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 3d 20 30 78 30 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | nericDesktop.=.0x01,............ |
| d9e0 | 20 20 53 69 6d 75 6c 61 74 69 6f 6e 20 3d 20 30 78 30 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..Simulation.=.0x02,............ |
| da00 | 20 20 56 52 43 6f 6e 74 72 6f 6c 73 20 3d 20 30 78 30 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..VRControls.=.0x03,............ |
| da20 | 20 20 53 70 6f 72 74 43 6f 6e 74 72 6f 6c 73 20 3d 20 30 78 30 34 2c 0d 0a 20 20 20 20 20 20 20 | ..SportControls.=.0x04,......... |
| da40 | 20 20 20 20 20 47 61 6d 65 43 6f 6e 74 72 6f 6c 73 20 3d 20 30 78 30 35 2c 0d 0a 20 20 20 20 20 | .....GameControls.=.0x05,....... |
| da60 | 20 20 20 20 20 20 20 47 65 6e 65 72 69 63 44 65 76 69 63 65 43 6f 6e 74 72 6f 6c 73 20 3d 20 30 | .......GenericDeviceControls.=.0 |
| da80 | 78 30 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4b 65 79 62 6f 61 72 64 20 3d 20 30 78 30 | x06,..............Keyboard.=.0x0 |
| daa0 | 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 45 44 73 20 3d 20 30 78 30 38 2c 0d 0a 20 20 | 7,..............LEDs.=.0x08,.... |
| dac0 | 20 20 20 20 20 20 20 20 20 20 42 75 74 74 6f 6e 20 3d 20 30 78 30 39 2c 0d 0a 20 20 20 20 20 20 | ..........Button.=.0x09,........ |
| dae0 | 20 20 20 20 20 20 4f 72 64 69 6e 61 6c 20 3d 20 30 78 30 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 | ......Ordinal.=.0x0A,........... |
| db00 | 20 20 20 54 65 6c 65 70 68 6f 6e 79 20 3d 20 30 78 30 42 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ...Telephony.=.0x0B,............ |
| db20 | 20 20 43 6f 6e 73 75 6d 65 72 20 3d 20 30 78 30 43 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..Consumer.=.0x0C,.............. |
| db40 | 44 69 67 69 74 69 7a 65 72 20 3d 20 30 78 30 44 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 | Digitizer.=.0x0D,..............P |
| db60 | 49 44 20 3d 20 30 78 30 46 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 69 63 6f 64 65 20 | ID.=.0x0F,..............Unicode. |
| db80 | 3d 20 30 78 31 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 70 68 61 6e 75 6d 65 72 69 | =.0x10,..............Alphanumeri |
| dba0 | 63 44 69 73 70 6c 61 79 20 3d 20 30 78 31 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 | cDisplay.=.0x14,..............Me |
| dbc0 | 64 69 63 61 6c 49 6e 73 74 72 75 6d 65 6e 74 73 20 3d 20 30 78 34 30 2c 0d 0a 20 20 20 20 20 20 | dicalInstruments.=.0x40,........ |
| dbe0 | 20 20 20 20 20 20 4d 6f 6e 69 74 6f 72 20 3d 20 30 78 38 30 2c 20 2f 2f 20 53 74 61 72 74 73 20 | ......Monitor.=.0x80,.//.Starts. |
| dc00 | 68 65 72 65 20 61 6e 64 20 67 6f 65 73 20 75 70 20 74 6f 20 30 78 38 33 2e 0d 0a 20 20 20 20 20 | here.and.goes.up.to.0x83........ |
| dc20 | 20 20 20 20 20 20 20 50 6f 77 65 72 20 3d 20 30 78 38 34 2c 20 2f 2f 20 53 74 61 72 74 73 20 68 | .......Power.=.0x84,.//.Starts.h |
| dc40 | 65 72 65 20 61 6e 64 20 67 6f 65 73 20 75 70 20 74 6f 20 30 78 38 37 2e 0d 0a 20 20 20 20 20 20 | ere.and.goes.up.to.0x87......... |
| dc60 | 20 20 20 20 20 20 42 61 72 43 6f 64 65 53 63 61 6e 6e 65 72 20 3d 20 30 78 38 43 2c 0d 0a 20 20 | ......BarCodeScanner.=.0x8C,.... |
| dc80 | 20 20 20 20 20 20 20 20 20 20 4d 61 67 6e 65 74 69 63 53 74 72 69 70 65 52 65 61 64 65 72 20 3d | ..........MagneticStripeReader.= |
| dca0 | 20 30 78 38 45 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 61 6d 65 72 61 20 3d 20 30 78 39 | .0x8E,..............Camera.=.0x9 |
| dcc0 | 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 72 63 61 64 65 20 3d 20 30 78 39 31 2c 0d 0a | 0,..............Arcade.=.0x91,.. |
| dce0 | 20 20 20 20 20 20 20 20 20 20 20 20 56 65 6e 64 6f 72 44 65 66 69 6e 65 64 20 3d 20 30 78 46 46 | ............VendorDefined.=.0xFF |
| dd00 | 30 30 2c 20 2f 2f 20 53 74 61 72 74 73 20 68 65 72 65 20 61 6e 64 20 67 6f 65 73 20 75 70 20 74 | 00,.//.Starts.here.and.goes.up.t |
| dd20 | 6f 20 30 78 46 46 46 46 2e 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | o.0xFFFF...........}............ |
| dd40 | 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 55 73 61 67 65 | ///.<summary>..........///.Usage |
| dd60 | 73 20 69 6e 20 74 68 65 20 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 20 48 49 44 20 75 73 61 67 | s.in.the.GenericDesktop.HID.usag |
| dd80 | 65 20 70 61 67 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d | e.page...........///.</summary>. |
| dda0 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 68 74 74 70 | .........///.<seealso.cref="http |
| ddc0 | 3a 2f 2f 77 77 77 2e 75 73 62 2e 6f 72 67 2f 64 65 76 65 6c 6f 70 65 72 73 2f 68 69 64 70 61 67 | ://www.usb.org/developers/hidpag |
| dde0 | 65 2f 48 75 74 31 5f 31 32 76 32 2e 70 64 66 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c | e/Hut1_12v2.pdf"/>..........publ |
| de00 | 69 63 20 65 6e 75 6d 20 47 65 6e 65 72 69 63 44 65 73 6b 74 6f 70 0d 0a 20 20 20 20 20 20 20 20 | ic.enum.GenericDesktop.......... |
| de20 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 64 65 66 69 6e 65 64 20 3d 20 30 78 30 30 2c | {..............Undefined.=.0x00, |
| de40 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 69 6e 74 65 72 20 3d 20 30 78 30 31 2c 0d 0a 20 | ..............Pointer.=.0x01,... |
| de60 | 20 20 20 20 20 20 20 20 20 20 20 4d 6f 75 73 65 20 3d 20 30 78 30 32 2c 0d 0a 20 20 20 20 20 20 | ...........Mouse.=.0x02,........ |
| de80 | 20 20 20 20 20 20 4a 6f 79 73 74 69 63 6b 20 3d 20 30 78 30 34 2c 0d 0a 20 20 20 20 20 20 20 20 | ......Joystick.=.0x04,.......... |
| dea0 | 20 20 20 20 47 61 6d 65 70 61 64 20 3d 20 30 78 30 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ....Gamepad.=.0x05,............. |
| dec0 | 20 4b 65 79 62 6f 61 72 64 20 3d 20 30 78 30 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4b | .Keyboard.=.0x06,..............K |
| dee0 | 65 79 70 61 64 20 3d 20 30 78 30 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 75 6c 74 69 | eypad.=.0x07,..............Multi |
| df00 | 41 78 69 73 43 6f 6e 74 72 6f 6c 6c 65 72 20 3d 20 30 78 30 38 2c 0d 0a 20 20 20 20 20 20 20 20 | AxisController.=.0x08,.......... |
| df20 | 20 20 20 20 54 61 62 6c 65 74 50 43 43 6f 6e 74 72 6f 6c 73 20 3d 20 30 78 30 39 2c 0d 0a 20 20 | ....TabletPCControls.=.0x09,.... |
| df40 | 20 20 20 20 20 20 20 20 20 20 41 73 73 69 73 74 69 76 65 43 6f 6e 74 72 6f 6c 20 3d 20 30 78 30 | ..........AssistiveControl.=.0x0 |
| df60 | 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 58 20 3d 20 30 78 33 30 2c 0d 0a 20 20 20 20 20 | A,..............X.=.0x30,....... |
| df80 | 20 20 20 20 20 20 20 59 20 3d 20 30 78 33 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5a 20 | .......Y.=.0x31,..............Z. |
| dfa0 | 3d 20 30 78 33 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 78 20 3d 20 30 78 33 33 2c 0d | =.0x32,..............Rx.=.0x33,. |
| dfc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 79 20 3d 20 30 78 33 34 2c 0d 0a 20 20 20 20 20 20 20 | .............Ry.=.0x34,......... |
| dfe0 | 20 20 20 20 20 52 7a 20 3d 20 30 78 33 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 6c 69 | .....Rz.=.0x35,..............Sli |
| e000 | 64 65 72 20 3d 20 30 78 33 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 69 61 6c 20 3d 20 | der.=.0x36,..............Dial.=. |
| e020 | 30 78 33 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 68 65 65 6c 20 3d 20 30 78 33 38 2c | 0x37,..............Wheel.=.0x38, |
| e040 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 61 74 53 77 69 74 63 68 20 3d 20 30 78 33 39 2c 0d | ..............HatSwitch.=.0x39,. |
| e060 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 75 6e 74 65 64 42 75 66 66 65 72 20 3d 20 30 78 33 | .............CountedBuffer.=.0x3 |
| e080 | 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 43 6f 75 6e 74 20 3d 20 30 78 33 42 | A,..............ByteCount.=.0x3B |
| e0a0 | 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 6f 74 69 6f 6e 57 61 6b 65 75 70 20 3d 20 30 78 | ,..............MotionWakeup.=.0x |
| e0c0 | 33 43 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 72 74 20 3d 20 30 78 33 44 2c 0d 0a | 3C,..............Start.=.0x3D,.. |
| e0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 53 65 6c 65 63 74 20 3d 20 30 78 33 45 2c 0d 0a 20 20 20 20 | ............Select.=.0x3E,...... |
| e100 | 20 20 20 20 20 20 20 20 56 78 20 3d 20 30 78 34 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........Vx.=.0x40,.............. |
| e120 | 56 79 20 3d 20 30 78 34 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 7a 20 3d 20 30 78 34 | Vy.=.0x41,..............Vz.=.0x4 |
| e140 | 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 62 72 78 20 3d 20 30 78 34 33 2c 0d 0a 20 20 | 2,..............Vbrx.=.0x43,.... |
| e160 | 20 20 20 20 20 20 20 20 20 20 56 62 72 79 20 3d 20 30 78 34 34 2c 0d 0a 20 20 20 20 20 20 20 20 | ..........Vbry.=.0x44,.......... |
| e180 | 20 20 20 20 56 62 72 7a 20 3d 20 30 78 34 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 6e | ....Vbrz.=.0x45,..............Vn |
| e1a0 | 6f 20 3d 20 30 78 34 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 65 61 74 75 72 65 4e 6f | o.=.0x46,..............FeatureNo |
| e1c0 | 74 69 66 69 63 61 74 69 6f 6e 20 3d 20 30 78 34 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tification.=.0x47,.............. |
| e1e0 | 52 65 73 6f 6c 75 74 69 6f 6e 4d 75 6c 74 69 70 6c 69 65 72 20 3d 20 30 78 34 38 2c 0d 0a 20 20 | ResolutionMultiplier.=.0x48,.... |
| e200 | 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 43 6f 6e 74 72 6f 6c 20 3d 20 30 78 38 30 2c 0d | ..........SystemControl.=.0x80,. |
| e220 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 50 6f 77 65 72 44 6f 77 6e 20 3d 20 30 | .............SystemPowerDown.=.0 |
| e240 | 78 38 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 53 6c 65 65 70 20 3d 20 | x81,..............SystemSleep.=. |
| e260 | 30 78 38 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 57 61 6b 65 55 70 20 | 0x82,..............SystemWakeUp. |
| e280 | 3d 20 30 78 38 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 43 6f 6e 74 65 | =.0x83,..............SystemConte |
| e2a0 | 78 74 4d 65 6e 75 20 3d 20 30 78 38 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 | xtMenu.=.0x84,..............Syst |
| e2c0 | 65 6d 4d 61 69 6e 4d 65 6e 75 20 3d 20 30 78 38 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | emMainMenu.=.0x85,.............. |
| e2e0 | 53 79 73 74 65 6d 41 70 70 4d 65 6e 75 20 3d 20 30 78 38 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 | SystemAppMenu.=.0x86,........... |
| e300 | 20 20 20 53 79 73 74 65 6d 4d 65 6e 75 48 65 6c 70 20 3d 20 30 78 38 37 2c 0d 0a 20 20 20 20 20 | ...SystemMenuHelp.=.0x87,....... |
| e320 | 20 20 20 20 20 20 20 53 79 73 74 65 6d 4d 65 6e 75 45 78 69 74 20 3d 20 30 78 38 38 2c 0d 0a 20 | .......SystemMenuExit.=.0x88,... |
| e340 | 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 4d 65 6e 75 53 65 6c 65 63 74 20 3d 20 30 78 | ...........SystemMenuSelect.=.0x |
| e360 | 38 39 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 4d 65 6e 75 52 69 67 68 74 | 89,..............SystemMenuRight |
| e380 | 20 3d 20 30 78 38 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 4d 65 6e 75 | .=.0x8A,..............SystemMenu |
| e3a0 | 4c 65 66 74 20 3d 20 30 78 38 42 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d | Left.=.0x8B,..............System |
| e3c0 | 4d 65 6e 75 55 70 20 3d 20 30 78 38 43 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 | MenuUp.=.0x8C,..............Syst |
| e3e0 | 65 6d 4d 65 6e 75 44 6f 77 6e 20 3d 20 30 78 38 44 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | emMenuDown.=.0x8D,.............. |
| e400 | 53 79 73 74 65 6d 43 6f 6c 64 52 65 73 74 61 72 74 20 3d 20 30 78 38 45 2c 0d 0a 20 20 20 20 20 | SystemColdRestart.=.0x8E,....... |
| e420 | 20 20 20 20 20 20 20 53 79 73 74 65 6d 57 61 72 6d 52 65 73 74 61 72 74 20 3d 20 30 78 38 46 2c | .......SystemWarmRestart.=.0x8F, |
| e440 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 70 61 64 55 70 20 3d 20 30 78 39 30 2c 0d 0a 20 20 | ..............DpadUp.=.0x90,.... |
| e460 | 20 20 20 20 20 20 20 20 20 20 44 70 61 64 44 6f 77 6e 20 3d 20 30 78 39 31 2c 0d 0a 20 20 20 20 | ..........DpadDown.=.0x91,...... |
| e480 | 20 20 20 20 20 20 20 20 44 70 61 64 52 69 67 68 74 20 3d 20 30 78 39 32 2c 0d 0a 20 20 20 20 20 | ........DpadRight.=.0x92,....... |
| e4a0 | 20 20 20 20 20 20 20 44 70 61 64 4c 65 66 74 20 3d 20 30 78 39 33 2c 0d 0a 20 20 20 20 20 20 20 | .......DpadLeft.=.0x93,......... |
| e4c0 | 20 20 20 20 20 53 79 73 74 65 6d 44 6f 63 6b 20 3d 20 30 78 41 30 2c 0d 0a 20 20 20 20 20 20 20 | .....SystemDock.=.0xA0,......... |
| e4e0 | 20 20 20 20 20 53 79 73 74 65 6d 55 6e 64 6f 63 6b 20 3d 20 30 78 41 31 2c 0d 0a 20 20 20 20 20 | .....SystemUndock.=.0xA1,....... |
| e500 | 20 20 20 20 20 20 20 53 79 73 74 65 6d 53 65 74 75 70 20 3d 20 30 78 41 32 2c 0d 0a 20 20 20 20 | .......SystemSetup.=.0xA2,...... |
| e520 | 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 42 72 65 61 6b 20 3d 20 30 78 41 33 2c 0d 0a 20 20 20 | ........SystemBreak.=.0xA3,..... |
| e540 | 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 44 65 62 75 67 67 65 72 42 72 65 61 6b 20 3d 20 30 | .........SystemDebuggerBreak.=.0 |
| e560 | 78 41 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 70 70 6c 69 63 61 74 69 6f 6e 42 72 65 | xA4,..............ApplicationBre |
| e580 | 61 6b 20 3d 20 30 78 41 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 70 70 6c 69 63 61 74 | ak.=.0xA5,..............Applicat |
| e5a0 | 69 6f 6e 44 65 62 75 67 67 65 72 42 72 65 61 6b 20 3d 20 30 78 41 36 2c 0d 0a 20 20 20 20 20 20 | ionDebuggerBreak.=.0xA6,........ |
| e5c0 | 20 20 20 20 20 20 53 79 73 74 65 6d 53 70 65 61 6b 65 72 4d 75 74 65 20 3d 20 30 78 41 37 2c 0d | ......SystemSpeakerMute.=.0xA7,. |
| e5e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 48 69 62 65 72 6e 61 74 65 20 3d 20 30 | .............SystemHibernate.=.0 |
| e600 | 78 41 38 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 44 69 73 70 6c 61 79 49 | xA8,..............SystemDisplayI |
| e620 | 6e 76 65 72 74 20 3d 20 30 78 42 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 | nvert.=.0xB0,..............Syste |
| e640 | 6d 44 69 73 70 6c 61 79 49 6e 74 65 72 6e 61 6c 20 3d 20 30 78 42 31 2c 0d 0a 20 20 20 20 20 20 | mDisplayInternal.=.0xB1,........ |
| e660 | 20 20 20 20 20 20 53 79 73 74 65 6d 44 69 73 70 6c 61 79 45 78 74 65 72 6e 61 6c 20 3d 20 30 78 | ......SystemDisplayExternal.=.0x |
| e680 | 42 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 44 69 73 70 6c 61 79 42 6f | B2,..............SystemDisplayBo |
| e6a0 | 74 68 20 3d 20 30 78 42 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 44 69 | th.=.0xB3,..............SystemDi |
| e6c0 | 73 70 6c 61 79 44 75 61 6c 20 3d 20 30 78 42 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 | splayDual.=.0xB4,..............S |
| e6e0 | 79 73 74 65 6d 44 69 73 70 6c 61 79 54 6f 67 67 6c 65 49 6e 74 45 78 74 20 3d 20 30 78 42 35 2c | ystemDisplayToggleIntExt.=.0xB5, |
| e700 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d 44 69 73 70 6c 61 79 53 77 61 70 50 | ..............SystemDisplaySwapP |
| e720 | 72 69 6d 61 72 79 53 65 63 6f 6e 64 61 72 79 20 3d 20 30 78 42 36 2c 0d 0a 20 20 20 20 20 20 20 | rimarySecondary.=.0xB6,......... |
| e740 | 20 20 20 20 20 53 79 73 74 65 6d 44 69 73 70 6c 61 79 4c 43 44 41 75 74 6f 53 63 61 6c 65 20 3d | .....SystemDisplayLCDAutoScale.= |
| e760 | 20 30 78 42 37 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c | .0xB7..........}............publ |
| e780 | 69 63 20 65 6e 75 6d 20 53 69 6d 75 6c 61 74 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 | ic.enum.Simulation..........{... |
| e7a0 | 20 20 20 20 20 20 20 20 20 20 20 55 6e 64 65 66 69 6e 65 64 20 3d 20 30 78 30 30 2c 0d 0a 20 20 | ...........Undefined.=.0x00,.... |
| e7c0 | 20 20 20 20 20 20 20 20 20 20 46 6c 69 67 68 74 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 | ..........FlightSimulationDevice |
| e7e0 | 20 3d 20 30 78 30 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6f 6d 6f 62 69 6c 65 | .=.0x01,..............Automobile |
| e800 | 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 32 2c 0d 0a 20 20 20 20 20 20 | SimulationDevice.=.0x02,........ |
| e820 | 20 20 20 20 20 20 54 61 6e 6b 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 | ......TankSimulationDevice.=.0x0 |
| e840 | 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 70 61 63 65 73 68 69 70 53 69 6d 75 6c 61 74 | 3,..............SpaceshipSimulat |
| e860 | 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 | ionDevice.=.0x04,..............S |
| e880 | 75 62 6d 61 72 69 6e 65 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 35 2c | ubmarineSimulationDevice.=.0x05, |
| e8a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 61 69 6c 69 6e 67 53 69 6d 75 6c 61 74 69 6f 6e 44 | ..............SailingSimulationD |
| e8c0 | 65 76 69 63 65 20 3d 20 30 78 30 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 6f 74 6f 72 | evice.=.0x06,..............Motor |
| e8e0 | 63 79 63 6c 65 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 37 2c 0d 0a 20 | cycleSimulationDevice.=.0x07,... |
| e900 | 20 20 20 20 20 20 20 20 20 20 20 53 70 6f 72 74 73 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 | ...........SportsSimulationDevic |
| e920 | 65 20 3d 20 30 78 30 38 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 69 72 70 6c 61 6e 65 53 | e.=.0x08,..............AirplaneS |
| e940 | 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 39 2c 0d 0a 20 20 20 20 20 20 20 | imulationDevice.=.0x09,......... |
| e960 | 20 20 20 20 20 48 65 6c 69 63 6f 70 74 65 72 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 | .....HelicopterSimulationDevice. |
| e980 | 3d 20 30 78 30 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 67 69 63 43 61 72 70 65 74 | =.0x0A,..............MagicCarpet |
| e9a0 | 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d 20 30 78 30 42 2c 0d 0a 20 20 20 20 20 20 | SimulationDevice.=.0x0B,........ |
| e9c0 | 20 20 20 20 20 20 42 69 63 79 6c 63 6c 65 53 69 6d 75 6c 61 74 69 6f 6e 44 65 76 69 63 65 20 3d | ......BicylcleSimulationDevice.= |
| e9e0 | 20 30 78 30 43 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 69 67 68 74 43 6f 6e 74 72 6f | .0x0C,..............FlightContro |
| ea00 | 6c 53 74 69 63 6b 20 3d 20 30 78 32 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 69 67 | lStick.=.0x20,..............Flig |
| ea20 | 68 74 53 74 69 63 6b 20 3d 20 30 78 32 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 79 63 | htStick.=.0x21,..............Cyc |
| ea40 | 6c 69 63 43 6f 6e 74 72 6f 6c 20 3d 20 30 78 32 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | licControl.=.0x22,.............. |
| ea60 | 43 79 63 6c 69 63 54 72 69 6d 20 3d 20 30 78 32 33 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | CyclicTrim.=.0x23,.............. |
| ea80 | 46 6c 69 67 68 74 59 6f 6b 65 20 3d 20 30 78 32 34 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | FlightYoke.=.0x24,.............. |
| eaa0 | 54 72 61 63 6b 43 6f 6e 74 72 6f 6c 20 3d 20 30 78 32 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | TrackControl.=.0x25,............ |
| eac0 | 20 20 41 69 6c 65 72 6f 6e 20 3d 20 30 78 42 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 | ..Aileron.=.0xB0,..............A |
| eae0 | 69 6c 65 72 6f 6e 54 72 69 6d 20 3d 20 30 78 42 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ileronTrim.=.0xB1,.............. |
| eb00 | 41 6e 74 69 54 6f 72 71 75 65 43 6f 6e 74 72 6f 6c 20 3d 20 30 78 42 32 2c 0d 0a 20 20 20 20 20 | AntiTorqueControl.=.0xB2,....... |
| eb20 | 20 20 20 20 20 20 20 41 75 74 6f 70 69 6c 6f 74 45 6e 61 62 6c 65 20 3d 20 30 78 42 33 2c 0d 0a | .......AutopilotEnable.=.0xB3,.. |
| eb40 | 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 66 66 52 65 6c 65 61 73 65 20 3d 20 30 78 42 34 2c | ............ChaffRelease.=.0xB4, |
| eb60 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6c 6c 65 63 74 69 76 65 43 6f 6e 74 72 6f 6c 20 | ..............CollectiveControl. |
| eb80 | 3d 20 30 78 42 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 69 76 65 42 72 65 61 6b 20 3d | =.0xB5,..............DiveBreak.= |
| eba0 | 20 30 78 42 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 6c 65 63 74 72 6f 6e 69 63 43 6f | .0xB6,..............ElectronicCo |
| ebc0 | 75 6e 74 65 72 6d 65 61 73 75 72 65 73 20 3d 20 30 78 42 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 | untermeasures.=.0xB7,........... |
| ebe0 | 20 20 20 45 6c 65 76 61 74 6f 72 20 3d 20 30 78 42 38 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ...Elevator.=.0xB8,............. |
| ec00 | 20 45 6c 65 76 61 74 6f 72 54 72 69 6d 20 3d 20 30 78 42 39 2c 0d 0a 20 20 20 20 20 20 20 20 20 | .ElevatorTrim.=.0xB9,........... |
| ec20 | 20 20 20 52 75 64 64 65 72 20 3d 20 30 78 42 41 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 | ...Rudder.=.0xBA,..............T |
| ec40 | 68 72 6f 74 74 6c 65 20 3d 20 30 78 42 42 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 69 | hrottle.=.0xBB,..............Fli |
| ec60 | 67 68 74 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 3d 20 30 78 42 43 2c 0d 0a 20 20 20 20 20 | ghtCommunications.=.0xBC,....... |
| ec80 | 20 20 20 20 20 20 20 46 6c 61 72 65 52 65 6c 65 61 73 65 20 3d 20 30 78 42 44 2c 0d 0a 20 20 20 | .......FlareRelease.=.0xBD,..... |
| eca0 | 20 20 20 20 20 20 20 20 20 4c 61 6e 64 69 6e 67 47 65 61 72 20 3d 20 30 78 42 45 2c 0d 0a 20 20 | .........LandingGear.=.0xBE,.... |
| ecc0 | 20 20 20 20 20 20 20 20 20 20 54 6f 65 42 72 65 61 6b 20 3d 20 30 78 42 46 2c 0d 0a 20 20 20 20 | ..........ToeBreak.=.0xBF,...... |
| ece0 | 20 20 20 20 20 20 20 20 54 72 69 67 67 65 72 20 3d 20 30 78 43 30 2c 0d 0a 20 20 20 20 20 20 20 | ........Trigger.=.0xC0,......... |
| ed00 | 20 20 20 20 20 57 65 61 70 6f 6e 73 41 72 6d 20 3d 20 30 78 43 31 2c 0d 0a 20 20 20 20 20 20 20 | .....WeaponsArm.=.0xC1,......... |
| ed20 | 20 20 20 20 20 57 65 61 70 6f 6e 73 53 65 6c 65 63 74 20 3d 20 30 78 43 32 2c 0d 0a 20 20 20 20 | .....WeaponsSelect.=.0xC2,...... |
| ed40 | 20 20 20 20 20 20 20 20 57 69 6e 67 46 6c 61 70 73 20 3d 20 30 78 43 33 2c 0d 0a 20 20 20 20 20 | ........WingFlaps.=.0xC3,....... |
| ed60 | 20 20 20 20 20 20 20 41 63 63 65 6c 65 72 61 74 6f 72 20 3d 20 30 78 43 34 2c 0d 0a 20 20 20 20 | .......Accelerator.=.0xC4,...... |
| ed80 | 20 20 20 20 20 20 20 20 42 72 61 6b 65 20 3d 20 30 78 43 35 2c 0d 0a 20 20 20 20 20 20 20 20 20 | ........Brake.=.0xC5,........... |
| eda0 | 20 20 20 43 6c 75 74 63 68 20 3d 20 30 78 43 36 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 | ...Clutch.=.0xC6,..............S |
| edc0 | 68 69 66 74 65 72 20 3d 20 30 78 43 37 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 65 65 | hifter.=.0xC7,..............Stee |
| ede0 | 72 69 6e 67 20 3d 20 30 78 43 38 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 75 72 72 65 74 | ring.=.0xC8,..............Turret |
| ee00 | 44 69 72 65 63 74 69 6f 6e 20 3d 20 30 78 43 39 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 | Direction.=.0xC9,..............B |
| ee20 | 61 72 72 65 6c 45 6c 65 76 61 74 69 6f 6e 20 3d 20 30 78 43 41 2c 0d 0a 20 20 20 20 20 20 20 20 | arrelElevation.=.0xCA,.......... |
| ee40 | 20 20 20 20 44 69 76 65 50 6c 61 6e 65 20 3d 20 30 78 43 42 2c 0d 0a 20 20 20 20 20 20 20 20 20 | ....DivePlane.=.0xCB,........... |
| ee60 | 20 20 20 42 61 6c 6c 61 73 74 20 3d 20 30 78 43 43 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...Ballast.=.0xCC,.............. |
| ee80 | 42 69 63 79 63 6c 65 43 72 61 6e 6b 20 3d 20 30 78 43 44 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | BicycleCrank.=.0xCD,............ |
| eea0 | 20 20 48 61 6e 64 6c 65 42 61 72 73 20 3d 20 30 78 43 45 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..HandleBars.=.0xCE,............ |
| eec0 | 20 20 46 72 6f 6e 74 42 72 61 6b 65 20 3d 20 30 78 43 46 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..FrontBrake.=.0xCF,............ |
| eee0 | 20 20 52 65 61 72 42 72 61 6b 65 20 3d 20 30 78 44 30 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d | ..RearBrake.=.0xD0..........}... |
| ef00 | 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 65 6e 75 6d 20 42 75 74 74 6f 6e 0d 0a 20 20 20 | .........public.enum.Button..... |
| ef20 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 64 65 66 69 6e 65 64 20 3d 20 | .....{..............Undefined.=. |
| ef40 | 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6d 61 72 79 2c 0d 0a 20 20 20 20 20 20 | 0,..............Primary,........ |
| ef60 | 20 20 20 20 20 20 53 65 63 6f 6e 64 61 72 79 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 65 | ......Secondary,..............Te |
| ef80 | 72 74 69 61 72 79 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 00 00 00 | rtiary..........}......}..}..... |
| efa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 48 49 44 00 1b 00 00 00 | ........................HID..... |
| efc0 | 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 48 49 44 00 | UnityEngine.InputSystem.HID. |