| ofs | hex dump | ascii |
|---|
| 0000 | 00 00 0f 81 00 00 df 88 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 | 28 cf 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 12 00 00 00 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 00 00 | ............InputControlScheme.. |
| 10a0 | b4 ce 00 00 75 73 69 6e 67 20 53 79 73 74 65 6d 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e | ....using.System;..using.System. |
| 10c0 | 43 6f 6c 6c 65 63 74 69 6f 6e 73 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43 6f 6c 6c 65 | Collections;..using.System.Colle |
| 10e0 | 63 74 69 6f 6e 73 2e 47 65 6e 65 72 69 63 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 4c 69 | ctions.Generic;..using.System.Li |
| 1100 | 6e 71 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 54 65 78 74 3b 0d 0a 75 73 69 6e 67 20 55 | nq;..using.System.Text;..using.U |
| 1120 | 6e 69 74 79 2e 43 6f 6c 6c 65 63 74 69 6f 6e 73 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e | nity.Collections;..using.UnityEn |
| 1140 | 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 4c 61 79 6f 75 74 73 3b 0d 0a 75 73 69 6e 67 | gine.InputSystem.Layouts;..using |
| 1160 | 20 55 6e 69 74 79 45 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 | .UnityEngine.InputSystem.Utiliti |
| 1180 | 65 73 3b 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 69 6e 74 72 6f 64 75 63 65 20 74 68 65 20 63 | es;....////TODO:.introduce.the.c |
| 11a0 | 6f 6e 63 65 70 74 20 6f 66 20 61 20 22 76 61 72 69 61 74 69 6f 6e 22 0d 0a 2f 2f 2f 2f 20 20 20 | oncept.of.a."variation"..////... |
| 11c0 | 20 20 20 2d 20 61 20 76 61 72 69 61 74 69 6f 6e 20 69 73 20 6a 75 73 74 20 61 20 76 61 72 69 61 | ...-.a.variation.is.just.a.varia |
| 11e0 | 6e 74 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2c 20 6e 6f 74 20 61 20 66 75 | nt.of.a.control.scheme,.not.a.fu |
| 1200 | 6c 6c 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 62 79 20 69 74 73 65 6c 66 0d 0a 2f 2f 2f | ll.control.scheme.by.itself../// |
| 1220 | 2f 20 20 20 20 20 20 2d 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 76 61 72 69 61 74 69 6f 6e | /......-.an.individual.variation |
| 1240 | 20 63 61 6e 20 62 65 20 74 6f 67 67 6c 65 64 20 6f 6e 20 61 6e 64 20 6f 66 66 20 69 6e 64 65 70 | .can.be.toggled.on.and.off.indep |
| 1260 | 65 6e 64 65 6e 74 6c 79 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 2d 20 77 68 69 6c 65 20 61 20 63 6f | endently..////......-.while.a.co |
| 1280 | 6e 74 72 6f 6c 20 69 73 20 69 73 20 61 63 74 69 76 65 2c 20 61 6c 6c 20 69 74 73 20 76 61 72 69 | ntrol.is.is.active,.all.its.vari |
| 12a0 | 61 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 74 6f 67 67 6c 65 64 20 6f 6e 20 61 72 65 20 61 | ations.that.are.toggled.on.are.a |
| 12c0 | 6c 73 6f 20 61 63 74 69 76 65 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 2d 20 61 73 73 69 67 6e 6d 65 | lso.active..////......-.assignme |
| 12e0 | 6e 74 20 74 6f 20 76 61 72 69 61 74 69 6f 6e 73 20 77 6f 72 6b 73 20 74 68 65 20 73 61 6d 65 20 | nt.to.variations.works.the.same. |
| 1300 | 61 73 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 | as.assignment.to.control.schemes |
| 1320 | 0d 0a 2f 2f 2f 2f 20 20 75 73 65 20 63 61 73 65 3a 20 6c 65 66 74 2f 72 69 67 68 74 20 73 74 69 | ..////..use.case:.left/right.sti |
| 1340 | 63 6b 20 74 6f 67 67 6c 65 73 2c 20 6c 65 66 74 2f 72 69 67 68 74 20 62 75 6d 70 65 72 20 74 6f | ck.toggles,.left/right.bumper.to |
| 1360 | 67 67 6c 65 73 2c 20 65 74 63 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 69 6e 74 72 6f 64 75 63 | ggles,.etc....////TODO:.introduc |
| 1380 | 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 70 72 65 63 65 64 65 6e 63 65 20 77 68 65 72 65 20 6f 6e | e.concept.of.precedence.where.on |
| 13a0 | 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 77 69 6c 6c 20 62 65 20 70 72 65 66 65 72 72 | e.control.scheme.will.be.preferr |
| 13c0 | 65 64 20 6f 76 65 72 20 61 6e 6f 74 68 65 72 20 74 68 61 74 20 69 73 20 61 6c 73 6f 20 61 20 6d | ed.over.another.that.is.also.a.m |
| 13e0 | 61 74 63 68 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 28 6d 69 67 68 74 20 62 65 20 69 74 73 20 65 6e | atch..////......(might.be.its.en |
| 1400 | 6f 75 67 68 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 74 68 69 73 20 73 69 6d 70 6c 79 20 74 68 | ough.to.represent.this.simply.th |
| 1420 | 72 6f 75 67 68 20 6f 72 64 65 72 69 6e 67 20 62 79 20 67 69 76 69 6e 67 20 74 68 65 20 75 73 65 | rough.ordering.by.giving.the.use |
| 1440 | 72 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 74 68 65 20 6f 72 64 65 72 69 6e 67 20 74 68 72 6f | r.control.over.the.ordering.thro |
| 1460 | 75 67 68 20 74 68 65 20 55 49 29 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 61 6c 6c 6f 77 | ugh.the.UI)....////REVIEW:.allow |
| 1480 | 20 61 73 73 6f 63 69 61 74 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 77 69 74 | .associating.control.schemes.wit |
| 14a0 | 68 20 70 6c 61 74 66 6f 72 6d 73 2c 20 74 6f 6f 3f 0d 0a 0d 0a 6e 61 6d 65 73 70 61 63 65 20 55 | h.platforms,.too?....namespace.U |
| 14c0 | 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 0d 0a 7b 0d 0a 20 20 20 20 2f | nityEngine.InputSystem..{....../ |
| 14e0 | 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 2f 2f 2f 20 41 20 6e 61 6d 65 64 20 73 65 | //.<summary>......///.A.named.se |
| 1500 | 74 20 6f 66 20 7a 65 72 6f 20 6f 72 20 6d 6f 72 65 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 | t.of.zero.or.more.device.require |
| 1520 | 6d 65 6e 74 73 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 20 61 73 73 6f 63 69 61 74 65 64 20 62 | ments.along.with.an.associated.b |
| 1540 | 69 6e 64 69 6e 67 20 67 72 6f 75 70 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 | inding.group.......///.</summary |
| 1560 | 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 43 6f | >......///.<remarks>......///.Co |
| 1580 | 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 70 72 6f 76 69 64 65 20 61 6e 20 61 64 64 69 74 69 6f | ntrol.schemes.provide.an.additio |
| 15a0 | 6e 61 6c 20 6c 61 79 65 72 20 6f 6e 20 74 6f 70 20 6f 66 20 62 69 6e 64 69 6e 67 20 67 72 6f 75 | nal.layer.on.top.of.binding.grou |
| 15c0 | 70 73 2e 20 57 68 69 6c 65 20 62 69 6e 64 69 6e 67 0d 0a 20 20 20 20 2f 2f 2f 20 67 72 6f 75 70 | ps..While.binding......///.group |
| 15e0 | 73 20 61 6c 6c 6f 77 20 64 69 66 66 65 72 65 6e 74 69 61 74 69 6e 67 20 73 65 74 73 20 6f 66 20 | s.allow.differentiating.sets.of. |
| 1600 | 62 69 6e 64 69 6e 67 73 20 28 65 2e 67 2e 20 61 20 22 4b 65 79 62 6f 61 72 64 26 61 6d 70 3b 4d | bindings.(e.g..a."Keyboard&M |
| 1620 | 6f 75 73 65 22 20 67 72 6f 75 70 20 76 65 72 73 75 73 0d 0a 20 20 20 20 2f 2f 2f 20 61 20 22 47 | ouse".group.versus......///.a."G |
| 1640 | 61 6d 65 70 61 64 22 20 67 72 6f 75 70 29 2c 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 | amepad".group),.control.schemes. |
| 1660 | 69 6d 70 6f 73 65 20 61 20 73 65 74 20 6f 66 20 64 65 76 69 63 65 73 20 72 65 71 75 69 72 65 6d | impose.a.set.of.devices.requirem |
| 1680 | 65 6e 74 73 20 74 68 61 74 20 6d 75 73 74 20 62 65 0d 0a 20 20 20 20 2f 2f 2f 20 6d 65 74 20 69 | ents.that.must.be......///.met.i |
| 16a0 | 6e 20 6f 72 64 65 72 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 73 65 74 20 6f 66 20 62 69 | n.order.for.a.specific.set.of.bi |
| 16c0 | 6e 64 69 6e 67 73 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 | ndings.to.be.usable.......///... |
| 16e0 | 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 | ...///.Note.that.control.schemes |
| 1700 | 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 64 65 66 69 6e 65 64 20 61 74 20 74 68 65 20 3c 73 65 65 | .can.only.be.defined.at.the.<see |
| 1720 | 20 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 41 73 73 65 74 22 2f 3e 20 6c 65 76 65 6c | .cref="InputActionAsset"/>.level |
| 1740 | 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c | .......///.</remarks>......///.< |
| 1760 | 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 41 73 73 65 74 2e 63 | seealso.cref="InputActionAsset.c |
| 1780 | 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 73 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c | ontrolSchemes"/>......///.<seeal |
| 17a0 | 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 53 65 74 75 70 45 78 74 65 6e 73 69 | so.cref="InputActionSetupExtensi |
| 17c0 | 6f 6e 73 2e 41 64 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 28 49 6e 70 75 74 41 63 74 69 6f 6e | ons.AddControlScheme(InputAction |
| 17e0 | 41 73 73 65 74 2c 73 74 72 69 6e 67 29 22 2f 3e 0d 0a 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 | Asset,string)"/>......[Serializa |
| 1800 | 62 6c 65 5d 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 20 49 6e 70 75 74 43 6f 6e | ble]......public.struct.InputCon |
| 1820 | 74 72 6f 6c 53 63 68 65 6d 65 20 3a 20 49 45 71 75 61 74 61 62 6c 65 3c 49 6e 70 75 74 43 6f 6e | trolScheme.:.IEquatable<InputCon |
| 1840 | 74 72 6f 6c 53 63 68 65 6d 65 3e 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | trolScheme>......{..........///. |
| 1860 | 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 61 6d 65 20 6f 66 20 74 | <summary>..........///.Name.of.t |
| 1880 | 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 20 4e 6f 74 20 3c 63 3e 6e 75 6c 6c 3c 2f | he.control.scheme..Not.<c>null</ |
| 18a0 | 63 3e 20 6f 72 20 65 6d 70 74 79 20 65 78 63 65 70 74 20 69 66 20 49 6e 70 75 74 43 6f 6e 74 72 | c>.or.empty.except.if.InputContr |
| 18c0 | 6f 6c 53 63 68 65 6d 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 6e 73 74 61 6e 63 65 20 69 | olScheme..........///.instance.i |
| 18e0 | 73 20 69 6e 76 61 6c 69 64 20 28 69 2e 65 2e 20 64 65 66 61 75 6c 74 2d 69 6e 69 74 69 61 6c 69 | s.invalid.(i.e..default-initiali |
| 1900 | 7a 65 64 29 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 | zed)...........///.</summary>... |
| 1920 | 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 4e 61 6d 65 20 6f 66 20 74 68 65 20 73 63 | .......///.<value>Name.of.the.sc |
| 1940 | 68 65 6d 65 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 | heme.</value>..........///.<rema |
| 1960 | 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4d 61 79 20 62 65 20 65 6d 70 74 79 20 6f | rks>..........///.May.be.empty.o |
| 1980 | 72 20 6e 75 6c 6c 20 65 78 63 65 70 74 20 69 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 | r.null.except.if.the.control.sch |
| 19a0 | 65 6d 65 20 69 73 20 70 61 72 74 20 6f 66 20 61 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 | eme.is.part.of.an.<see.cref="Inp |
| 19c0 | 75 74 41 63 74 69 6f 6e 41 73 73 65 74 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c | utActionAsset"/>...........///.< |
| 19e0 | 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 | /remarks>..........///.<seealso. |
| 1a00 | 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 53 65 74 75 70 45 78 74 65 6e 73 69 6f 6e 73 | cref="InputActionSetupExtensions |
| 1a20 | 2e 41 64 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 28 49 6e 70 75 74 41 63 74 69 6f 6e 41 73 73 | .AddControlScheme(InputActionAss |
| 1a40 | 65 74 2c 73 74 72 69 6e 67 29 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 | et,string)"/>..........public.st |
| 1a60 | 72 69 6e 67 20 6e 61 6d 65 20 3d 3e 20 6d 5f 4e 61 6d 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ring.name.=>.m_Name;............ |
| 1a80 | 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 42 69 6e 64 69 | ///.<summary>..........///.Bindi |
| 1aa0 | 6e 67 20 67 72 6f 75 70 20 74 68 61 74 20 69 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 | ng.group.that.is.associated.with |
| 1ac0 | 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 20 4e 6f 74 20 3c 63 3e 6e 75 6c 6c | .the.control.scheme..Not.<c>null |
| 1ae0 | 3c 2f 63 3e 20 6f 72 20 65 6d 70 74 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 78 63 65 70 | </c>.or.empty..........///.excep |
| 1b00 | 74 20 69 66 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 69 73 20 69 6e 76 61 6c | t.if.InputControlScheme.is.inval |
| 1b20 | 69 64 20 28 69 2e 65 2e 20 64 65 66 61 75 6c 74 2d 69 6e 69 74 69 61 6c 69 7a 65 64 29 2e 0d 0a | id.(i.e..default-initialized)... |
| 1b40 | 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 20 20 20 20 | ........///.</summary>.......... |
| 1b60 | 2f 2f 2f 20 3c 76 61 6c 75 65 3e 42 69 6e 64 69 6e 67 20 67 72 6f 75 70 20 66 6f 72 20 74 68 65 | ///.<value>Binding.group.for.the |
| 1b80 | 20 73 63 68 65 6d 65 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 | .scheme.</value>..........///.<r |
| 1ba0 | 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 6c 6c 20 62 69 6e 64 69 6e 67 | emarks>..........///.All.binding |
| 1bc0 | 73 20 69 6e 20 74 68 69 73 20 67 72 6f 75 70 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 74 | s.in.this.group.are.considered.t |
| 1be0 | 6f 20 62 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e | o.be.part.of.the.control.scheme. |
| 1c00 | 0d 0a 20 20 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 | ..........///.</remarks>........ |
| 1c20 | 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 42 69 6e 64 69 6e | ..///.<seealso.cref="InputBindin |
| 1c40 | 67 2e 67 72 6f 75 70 73 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 | g.groups"/>..........public.stri |
| 1c60 | 6e 67 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | ng.bindingGroup..........{...... |
| 1c80 | 20 20 20 20 20 20 20 20 67 65 74 20 3d 3e 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 3b 0d 0a | ........get.=>.m_BindingGroup;.. |
| 1ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 20 3d 3e 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 | ............set.=>.m_BindingGrou |
| 1cc0 | 70 20 3d 20 76 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 | p.=.value;..........}........... |
| 1ce0 | 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 76 69 | .///.<summary>..........///.Devi |
| 1d00 | 63 65 73 20 75 73 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 0d | ces.used.by.the.control.scheme.. |
| 1d20 | 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 20 20 20 | .........///.</summary>......... |
| 1d40 | 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 44 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 | .///.<value>Device.requirements. |
| 1d60 | 6f 66 20 74 68 65 20 73 63 68 65 6d 65 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 | of.the.scheme.</value>.......... |
| 1d80 | 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 20 74 77 | ///.<remarks>..........///.No.tw |
| 1da0 | 6f 20 65 6e 74 72 69 65 73 20 77 69 6c 6c 20 62 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 6d 61 74 | o.entries.will.be.allowed.to.mat |
| 1dc0 | 63 68 20 74 68 65 20 73 61 6d 65 20 63 6f 6e 74 72 6f 6c 20 6f 72 20 64 65 76 69 63 65 20 61 74 | ch.the.same.control.or.device.at |
| 1de0 | 20 72 75 6e 74 69 6d 65 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20 74 68 65 20 72 65 71 75 69 72 | .runtime.in.order.for.the.requir |
| 1e00 | 65 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 | ements..........///.of.the.contr |
| 1e20 | 6f 6c 20 73 63 68 65 6d 65 20 74 6f 20 62 65 20 63 6f 6e 73 69 64 65 72 65 64 20 73 61 74 69 73 | ol.scheme.to.be.considered.satis |
| 1e40 | 66 69 65 64 2e 20 49 66 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 65 20 65 6e 74 72 79 | fied..If,.for.example,.one.entry |
| 1e60 | 20 72 65 71 75 69 72 65 73 20 61 20 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 22 20 61 6e | .requires.a."<Gamepad>".an |
| 1e80 | 64 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 6f 74 68 65 72 20 65 6e 74 72 79 20 72 65 71 | d..........///.another.entry.req |
| 1ea0 | 75 69 72 65 73 20 61 20 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 22 2c 20 74 68 65 6e 20 | uires.a."<Gamepad>",.then. |
| 1ec0 | 61 74 20 72 75 6e 74 69 6d 65 20 74 77 6f 20 67 61 6d 65 70 61 64 73 20 77 69 6c 6c 20 62 65 20 | at.runtime.two.gamepads.will.be. |
| 1ee0 | 72 65 71 75 69 72 65 64 20 65 76 65 6e 20 74 68 6f 75 67 68 20 61 20 73 69 6e 67 6c 65 0d 0a 20 | required.even.though.a.single... |
| 1f00 | 20 20 20 20 20 20 20 2f 2f 2f 20 6f 6e 65 20 77 69 6c 6c 20 6d 61 74 63 68 20 62 6f 74 68 20 72 | .......///.one.will.match.both.r |
| 1f20 | 65 71 75 69 72 65 6d 65 6e 74 73 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 2e 20 48 6f 77 65 76 65 | equirements.individually..Howeve |
| 1f40 | 72 2c 20 69 66 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 65 20 65 6e 74 72 79 20 72 65 | r,.if,.for.example,.one.entry.re |
| 1f60 | 71 75 69 72 65 73 20 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 2f 6c 65 66 74 53 74 69 63 | quires."<Gamepad>/leftStic |
| 1f80 | 6b 22 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 64 20 61 6e 6f 74 68 65 72 20 72 65 71 75 | k"..........///.and.another.requ |
| 1fa0 | 69 72 65 73 20 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 2c 20 74 68 65 20 73 61 6d 65 20 | ires."<Gamepad>,.the.same. |
| 1fc0 | 64 65 76 69 63 65 20 63 61 6e 20 6d 61 74 63 68 20 62 6f 74 68 20 72 65 71 75 69 72 65 6d 65 6e | device.can.match.both.requiremen |
| 1fe0 | 74 73 20 61 73 20 65 61 63 68 20 6f 6e 65 20 72 65 73 6f 6c 76 65 73 20 74 6f 0d 0a 20 20 20 20 | ts.as.each.one.resolves.to...... |
| 2000 | 20 20 20 20 2f 2f 2f 20 61 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 | ....///.a.different.control..... |
| 2020 | 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 74 20 69 74 20 61 6c 6c | ......///..........///.It.it.all |
| 2040 | 6f 77 65 64 20 74 6f 20 64 65 66 69 6e 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 77 | owed.to.define.control.schemes.w |
| 2060 | 69 74 68 6f 75 74 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 69 2e 65 2e | ithout.device.requirements,.i.e. |
| 2080 | 20 66 6f 72 20 77 68 69 63 68 20 74 68 69 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 70 72 6f | .for.which.this..........///.pro |
| 20a0 | 70 65 72 74 79 20 77 69 6c 6c 20 62 65 20 61 6e 20 65 6d 70 74 79 20 61 72 72 61 79 2e 20 4e 6f | perty.will.be.an.empty.array..No |
| 20c0 | 74 65 2c 20 68 6f 77 65 76 65 72 2c 20 74 68 61 74 20 66 65 61 74 75 72 65 73 20 73 75 63 68 20 | te,.however,.that.features.such. |
| 20e0 | 61 73 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 0d 0a 20 20 20 | as.automatic.control.scheme..... |
| 2100 | 20 20 20 20 20 2f 2f 2f 20 73 77 69 74 63 68 69 6e 67 20 69 6e 20 3c 73 65 65 20 63 72 65 66 3d | .....///.switching.in.<see.cref= |
| 2120 | 22 50 6c 61 79 65 72 49 6e 70 75 74 22 2f 3e 20 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20 77 69 | "PlayerInput"/>.will.not.work.wi |
| 2140 | 74 68 20 73 75 63 68 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 2e 0d 0a 20 20 20 20 20 20 | th.such.control.schemes......... |
| 2160 | 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 70 75 62 6c 69 63 | ..///.</remarks>..........public |
| 2180 | 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 | .ReadOnlyArray<DeviceRequirement |
| 21a0 | 3e 20 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 3e 0d 0a 20 20 20 20 20 20 20 | >.deviceRequirements.=>......... |
| 21c0 | 20 20 20 20 20 6e 65 77 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 44 65 76 69 63 65 52 65 71 | .....new.ReadOnlyArray<DeviceReq |
| 21e0 | 75 69 72 65 6d 65 6e 74 3e 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b | uirement>(m_DeviceRequirements); |
| 2200 | 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 20 20 20 20 20 | ............///.<summary>....... |
| 2220 | 20 20 20 2f 2f 2f 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 | ...///.Initialize.the.control.sc |
| 2240 | 68 65 6d 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 6e 61 6d 65 2c 20 64 65 76 69 63 65 | heme.with.the.given.name,.device |
| 2260 | 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 64 20 | .requirements,..........///.and. |
| 2280 | 62 69 6e 64 69 6e 67 20 67 72 6f 75 70 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 | binding.group...........///.</su |
| 22a0 | 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d | mmary>..........///.<param.name= |
| 22c0 | 22 6e 61 6d 65 22 3e 4e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 73 63 68 65 6d | "name">Name.to.use.for.the.schem |
| 22e0 | 65 2e 20 52 65 71 75 69 72 65 64 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f | e..Required.</param>..........// |
| 2300 | 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 73 22 3e 4c 69 73 74 20 6f 66 20 | /.<param.name="devices">List.of. |
| 2320 | 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 | device.requirements.</param>.... |
| 2340 | 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 62 69 6e 64 69 6e 67 47 72 | ......///.<param.name="bindingGr |
| 2360 | 6f 75 70 22 3e 4e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 62 69 6e 64 69 6e 67 | oup">Name.to.use.for.the.binding |
| 2380 | 20 67 72 6f 75 70 20 28 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 42 69 6e 64 | .group.(see.<see.cref="InputBind |
| 23a0 | 69 6e 67 2e 67 72 6f 75 70 73 22 2f 3e 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 73 73 6f | ing.groups"/>)..........///.asso |
| 23c0 | 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 20 | ciated.with.the.control.scheme.. |
| 23e0 | 49 66 20 74 68 69 73 20 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 20 6f 72 20 65 6d 70 74 79 2c | If.this.is.<c>null</c>.or.empty, |
| 2400 | 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 6e 61 6d 65 22 2f 3e 20 69 73 0d 0a 20 20 20 | .<paramref.name="name"/>.is..... |
| 2420 | 20 20 20 20 20 2f 2f 2f 20 75 73 65 64 20 69 6e 73 74 65 61 64 20 28 77 69 74 68 20 3c 73 65 65 | .....///.used.instead.(with.<see |
| 2440 | 20 63 72 65 66 3d 22 49 6e 70 75 74 42 69 6e 64 69 6e 67 2e 53 65 70 61 72 61 74 6f 72 22 2f 3e | .cref="InputBinding.Separator"/> |
| 2460 | 20 63 68 61 72 61 63 74 65 72 73 20 73 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 65 20 6e 61 | .characters.stripped.from.the.na |
| 2480 | 6d 65 29 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 | me).</param>..........///.<excep |
| 24a0 | 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e | tion.cref="ArgumentNullException |
| 24c0 | 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 6e 61 6d 65 22 2f 3e 20 69 73 20 3c 63 3e | "><paramref.name="name"/>.is.<c> |
| 24e0 | 6e 75 6c 6c 3c 2f 63 3e 20 6f 72 20 65 6d 70 74 79 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a | null</c>.or.empty.</exception>.. |
| 2500 | 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d | ........public.InputControlSchem |
| 2520 | 65 28 73 74 72 69 6e 67 20 6e 61 6d 65 2c 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 44 65 76 69 63 | e(string.name,.IEnumerable<Devic |
| 2540 | 65 52 65 71 75 69 72 65 6d 65 6e 74 3e 20 64 65 76 69 63 65 73 20 3d 20 6e 75 6c 6c 2c 20 73 74 | eRequirement>.devices.=.null,.st |
| 2560 | 72 69 6e 67 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 | ring.bindingGroup.=.null)....... |
| 2580 | 20 20 20 20 20 20 20 3a 20 74 68 69 73 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | .......:.this()..........{...... |
| 25a0 | 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 | ........if.(string.IsNullOrEmpty |
| 25c0 | 28 6e 61 6d 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e | (name))..................throw.n |
| 25e0 | 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 | ew.ArgumentNullException(nameof( |
| 2600 | 6e 61 6d 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 4e 61 6d 65 41 6e | name));................SetNameAn |
| 2620 | 64 42 69 6e 64 69 6e 67 47 72 6f 75 70 28 6e 61 6d 65 2c 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 | dBindingGroup(name,.bindingGroup |
| 2640 | 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 | );................m_DeviceRequir |
| 2660 | 65 6d 65 6e 74 73 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | ements.=.null;..............if.( |
| 2680 | 64 65 76 69 63 65 73 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d | devices.!=.null)..............{. |
| 26a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 | .................m_DeviceRequire |
| 26c0 | 6d 65 6e 74 73 20 3d 20 64 65 76 69 63 65 73 2e 54 6f 41 72 72 61 79 28 29 3b 0d 0a 20 20 20 20 | ments.=.devices.ToArray();...... |
| 26e0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d | ............if.(m_DeviceRequirem |
| 2700 | 65 6e 74 73 2e 4c 65 6e 67 74 68 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ents.Length.==.0)............... |
| 2720 | 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6e 75 | .......m_DeviceRequirements.=.nu |
| 2740 | 6c 6c 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 | ll;..............}..........}... |
| 2760 | 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 76 6f 69 64 20 53 65 74 4e 61 6d 65 41 6e | .........internal.void.SetNameAn |
| 2780 | 64 42 69 6e 64 69 6e 67 47 72 6f 75 70 28 73 74 72 69 6e 67 20 6e 61 6d 65 2c 20 73 74 72 69 6e | dBindingGroup(string.name,.strin |
| 27a0 | 67 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 | g.bindingGroup.=.null).......... |
| 27c0 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 4e 61 6d 65 20 3d 20 6e 61 6d 65 3b 0d 0a 20 | {..............m_Name.=.name;... |
| 27e0 | 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 6c 4f 72 45 | ...........if.(!string.IsNullOrE |
| 2800 | 6d 70 74 79 28 62 69 6e 64 69 6e 67 47 72 6f 75 70 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | mpty(bindingGroup))............. |
| 2820 | 20 20 20 20 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 62 69 6e 64 69 6e 67 47 72 6f | .....m_BindingGroup.=.bindingGro |
| 2840 | 75 70 3b 0d 0a 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 | up;..............else........... |
| 2860 | 20 20 20 20 20 20 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 6e 61 6d 65 2e 43 6f 6e | .......m_BindingGroup.=.name.Con |
| 2880 | 74 61 69 6e 73 28 49 6e 70 75 74 42 69 6e 64 69 6e 67 2e 53 65 70 61 72 61 74 6f 72 29 0d 0a 20 | tains(InputBinding.Separator)... |
| 28a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 20 6e 61 6d 65 2e 52 65 70 6c 61 63 | ...................?.name.Replac |
| 28c0 | 65 28 49 6e 70 75 74 42 69 6e 64 69 6e 67 2e 6b 53 65 70 61 72 61 74 6f 72 53 74 72 69 6e 67 2c | e(InputBinding.kSeparatorString, |
| 28e0 | 20 22 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 6e 61 6d 65 | ."")......................:.name |
| 2900 | 3b 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 73 75 6d | ;..........}............///.<sum |
| 2920 | 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 69 76 65 6e 20 61 20 6c 69 73 74 20 | mary>..........///.Given.a.list. |
| 2940 | 6f 66 20 64 65 76 69 63 65 73 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 74 72 6f 6c | of.devices.and.a.list.of.control |
| 2960 | 20 73 63 68 65 6d 65 73 2c 20 66 69 6e 64 20 74 68 65 20 6d 6f 73 74 20 73 75 69 74 61 62 6c 65 | .schemes,.find.the.most.suitable |
| 2980 | 20 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 73 63 68 65 6d 65 20 74 6f 20 | .control..........///.scheme.to. |
| 29a0 | 75 73 65 20 77 69 74 68 20 74 68 65 20 64 65 76 69 63 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f | use.with.the.devices.........../ |
| 29c0 | 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 2f 20 3c 70 61 72 61 | //.</summary>..........///.<para |
| 29e0 | 6d 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 73 22 3e 41 20 6c 69 73 74 20 6f 66 20 64 65 76 69 63 | m.name="devices">A.list.of.devic |
| 2a00 | 65 73 2e 20 49 66 20 74 68 65 20 6c 69 73 74 20 69 73 20 65 6d 70 74 79 2c 20 6f 6e 6c 79 20 73 | es..If.the.list.is.empty,.only.s |
| 2a20 | 63 68 65 6d 65 73 20 77 69 74 68 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 6d 70 74 79 20 3c | chemes.with..........///.empty.< |
| 2a40 | 73 65 65 20 63 72 65 66 3d 22 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 22 2f 3e 20 | see.cref="deviceRequirements"/>. |
| 2a60 | 6c 69 73 74 73 20 77 69 6c 6c 20 67 65 74 20 6d 61 74 63 68 65 64 2e 3c 2f 70 61 72 61 6d 3e 0d | lists.will.get.matched.</param>. |
| 2a80 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 63 68 65 6d 65 | .........///.<param.name="scheme |
| 2aa0 | 73 22 3e 41 20 6c 69 73 74 20 6f 66 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 2e 3c 2f 70 | s">A.list.of.control.schemes.</p |
| 2ac0 | 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 | aram>..........///.<param.name=" |
| 2ae0 | 6d 75 73 74 49 6e 63 6c 75 64 65 44 65 76 69 63 65 22 3e 49 66 20 6e 6f 74 20 3c 63 3e 6e 75 6c | mustIncludeDevice">If.not.<c>nul |
| 2b00 | 6c 3c 2f 63 3e 2c 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 6d 61 74 63 68 20 68 61 73 20 74 6f | l</c>,.a.successful.match.has.to |
| 2b20 | 20 69 6e 63 6c 75 64 65 20 74 68 65 20 67 69 76 65 6e 20 64 65 76 69 63 65 2e 3c 2f 70 61 72 61 | .include.the.given.device.</para |
| 2b40 | 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 61 6c 6c | m>..........///.<param.name="all |
| 2b60 | 6f 77 55 6e 73 75 63 63 65 73 66 75 6c 4d 61 74 63 68 22 3e 49 66 20 74 72 75 65 2c 20 74 68 65 | owUnsuccesfulMatch">If.true,.the |
| 2b80 | 6e 20 61 6c 6c 6f 77 20 72 65 74 75 72 6e 69 6e 67 20 61 20 6d 61 74 63 68 20 74 68 61 74 20 68 | n.allow.returning.a.match.that.h |
| 2ba0 | 61 73 20 75 6e 73 61 74 69 73 66 69 65 64 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 62 75 74 20 | as.unsatisfied.requirements.but. |
| 2bc0 | 73 74 69 6c 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6d 61 74 63 68 65 64 20 61 74 20 6c 65 | still..........///.matched.at.le |
| 2be0 | 61 73 74 20 73 6f 6d 65 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 20 49 66 20 74 68 65 72 65 20 61 | ast.some.requirement..If.there.a |
| 2c00 | 72 65 20 73 65 76 65 72 61 6c 20 75 6e 73 75 63 63 65 73 73 66 75 6c 20 6d 61 74 63 68 65 73 2c | re.several.unsuccessful.matches, |
| 2c20 | 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 73 63 68 65 6d 65 20 69 73 20 73 74 69 6c 6c 20 74 68 | .the.returned.scheme.is.still.th |
| 2c40 | 65 20 68 69 67 68 65 73 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 73 63 6f 72 69 6e 67 20 6f | e.highest..........///.scoring.o |
| 2c60 | 6e 65 20 61 6d 6f 6e 67 20 74 68 6f 73 65 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 | ne.among.those.</param>......... |
| 2c80 | 20 2f 2f 2f 20 3c 74 79 70 65 70 61 72 61 6d 20 6e 61 6d 65 3d 22 54 44 65 76 69 63 65 73 22 3e | .///.<typeparam.name="TDevices"> |
| 2ca0 | 43 6f 6c 6c 65 63 74 69 6f 6e 20 74 79 70 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 6c | Collection.type.to.use.for.the.l |
| 2cc0 | 69 73 74 20 6f 66 20 64 65 76 69 63 65 73 2e 3c 2f 74 79 70 65 70 61 72 61 6d 3e 0d 0a 20 20 20 | ist.of.devices.</typeparam>..... |
| 2ce0 | 20 20 20 20 20 2f 2f 2f 20 3c 74 79 70 65 70 61 72 61 6d 20 6e 61 6d 65 3d 22 54 53 63 68 65 6d | .....///.<typeparam.name="TSchem |
| 2d00 | 65 73 22 3e 43 6f 6c 6c 65 63 74 69 6f 6e 20 74 79 70 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 | es">Collection.type.to.use.for.t |
| 2d20 | 68 65 20 6c 69 73 74 20 6f 66 20 73 63 68 65 6d 65 73 2e 3c 2f 74 79 70 65 70 61 72 61 6d 3e 0d | he.list.of.schemes.</typeparam>. |
| 2d40 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 63 6f 6e 74 72 6f | .........///.<returns>The.contro |
| 2d60 | 6c 20 73 63 68 65 6d 65 20 74 68 61 74 20 62 65 73 74 20 6d 61 74 63 68 65 64 20 74 68 65 20 67 | l.scheme.that.best.matched.the.g |
| 2d80 | 69 76 65 6e 20 64 65 76 69 63 65 73 20 6f 72 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 20 69 66 20 6e | iven.devices.or.<c>null</c>.if.n |
| 2da0 | 6f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 73 63 68 65 6d 65 20 77 61 73 20 66 6f 75 6e 64 20 | o..........///.scheme.was.found. |
| 2dc0 | 73 75 69 74 61 62 6c 65 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f | suitable.</returns>........../// |
| 2de0 | 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 | .<exception.cref="ArgumentNullEx |
| 2e00 | 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 73 | ception"><paramref.name="devices |
| 2e20 | 22 2f 3e 20 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 20 2d 6f 72 2d 0d 0a 20 20 20 20 20 20 20 | "/>.is.<c>null</c>.-or-......... |
| 2e40 | 20 2f 2f 2f 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 63 68 65 6d 65 73 22 2f 3e 20 | .///.<paramref.name="schemes"/>. |
| 2e60 | 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 | is.<c>null</c>.</exception>..... |
| 2e80 | 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | .....///.<remarks>..........///. |
| 2ea0 | 41 6e 79 20 73 75 63 63 65 73 73 66 75 6c 20 6d 61 74 63 68 20 28 73 65 65 20 3c 73 65 65 20 63 | Any.successful.match.(see.<see.c |
| 2ec0 | 72 65 66 3d 22 4d 61 74 63 68 52 65 73 75 6c 74 2e 69 73 53 75 63 63 65 73 73 66 75 6c 4d 61 74 | ref="MatchResult.isSuccessfulMat |
| 2ee0 | 63 68 22 2f 3e 29 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 69 64 65 72 65 64 2e 0d 0a 20 20 20 20 | ch"/>).will.be.considered....... |
| 2f00 | 20 20 20 20 2f 2f 2f 20 54 68 65 20 6f 6e 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 | ....///.The.one.that.matches.the |
| 2f20 | 20 6d 6f 73 74 20 61 6d 6f 75 6e 74 20 6f 66 20 64 65 76 69 63 65 73 20 28 73 65 65 20 3c 73 65 | .most.amount.of.devices.(see.<se |
| 2f40 | 65 20 63 72 65 66 3d 22 4d 61 74 63 68 52 65 73 75 6c 74 2e 64 65 76 69 63 65 73 22 2f 3e 29 0d | e.cref="MatchResult.devices"/>). |
| 2f60 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 20 49 | .........///.will.be.returned..I |
| 2f80 | 66 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 63 68 65 6d 65 73 20 6d 61 74 63 68 65 73 20 | f.more.than.one.schemes.matches. |
| 2fa0 | 65 71 75 61 6c 6c 79 20 77 65 6c 6c 2c 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 20 65 6e 63 6f | equally.well,.the.first.one.enco |
| 2fc0 | 75 6e 74 65 72 65 64 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 6e 20 74 68 65 20 6c 69 73 74 | untered..........///.in.the.list |
| 2fe0 | 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 | .is.returned...........///...... |
| 3000 | 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 73 63 68 65 6d 65 73 20 61 72 65 20 6e 6f | ....///.Note.that.schemes.are.no |
| 3020 | 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 6d 61 74 63 68 20 61 6c 6c 20 64 65 76 69 63 65 73 20 | t.required.to.match.all.devices. |
| 3040 | 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 6c 69 73 74 2e 20 54 68 65 20 72 65 73 75 6c | available.in.the.list..The.resul |
| 3060 | 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 62 65 20 74 68 | t..........///.will.simply.be.th |
| 3080 | 65 20 73 63 68 65 6d 65 20 74 68 61 74 20 6d 61 74 63 68 65 64 20 74 68 65 20 6d 6f 73 74 20 64 | e.scheme.that.matched.the.most.d |
| 30a0 | 65 76 69 63 65 73 20 6f 66 20 77 68 61 74 20 77 61 73 20 64 65 76 69 63 65 73 2e 20 55 73 65 20 | evices.of.what.was.devices..Use. |
| 30c0 | 3c 73 65 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 72 65 66 3d 22 50 69 63 6b 44 65 76 69 | <see..........///.cref="PickDevi |
| 30e0 | 63 65 73 46 72 6f 6d 7b 54 44 65 76 69 63 65 73 7d 22 2f 3e 20 74 6f 20 66 69 6e 64 20 74 68 65 | cesFrom{TDevices}"/>.to.find.the |
| 3100 | 20 64 65 76 69 63 65 73 20 74 68 61 74 20 61 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 73 | .devices.that.a.control.scheme.s |
| 3120 | 65 6c 65 63 74 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f | elects...........///..........// |
| 3140 | 2f 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 6f | /.This.method.is.parameterized.o |
| 3160 | 76 65 72 20 3c 74 79 70 65 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 54 44 65 76 69 63 65 73 | ver.<typeparamref.name="TDevices |
| 3180 | 22 2f 3e 20 61 6e 64 20 3c 74 79 70 65 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 54 53 63 68 | "/>.and.<typeparamref.name="TSch |
| 31a0 | 65 6d 65 73 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 6f 20 61 6c 6c 6f 77 20 61 76 | emes"/>..........///.to.allow.av |
| 31c0 | 6f 69 64 69 6e 67 20 47 43 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e 73 20 66 72 6f 6d 20 | oiding.GC.heap.allocations.from. |
| 31e0 | 62 6f 78 69 6e 67 20 6f 66 20 73 74 72 75 63 74 73 20 73 75 63 68 20 61 73 20 3c 73 65 65 20 63 | boxing.of.structs.such.as.<see.c |
| 3200 | 72 65 66 3d 22 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 7b 54 56 61 6c 75 65 7d 22 2f 3e 2e 0d 0a | ref="ReadOnlyArray{TValue}"/>... |
| 3220 | 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c | ........///..........///.<exampl |
| 3240 | 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 | e>..........///.<code>.......... |
| 3260 | 2f 2f 2f 20 2f 2f 20 43 72 65 61 74 65 20 61 6e 20 2e 69 6e 70 75 74 61 63 74 69 6f 6e 73 20 61 | ///.//.Create.an..inputactions.a |
| 3280 | 73 73 65 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 76 61 72 20 61 73 73 65 74 20 3d 20 53 | sset...........///.var.asset.=.S |
| 32a0 | 63 72 69 70 74 61 62 6c 65 4f 62 6a 65 63 74 2e 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 26 6c | criptableObject.CreateInstance&l |
| 32c0 | 74 3b 49 6e 70 75 74 41 63 74 69 6f 6e 41 73 73 65 74 26 67 74 3b 28 29 3b 0d 0a 20 20 20 20 20 | t;InputActionAsset>();....... |
| 32e0 | 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 41 64 64 20 73 6f 6d 65 20 | ...///..........///.//.Add.some. |
| 3300 | 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 74 6f 20 74 68 65 20 61 73 73 65 74 2e 0d 0a 20 | control.schemes.to.the.asset.... |
| 3320 | 20 20 20 20 20 20 20 2f 2f 2f 20 61 73 73 65 74 2e 41 64 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d | .......///.asset.AddControlSchem |
| 3340 | 65 28 22 4b 65 79 62 6f 61 72 64 4d 6f 75 73 65 22 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | e("KeyboardMouse")..........///. |
| 3360 | 20 20 20 20 2e 57 69 74 68 52 65 71 75 69 72 65 64 44 65 76 69 63 65 26 6c 74 3b 4b 65 79 62 6f | .....WithRequiredDevice<Keybo |
| 3380 | 61 72 64 26 67 74 3b 28 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 2e 57 69 74 68 | ard>()..........///......With |
| 33a0 | 52 65 71 75 69 72 65 64 44 65 76 69 63 65 26 6c 74 3b 4d 6f 75 73 65 26 67 74 3b 28 29 29 3b 0d | RequiredDevice<Mouse>());. |
| 33c0 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 73 73 65 74 2e 41 64 64 43 6f 6e 74 72 6f 6c 53 63 68 | .........///.asset.AddControlSch |
| 33e0 | 65 6d 65 28 22 47 61 6d 65 70 61 64 22 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 | eme("Gamepad")..........///..... |
| 3400 | 2e 57 69 74 68 52 65 71 75 69 72 65 64 44 65 76 69 63 65 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 | .WithRequiredDevice<Gamepad&g |
| 3420 | 74 3b 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 73 73 65 74 2e 41 64 64 43 6f 6e | t;());..........///.asset.AddCon |
| 3440 | 74 72 6f 6c 53 63 68 65 6d 65 28 22 44 75 61 6c 47 61 6d 65 70 61 64 22 29 0d 0a 20 20 20 20 20 | trolScheme("DualGamepad")....... |
| 3460 | 20 20 20 2f 2f 2f 20 20 20 20 20 2e 57 69 74 68 52 65 71 75 69 72 65 64 44 65 76 69 63 65 26 6c | ...///......WithRequiredDevice&l |
| 3480 | 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 28 29 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 | t;Gamepad>())..........///... |
| 34a0 | 20 20 2e 57 69 74 68 4f 70 74 69 6f 6e 61 6c 47 61 6d 65 70 61 64 26 6c 74 3b 47 61 6d 65 70 61 | ...WithOptionalGamepad<Gamepa |
| 34c0 | 64 26 67 74 3b 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 | d>());..........///.......... |
| 34e0 | 2f 2f 2f 20 2f 2f 20 41 64 64 20 73 6f 6d 65 20 64 65 76 69 63 65 73 20 74 68 61 74 20 77 65 20 | ///.//.Add.some.devices.that.we. |
| 3500 | 63 61 6e 20 74 65 73 74 20 77 69 74 68 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 76 61 72 20 | can.test.with...........///.var. |
| 3520 | 6b 65 79 62 6f 61 72 64 20 3d 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 41 64 64 44 65 76 69 63 65 | keyboard.=.InputSystem.AddDevice |
| 3540 | 26 6c 74 3b 4b 65 79 62 6f 61 72 64 26 67 74 3b 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f | <Keyboard>();........../// |
| 3560 | 20 76 61 72 20 6d 6f 75 73 65 20 3d 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 41 64 64 44 65 76 69 | .var.mouse.=.InputSystem.AddDevi |
| 3580 | 63 65 26 6c 74 3b 4d 6f 75 73 65 26 67 74 3b 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | ce<Mouse>();..........///. |
| 35a0 | 76 61 72 20 67 61 6d 65 70 61 64 31 20 3d 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 41 64 64 44 65 | var.gamepad1.=.InputSystem.AddDe |
| 35c0 | 76 69 63 65 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 | vice<Gamepad>();.......... |
| 35e0 | 2f 2f 2f 20 76 61 72 20 67 61 6d 65 70 61 64 32 20 3d 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 41 | ///.var.gamepad2.=.InputSystem.A |
| 3600 | 64 64 44 65 76 69 63 65 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 28 29 3b 0d 0a 20 20 20 20 | ddDevice<Gamepad>();...... |
| 3620 | 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4d 61 74 63 68 69 6e 67 | ....///..........///.//.Matching |
| 3640 | 20 77 69 74 68 20 6a 75 73 74 20 61 20 6b 65 79 62 6f 61 72 64 20 77 6f 6e 27 74 20 6d 61 74 63 | .with.just.a.keyboard.won't.matc |
| 3660 | 68 20 61 6e 79 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 6e 70 75 74 | h.any.scheme...........///.Input |
| 3680 | 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 2e 46 69 6e 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 46 | ControlScheme.FindControlSchemeF |
| 36a0 | 6f 72 44 65 76 69 63 65 73 28 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 6e 65 77 20 | orDevices(..........///.....new. |
| 36c0 | 49 6e 70 75 74 44 65 76 69 63 65 5b 5d 20 7b 20 6b 65 79 62 6f 61 72 64 20 7d 2c 20 61 73 73 65 | InputDevice[].{.keyboard.},.asse |
| 36e0 | 74 2e 63 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d | t.controlSchemes);..........///. |
| 3700 | 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4d 61 74 63 68 69 6e 67 20 77 69 74 68 20 61 20 | .........///.//.Matching.with.a. |
| 3720 | 6b 65 79 62 6f 61 72 64 20 61 6e 64 20 6d 6f 75 73 65 20 77 69 74 68 20 6d 61 74 63 68 20 74 68 | keyboard.and.mouse.with.match.th |
| 3740 | 65 20 22 4b 65 79 62 6f 61 72 64 4d 6f 75 73 65 22 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 | e."KeyboardMouse".scheme........ |
| 3760 | 20 20 20 2f 2f 2f 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 2e 46 69 6e 64 43 6f | ...///.InputControlScheme.FindCo |
| 3780 | 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 65 76 69 63 65 73 28 0d 0a 20 20 20 20 20 20 20 20 | ntrolSchemeForDevices(.......... |
| 37a0 | 2f 2f 2f 20 20 20 20 20 6e 65 77 20 49 6e 70 75 74 44 65 76 69 63 65 5b 5d 20 7b 20 6b 65 79 62 | ///.....new.InputDevice[].{.keyb |
| 37c0 | 6f 61 72 64 2c 20 6d 6f 75 73 65 20 7d 2c 20 61 73 73 65 74 2e 63 6f 6e 74 72 6f 6c 53 63 68 65 | oard,.mouse.},.asset.controlSche |
| 37e0 | 6d 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | mes);..........///..........///. |
| 3800 | 2f 2f 20 4d 61 74 63 68 69 6e 67 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 67 61 6d 65 70 61 | //.Matching.with.a.single.gamepa |
| 3820 | 64 20 77 69 6c 6c 20 6d 61 74 63 68 20 74 68 65 20 22 47 61 6d 65 70 61 64 22 20 73 63 68 65 6d | d.will.match.the."Gamepad".schem |
| 3840 | 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 73 69 6e | e...........///.//.Note.that.sin |
| 3860 | 63 65 20 74 68 65 20 73 65 63 6f 6e 64 20 67 61 6d 65 70 61 64 20 69 73 20 6f 70 74 69 6f 6e 61 | ce.the.second.gamepad.is.optiona |
| 3880 | 6c 20 69 6e 20 22 44 75 61 6c 47 61 6d 65 70 61 64 22 20 63 6f 75 6c 64 0d 0a 20 20 20 20 20 20 | l.in."DualGamepad".could........ |
| 38a0 | 20 20 2f 2f 2f 20 2f 2f 20 6d 61 74 63 68 20 74 68 65 20 73 61 6d 65 20 73 65 74 20 6f 66 20 64 | ..///.//.match.the.same.set.of.d |
| 38c0 | 65 76 69 63 65 73 20 62 75 74 20 69 74 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 61 6e 79 20 | evices.but.it.doesn't.match.any. |
| 38e0 | 62 65 74 74 65 72 20 74 68 61 6e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 22 47 61 6d | better.than..........///.//."Gam |
| 3900 | 65 70 61 64 22 20 61 6e 64 20 74 68 61 74 20 6f 6e 65 20 63 6f 6d 65 73 20 66 69 72 73 74 20 69 | epad".and.that.one.comes.first.i |
| 3920 | 6e 20 74 68 65 20 6c 69 73 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 6e 70 75 74 43 6f | n.the.list...........///.InputCo |
| 3940 | 6e 74 72 6f 6c 53 63 68 65 6d 65 2e 46 69 6e 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 | ntrolScheme.FindControlSchemeFor |
| 3960 | 44 65 76 69 63 65 73 28 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 6e 65 77 20 49 6e | Devices(..........///.....new.In |
| 3980 | 70 75 74 44 65 76 69 63 65 5b 5d 20 7b 20 67 61 6d 65 70 61 64 31 20 7d 2c 20 61 73 73 65 74 2e | putDevice[].{.gamepad1.},.asset. |
| 39a0 | 63 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 | controlSchemes);..........///... |
| 39c0 | 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4d 61 74 63 68 69 6e 67 20 77 69 74 68 20 74 77 6f 20 | .......///.//.Matching.with.two. |
| 39e0 | 67 61 6d 65 70 61 64 73 20 77 69 6c 6c 20 6d 61 74 63 68 20 74 68 65 20 22 44 75 61 6c 47 61 6d | gamepads.will.match.the."DualGam |
| 3a00 | 65 70 61 64 22 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4e 6f | epad".scheme...........///.//.No |
| 3a20 | 74 65 20 74 68 61 74 20 22 47 61 6d 65 70 61 64 22 20 77 69 6c 6c 20 6d 61 74 63 68 20 74 68 69 | te.that."Gamepad".will.match.thi |
| 3a40 | 73 20 64 65 76 69 63 65 20 6c 69 73 74 20 61 73 20 77 65 6c 6c 2e 20 49 66 20 22 44 75 61 6c 47 | s.device.list.as.well..If."DualG |
| 3a60 | 61 6d 65 70 61 64 22 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 64 69 64 6e 27 74 20 65 | amepad"..........///.//.didn't.e |
| 3a80 | 78 69 73 74 2c 20 22 47 61 6d 65 70 61 64 22 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 72 65 73 | xist,."Gamepad".would.be.the.res |
| 3aa0 | 75 6c 74 20 68 65 72 65 2e 20 48 6f 77 65 76 65 72 2c 20 22 44 75 61 6c 47 61 6d 65 70 61 64 22 | ult.here..However,."DualGamepad" |
| 3ac0 | 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 6d 61 74 63 68 65 73 20 74 68 65 20 6c 69 73 | ..........///.//.matches.the.lis |
| 3ae0 | 74 20 62 65 74 74 65 72 20 74 68 61 6e 20 22 47 61 6d 65 70 61 64 22 20 73 6f 20 74 68 61 74 27 | t.better.than."Gamepad".so.that' |
| 3b00 | 73 20 77 68 61 74 20 67 65 74 73 20 72 65 74 75 72 6e 65 64 20 68 65 72 65 2e 0d 0a 20 20 20 20 | s.what.gets.returned.here....... |
| 3b20 | 20 20 20 20 2f 2f 2f 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 2e 46 69 6e 64 43 | ....///.InputControlScheme.FindC |
| 3b40 | 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 65 76 69 63 65 73 28 0d 0a 20 20 20 20 20 20 20 | ontrolSchemeForDevices(......... |
| 3b60 | 20 2f 2f 2f 20 20 20 20 20 6e 65 77 20 49 6e 70 75 74 44 65 76 69 63 65 5b 5d 20 7b 20 67 61 6d | .///.....new.InputDevice[].{.gam |
| 3b80 | 65 70 61 64 31 2c 20 67 61 6d 65 70 61 64 32 20 7d 2c 20 61 73 73 65 74 2e 63 6f 6e 74 72 6f 6c | epad1,.gamepad2.},.asset.control |
| 3ba0 | 53 63 68 65 6d 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f 64 65 3e 0d 0a | Schemes);..........///.</code>.. |
| 3bc0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 | ........///.</example>.......... |
| 3be0 | 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 | ///.</remarks>..........public.s |
| 3c00 | 74 61 74 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 3f 20 46 69 6e 64 43 6f | tatic.InputControlScheme?.FindCo |
| 3c20 | 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 65 76 69 63 65 73 3c 54 44 65 76 69 63 65 73 2c 20 | ntrolSchemeForDevices<TDevices,. |
| 3c40 | 54 53 63 68 65 6d 65 73 3e 28 54 44 65 76 69 63 65 73 20 64 65 76 69 63 65 73 2c 20 54 53 63 68 | TSchemes>(TDevices.devices,.TSch |
| 3c60 | 65 6d 65 73 20 73 63 68 65 6d 65 73 2c 20 49 6e 70 75 74 44 65 76 69 63 65 20 6d 75 73 74 49 6e | emes.schemes,.InputDevice.mustIn |
| 3c80 | 63 6c 75 64 65 44 65 76 69 63 65 20 3d 20 6e 75 6c 6c 2c 20 62 6f 6f 6c 20 61 6c 6c 6f 77 55 6e | cludeDevice.=.null,.bool.allowUn |
| 3ca0 | 73 75 63 63 65 73 66 75 6c 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 29 0d 0a 20 20 20 20 20 20 20 | succesfulMatch.=.false)......... |
| 3cc0 | 20 20 20 20 20 77 68 65 72 65 20 54 44 65 76 69 63 65 73 20 3a 20 49 52 65 61 64 4f 6e 6c 79 4c | .....where.TDevices.:.IReadOnlyL |
| 3ce0 | 69 73 74 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 | ist<InputDevice>..............wh |
| 3d00 | 65 72 65 20 54 53 63 68 65 6d 65 73 20 3a 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 49 6e 70 75 74 | ere.TSchemes.:.IEnumerable<Input |
| 3d20 | 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 3e 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 | ControlScheme>..........{....... |
| 3d40 | 20 20 20 20 20 20 20 69 66 20 28 64 65 76 69 63 65 73 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 | .......if.(devices.==.null)..... |
| 3d60 | 20 20 20 20 20 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 4e | .............throw.new.ArgumentN |
| 3d80 | 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 64 65 76 69 63 65 73 29 29 3b 0d 0a | ullException(nameof(devices));.. |
| 3da0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 63 68 65 6d 65 73 20 3d 3d 20 6e 75 6c 6c 29 | ............if.(schemes.==.null) |
| 3dc0 | 0d 0a 20 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 41 72 67 75 | ..................throw.new.Argu |
| 3de0 | 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 73 63 68 65 6d 65 73 | mentNullException(nameof(schemes |
| 3e00 | 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 46 69 6e 64 43 6f 6e 74 | ));................if.(!FindCont |
| 3e20 | 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 65 76 69 63 65 73 28 64 65 76 69 63 65 73 2c 20 73 63 68 | rolSchemeForDevices(devices,.sch |
| 3e40 | 65 6d 65 73 2c 20 6f 75 74 20 76 61 72 20 63 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 2c 20 6f 75 74 | emes,.out.var.controlScheme,.out |
| 3e60 | 20 76 61 72 20 6d 61 74 63 68 52 65 73 75 6c 74 2c 20 6d 75 73 74 49 6e 63 6c 75 64 65 44 65 76 | .var.matchResult,.mustIncludeDev |
| 3e80 | 69 63 65 2c 20 61 6c 6c 6f 77 55 6e 73 75 63 63 65 73 66 75 6c 4d 61 74 63 68 29 29 0d 0a 20 20 | ice,.allowUnsuccesfulMatch)).... |
| 3ea0 | 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 0d 0a 20 20 | ..............return.null;...... |
| 3ec0 | 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 52 65 73 75 6c 74 2e 44 69 73 70 6f 73 65 28 29 3b | ..........matchResult.Dispose(); |
| 3ee0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 53 63 68 65 | ..............return.controlSche |
| 3f00 | 6d 65 3b 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 69 63 | me;..........}............public |
| 3f20 | 20 73 74 61 74 69 63 20 62 6f 6f 6c 20 46 69 6e 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f | .static.bool.FindControlSchemeFo |
| 3f40 | 72 44 65 76 69 63 65 73 3c 54 44 65 76 69 63 65 73 2c 20 54 53 63 68 65 6d 65 73 3e 28 54 44 65 | rDevices<TDevices,.TSchemes>(TDe |
| 3f60 | 76 69 63 65 73 20 64 65 76 69 63 65 73 2c 20 54 53 63 68 65 6d 65 73 20 73 63 68 65 6d 65 73 2c | vices.devices,.TSchemes.schemes, |
| 3f80 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 | ..............out.InputControlSc |
| 3fa0 | 68 65 6d 65 20 63 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 2c 20 6f 75 74 20 4d 61 74 63 68 52 65 73 | heme.controlScheme,.out.MatchRes |
| 3fc0 | 75 6c 74 20 6d 61 74 63 68 52 65 73 75 6c 74 2c 20 49 6e 70 75 74 44 65 76 69 63 65 20 6d 75 73 | ult.matchResult,.InputDevice.mus |
| 3fe0 | 74 49 6e 63 6c 75 64 65 44 65 76 69 63 65 20 3d 20 6e 75 6c 6c 2c 20 62 6f 6f 6c 20 61 6c 6c 6f | tIncludeDevice.=.null,.bool.allo |
| 4000 | 77 55 6e 73 75 63 63 65 73 73 66 75 6c 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 29 0d 0a 20 20 20 | wUnsuccessfulMatch.=.false)..... |
| 4020 | 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 54 44 65 76 69 63 65 73 20 3a 20 49 52 65 61 64 4f | .........where.TDevices.:.IReadO |
| 4040 | 6e 6c 79 4c 69 73 74 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 | nlyList<InputDevice>............ |
| 4060 | 20 20 77 68 65 72 65 20 54 53 63 68 65 6d 65 73 20 3a 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 49 | ..where.TSchemes.:.IEnumerable<I |
| 4080 | 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 3e 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 | nputControlScheme>..........{... |
| 40a0 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 76 69 63 65 73 20 3d 3d 20 6e 75 6c 6c 29 0d | ...........if.(devices.==.null). |
| 40c0 | 0a 20 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 41 72 67 75 6d | .................throw.new.Argum |
| 40e0 | 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 64 65 76 69 63 65 73 29 | entNullException(nameof(devices) |
| 4100 | 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 63 68 65 6d 65 73 20 3d 3d 20 6e | );..............if.(schemes.==.n |
| 4120 | 75 6c 6c 29 0d 0a 20 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 | ull)..................throw.new. |
| 4140 | 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 73 63 68 | ArgumentNullException(nameof(sch |
| 4160 | 65 6d 65 73 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 74 63 68 52 65 73 75 | emes));................MatchResu |
| 4180 | 6c 74 3f 20 62 65 73 74 52 65 73 75 6c 74 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 | lt?.bestResult.=.null;.......... |
| 41a0 | 20 20 20 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 3f 20 62 65 73 74 53 63 68 65 | ....InputControlScheme?.bestSche |
| 41c0 | 6d 65 20 3d 20 6e 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 | me.=.null;................foreac |
| 41e0 | 68 20 28 76 61 72 20 73 63 68 65 6d 65 20 69 6e 20 73 63 68 65 6d 65 73 29 0d 0a 20 20 20 20 20 | h.(var.scheme.in.schemes)....... |
| 4200 | 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 76 61 72 20 72 65 | .......{..................var.re |
| 4220 | 73 75 6c 74 20 3d 20 73 63 68 65 6d 65 2e 50 69 63 6b 44 65 76 69 63 65 73 46 72 6f 6d 28 64 65 | sult.=.scheme.PickDevicesFrom(de |
| 4240 | 76 69 63 65 73 2c 20 66 61 76 6f 72 44 65 76 69 63 65 3a 20 6d 75 73 74 49 6e 63 6c 75 64 65 44 | vices,.favorDevice:.mustIncludeD |
| 4260 | 65 76 69 63 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 67 | evice);....................//.Ig |
| 4280 | 6e 6f 72 65 20 69 66 20 73 63 68 65 6d 65 20 64 6f 65 73 6e 27 74 20 66 69 74 20 64 65 76 69 63 | nore.if.scheme.doesn't.fit.devic |
| 42a0 | 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 72 65 73 75 6c 74 | es...................if.(!result |
| 42c0 | 2e 69 73 53 75 63 63 65 73 73 66 75 6c 4d 61 74 63 68 20 26 26 20 28 21 61 6c 6c 6f 77 55 6e 73 | .isSuccessfulMatch.&&.(!allowUns |
| 42e0 | 75 63 63 65 73 73 66 75 6c 4d 61 74 63 68 20 7c 7c 20 72 65 73 75 6c 74 2e 73 63 6f 72 65 20 3c | uccessfulMatch.||.result.score.< |
| 4300 | 3d 20 30 29 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))..................{........ |
| 4320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 44 69 73 70 6f 73 65 28 29 3b 0d | ..............result.Dispose();. |
| 4340 | 0a 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 | .....................continue;.. |
| 4360 | 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 20 | ................}............... |
| 4380 | 20 20 20 20 20 2f 2f 20 49 67 6e 6f 72 65 20 69 66 20 77 65 20 68 61 76 65 20 61 20 64 65 76 69 | .....//.Ignore.if.we.have.a.devi |
| 43a0 | 63 65 20 77 65 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 77 61 6e 74 20 74 6f 20 62 65 20 70 61 | ce.we.specifically.want.to.be.pa |
| 43c0 | 72 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 61 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 20 | rt.of.the.result.and............ |
| 43e0 | 20 20 20 20 20 20 2f 2f 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 61 74 63 68 20 64 6f 65 73 6e | ......//.the.current.match.doesn |
| 4400 | 27 74 20 68 61 76 65 20 69 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | 't.have.it...................if. |
| 4420 | 28 6d 75 73 74 49 6e 63 6c 75 64 65 44 65 76 69 63 65 20 21 3d 20 6e 75 6c 6c 20 26 26 20 21 72 | (mustIncludeDevice.!=.null.&&.!r |
| 4440 | 65 73 75 6c 74 2e 64 65 76 69 63 65 73 2e 43 6f 6e 74 61 69 6e 73 28 6d 75 73 74 49 6e 63 6c 75 | esult.devices.Contains(mustInclu |
| 4460 | 64 65 44 65 76 69 63 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 | deDevice))..................{... |
| 4480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 44 69 73 70 6f 73 | ...................result.Dispos |
| 44a0 | 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 63 6f 6e 74 69 6e | e();......................contin |
| 44c0 | 75 65 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 20 20 20 | ue;..................}.......... |
| 44e0 | 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 67 6e 6f 72 65 20 69 66 20 69 74 20 64 6f 65 73 20 66 | ..........//.Ignore.if.it.does.f |
| 4500 | 69 74 20 62 75 74 20 77 65 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 61 20 62 65 74 74 65 72 20 | it.but.we.already.have.a.better. |
| 4520 | 66 69 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 65 73 74 52 65 | fit...................if.(bestRe |
| 4540 | 73 75 6c 74 20 21 3d 20 6e 75 6c 6c 20 26 26 20 62 65 73 74 52 65 73 75 6c 74 2e 56 61 6c 75 65 | sult.!=.null.&&.bestResult.Value |
| 4560 | 2e 73 63 6f 72 65 20 3e 3d 20 72 65 73 75 6c 74 2e 73 63 6f 72 65 29 0d 0a 20 20 20 20 20 20 20 | .score.>=.result.score)......... |
| 4580 | 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 | .........{...................... |
| 45a0 | 72 65 73 75 6c 74 2e 44 69 73 70 6f 73 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | result.Dispose();............... |
| 45c0 | 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......continue;................ |
| 45e0 | 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 73 74 52 65 73 75 6c | ..}....................bestResul |
| 4600 | 74 3f 2e 44 69 73 70 6f 73 65 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t?.Dispose();................... |
| 4620 | 20 62 65 73 74 52 65 73 75 6c 74 20 3d 20 72 65 73 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 | .bestResult.=.result;........... |
| 4640 | 20 20 20 20 20 20 20 62 65 73 74 53 63 68 65 6d 65 20 3d 20 73 63 68 65 6d 65 3b 0d 0a 20 20 20 | .......bestScheme.=.scheme;..... |
| 4660 | 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 6d 61 74 63 68 52 | .........}................matchR |
| 4680 | 65 73 75 6c 74 20 3d 20 62 65 73 74 52 65 73 75 6c 74 20 3f 3f 20 64 65 66 61 75 6c 74 3b 0d 0a | esult.=.bestResult.??.default;.. |
| 46a0 | 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 3d 20 62 65 73 74 | ............controlScheme.=.best |
| 46c0 | 53 63 68 65 6d 65 20 3f 3f 20 64 65 66 61 75 6c 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | Scheme.??.default;.............. |
| 46e0 | 20 20 72 65 74 75 72 6e 20 62 65 73 74 52 65 73 75 6c 74 2e 48 61 73 56 61 6c 75 65 3b 0d 0a 20 | ..return.bestResult.HasValue;... |
| 4700 | 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 73 75 6d 6d 61 72 79 | .......}............///.<summary |
| 4720 | 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 | >..........///.Return.the.first. |
| 4740 | 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6c | control.schemes.from.the.given.l |
| 4760 | 69 73 74 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 67 69 76 65 6e 0d 0a 20 20 20 | ist.that.supports.the.given..... |
| 4780 | 20 20 20 20 20 2f 2f 2f 20 64 65 76 69 63 65 20 28 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 | .....///.device.(see.<see.cref=" |
| 47a0 | 53 75 70 70 6f 72 74 73 44 65 76 69 63 65 22 2f 3e 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f | SupportsDevice"/>).........../// |
| 47c0 | 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 70 61 72 61 6d 20 | .</summary>..........///.<param. |
| 47e0 | 6e 61 6d 65 3d 22 64 65 76 69 63 65 22 3e 41 6e 20 69 6e 70 75 74 20 64 65 76 69 63 65 2e 3c 2f | name="device">An.input.device.</ |
| 4800 | 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d | param>..........///.<param.name= |
| 4820 | 22 73 63 68 65 6d 65 73 22 3e 41 20 6c 69 73 74 20 6f 66 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 | "schemes">A.list.of.control.sche |
| 4840 | 6d 65 73 2e 20 43 61 6e 20 62 65 20 65 6d 70 74 79 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 | mes..Can.be.empty.</param>...... |
| 4860 | 20 20 20 20 2f 2f 2f 20 3c 74 79 70 65 70 61 72 61 6d 20 6e 61 6d 65 3d 22 54 53 63 68 65 6d 65 | ....///.<typeparam.name="TScheme |
| 4880 | 73 22 3e 43 6f 6c 6c 65 63 74 69 6f 6e 20 74 79 70 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 | s">Collection.type.to.use.for.th |
| 48a0 | 65 20 6c 69 73 74 20 6f 66 20 73 63 68 65 6d 65 73 2e 3c 2f 74 79 70 65 70 61 72 61 6d 3e 0d 0a | e.list.of.schemes.</typeparam>.. |
| 48c0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 66 69 72 73 74 20 73 | ........///.<returns>The.first.s |
| 48e0 | 63 68 65 6d 65 73 20 66 72 6f 6d 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 63 68 65 | chemes.from.<paramref.name="sche |
| 4900 | 6d 65 73 22 2f 3e 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 3c 70 61 72 61 6d 72 65 66 20 6e | mes"/>.that.supports.<paramref.n |
| 4920 | 61 6d 65 3d 22 64 65 76 69 63 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6f 72 20 3c | ame="device"/>..........///.or.< |
| 4940 | 63 3e 6e 75 6c 6c 3c 2f 63 3e 20 69 66 20 6e 6f 6e 65 20 6f 66 20 74 68 65 20 73 63 68 65 6d 65 | c>null</c>.if.none.of.the.scheme |
| 4960 | 73 20 69 73 20 75 73 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 64 65 76 69 63 65 2e 3c 2f 72 65 | s.is.usable.with.the.device.</re |
| 4980 | 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 | turns>..........///.<exception.c |
| 49a0 | 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 | ref="ArgumentNullException"><par |
| 49c0 | 61 6d 72 65 66 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 22 2f 3e 20 69 73 20 3c 63 3e 6e 75 6c 6c | amref.name="device"/>.is.<c>null |
| 49e0 | 3c 2f 63 3e 20 2d 6f 72 2d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 72 65 66 | </c>.-or-..........///.<paramref |
| 4a00 | 20 6e 61 6d 65 3d 22 73 63 68 65 6d 65 73 22 2f 3e 20 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e | .name="schemes"/>.is.<c>null</c> |
| 4a20 | 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 | .</exception>..........public.st |
| 4a40 | 61 74 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 3f 20 46 69 6e 64 43 6f 6e | atic.InputControlScheme?.FindCon |
| 4a60 | 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 65 76 69 63 65 3c 54 53 63 68 65 6d 65 73 3e 28 49 6e | trolSchemeForDevice<TSchemes>(In |
| 4a80 | 70 75 74 44 65 76 69 63 65 20 64 65 76 69 63 65 2c 20 54 53 63 68 65 6d 65 73 20 73 63 68 65 6d | putDevice.device,.TSchemes.schem |
| 4aa0 | 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 54 53 63 68 65 6d 65 73 20 | es)..............where.TSchemes. |
| 4ac0 | 3a 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 | :.IEnumerable<InputControlScheme |
| 4ae0 | 3e 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 69 66 20 28 73 63 | >..........{..............if.(sc |
| 4b00 | 68 65 6d 65 73 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | hemes.==.null).................. |
| 4b20 | 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 | throw.new.ArgumentNullException( |
| 4b40 | 6e 61 6d 65 6f 66 28 73 63 68 65 6d 65 73 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 | nameof(schemes));..............i |
| 4b60 | 66 20 28 64 65 76 69 63 65 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.(device.==.null).............. |
| 4b80 | 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 | ....throw.new.ArgumentNullExcept |
| 4ba0 | 69 6f 6e 28 6e 61 6d 65 6f 66 28 64 65 76 69 63 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ion(nameof(device));............ |
| 4bc0 | 20 20 20 20 72 65 74 75 72 6e 20 46 69 6e 64 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 46 6f 72 44 | ....return.FindControlSchemeForD |
| 4be0 | 65 76 69 63 65 73 28 6e 65 77 20 4f 6e 65 4f 72 4d 6f 72 65 3c 49 6e 70 75 74 44 65 76 69 63 65 | evices(new.OneOrMore<InputDevice |
| 4c00 | 2c 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 3e 28 64 65 | ,.ReadOnlyArray<InputDevice>>(de |
| 4c20 | 76 69 63 65 29 2c 20 73 63 68 65 6d 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 | vice),.schemes);..........}..... |
| 4c40 | 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>..........// |
| 4c60 | 2f 20 57 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 68 61 73 | /.Whether.the.control.scheme.has |
| 4c80 | 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 64 65 76 | .a.requirement.in.<see.cref="dev |
| 4ca0 | 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 22 2f 3e 20 74 68 61 74 0d 0a 20 20 20 20 20 20 20 | iceRequirements"/>.that......... |
| 4cc0 | 20 2f 2f 2f 20 74 61 72 67 65 74 73 20 74 68 65 20 67 69 76 65 6e 20 64 65 76 69 63 65 2e 0d 0a | .///.targets.the.given.device... |
| 4ce0 | 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 20 20 20 20 | ........///.</summary>.......... |
| 4d00 | 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 22 3e 41 6e 20 69 6e 70 75 | ///.<param.name="device">An.inpu |
| 4d20 | 74 20 64 65 76 69 63 65 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c | t.device.</param>..........///.< |
| 4d40 | 72 65 74 75 72 6e 73 3e 54 72 75 65 20 69 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 | returns>True.if.the.control.sche |
| 4d60 | 6d 65 20 68 61 73 20 61 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 61 74 63 | me.has.a.device.requirement.matc |
| 4d80 | 68 69 6e 67 20 74 68 65 20 64 65 76 69 63 65 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 | hing.the.device.</returns>...... |
| 4da0 | 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e | ....///.<exception.cref="Argumen |
| 4dc0 | 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 | tNullException"><paramref.name=" |
| 4de0 | 64 65 76 69 63 65 22 2f 3e 20 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 2e 3c 2f 65 78 63 65 70 | device"/>.is.<c>null</c>.</excep |
| 4e00 | 74 69 6f 6e 3e 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 20 | tion>..........///.<remarks>.... |
| 4e20 | 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 62 6f 74 68 20 6f 70 74 69 6f 6e 61 | ......///.Note.that.both.optiona |
| 4e40 | 6c 20 28 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d | l.(see.<see.cref="DeviceRequirem |
| 4e60 | 65 6e 74 2e 69 73 4f 70 74 69 6f 6e 61 6c 22 2f 3e 29 20 61 6e 64 20 6e 6f 6e 2d 6f 70 74 69 6f | ent.isOptional"/>).and.non-optio |
| 4e80 | 6e 61 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d | nal..........///.device.requirem |
| 4ea0 | 65 6e 74 73 20 61 72 65 20 74 61 6b 65 6e 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 0d 0a 20 20 | ents.are.taken.into.account..... |
| 4ec0 | 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 | ......///..........///.</remarks |
| 4ee0 | 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 53 75 70 70 6f 72 74 73 44 | >..........public.bool.SupportsD |
| 4f00 | 65 76 69 63 65 28 49 6e 70 75 74 44 65 76 69 63 65 20 64 65 76 69 63 65 29 0d 0a 20 20 20 20 20 | evice(InputDevice.device)....... |
| 4f20 | 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 76 69 63 65 20 3d 3d 20 | ...{..............if.(device.==. |
| 4f40 | 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 | null)..................throw.new |
| 4f60 | 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 64 65 | .ArgumentNullException(nameof(de |
| 4f80 | 76 69 63 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 | vice));................////REVIE |
| 4fa0 | 57 3a 20 64 6f 65 73 20 74 68 69 73 20 6e 65 65 64 20 74 6f 20 74 61 6b 65 20 41 4e 44 20 61 6e | W:.does.this.need.to.take.AND.an |
| 4fc0 | 64 20 4f 52 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 3f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d.OR.into.account?.............. |
| 4fe0 | 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 6d 5f 44 65 76 69 63 65 52 65 71 75 | for.(var.i.=.0;.i.<.m_DeviceRequ |
| 5000 | 69 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 | irements.Length;.++i)........... |
| 5020 | 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 63 6f 6e 74 72 6f | ...{..................var.contro |
| 5040 | 6c 20 3d 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 46 69 6e 64 43 6f 6e 74 | l.=.InputControlPath.TryFindCont |
| 5060 | 72 6f 6c 28 64 65 76 69 63 65 2c 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 | rol(device,.m_DeviceRequirements |
| 5080 | 5b 69 5d 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | [i].controlPath);............... |
| 50a0 | 20 20 20 69 66 20 28 63 6f 6e 74 72 6f 6c 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 | ...if.(control.!=.null)......... |
| 50c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 | .............return.true;....... |
| 50e0 | 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 | .......}................return.f |
| 5100 | 61 6c 73 65 3b 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 2f | alse;..........}............//// |
| 5120 | 52 45 56 49 45 57 3a 20 68 61 76 65 20 6d 6f 64 65 20 77 68 65 72 65 20 69 6e 73 74 65 61 64 20 | REVIEW:.have.mode.where.instead. |
| 5140 | 6f 66 20 6d 61 74 63 68 69 6e 67 20 6f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 64 65 76 69 63 | of.matching.only.the.first.devic |
| 5160 | 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 61 20 72 65 71 75 69 72 65 6d 65 6e 74 2c 20 77 65 | e.that.matches.a.requirement,.we |
| 5180 | 20 6d 61 74 63 68 20 61 73 20 6d 61 6e 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 2f 20 20 20 20 | .match.as.many..........////.... |
| 51a0 | 20 20 20 20 61 73 20 77 65 20 63 61 6e 20 67 65 74 3f 20 28 63 6f 75 6c 64 20 62 65 20 75 73 65 | ....as.we.can.get?.(could.be.use |
| 51c0 | 66 75 6c 20 66 6f 72 20 73 69 6e 67 6c 65 2d 70 6c 61 79 65 72 29 0d 0a 20 20 20 20 20 20 20 20 | ful.for.single-player).......... |
| 51e0 | 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 42 61 73 65 64 | ///.<summary>..........///.Based |
| 5200 | 20 6f 6e 20 61 20 6c 69 73 74 20 6f 66 20 64 65 76 69 63 65 73 2c 20 6d 61 6b 65 20 61 20 73 65 | .on.a.list.of.devices,.make.a.se |
| 5220 | 6c 65 63 74 69 6f 6e 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 3c 73 65 65 20 63 72 | lection.that.matches.the.<see.cr |
| 5240 | 65 66 3d 22 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 22 3e 72 65 71 75 69 72 65 6d | ef="deviceRequirements">requirem |
| 5260 | 65 6e 74 73 3c 2f 73 65 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 6d 70 6f 73 65 64 20 | ents</see>..........///.imposed. |
| 5280 | 62 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 | by.the.control.scheme........... |
| 52a0 | 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 2f 20 3c 70 61 72 | ///.</summary>..........///.<par |
| 52c0 | 61 6d 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 73 22 3e 41 20 6c 69 73 74 20 6f 66 20 64 65 76 69 | am.name="devices">A.list.of.devi |
| 52e0 | 63 65 73 20 74 6f 20 63 68 6f 6f 73 65 20 66 72 6f 6d 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 | ces.to.choose.from.</param>..... |
| 5300 | 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 66 61 76 6f 72 44 65 76 69 63 | .....///.<param.name="favorDevic |
| 5320 | 65 22 3e 49 66 20 6e 6f 74 20 6e 75 6c 6c 2c 20 74 68 65 20 64 65 76 69 63 65 20 77 69 6c 6c 20 | e">If.not.null,.the.device.will. |
| 5340 | 62 65 20 66 61 76 6f 72 65 64 20 6f 76 65 72 20 6f 74 68 65 72 20 64 65 76 69 63 65 73 20 69 6e | be.favored.over.other.devices.in |
| 5360 | 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 64 65 76 69 63 65 73 22 2f 3e 2e 0d 0a 20 20 | .<paramref.name="devices"/>..... |
| 5380 | 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 64 65 76 69 63 65 20 6d | ......///.Note.that.the.device.m |
| 53a0 | 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 6c 69 73 74 20 61 6c 73 6f 2e | ust.be.present.in.the.list.also. |
| 53c0 | 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 41 | </param>..........///.<returns>A |
| 53e0 | 20 3c 73 65 65 20 63 72 65 66 3d 22 4d 61 74 63 68 52 65 73 75 6c 74 22 2f 3e 20 73 74 72 75 63 | .<see.cref="MatchResult"/>.struc |
| 5400 | 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 | ture.containing.the.result.of.th |
| 5420 | 65 20 70 69 63 6b 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 73 74 72 75 63 74 75 72 65 | e.pick..Note.that.this.structure |
| 5440 | 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6d 75 73 74 20 62 65 20 6d 61 6e 75 61 6c 6c 79 20 3c | ..........///.must.be.manually.< |
| 5460 | 73 65 65 20 63 72 65 66 3d 22 4d 61 74 63 68 52 65 73 75 6c 74 2e 44 69 73 70 6f 73 65 22 3e 64 | see.cref="MatchResult.Dispose">d |
| 5480 | 69 73 70 6f 73 65 64 3c 2f 73 65 65 3e 20 6f 72 20 75 6e 6d 61 6e 61 67 65 64 20 6d 65 6d 6f 72 | isposed</see>.or.unmanaged.memor |
| 54a0 | 79 20 77 69 6c 6c 20 62 65 20 6c 65 61 6b 65 64 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 | y.will.be.leaked.</returns>..... |
| 54c0 | 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | .....///.<remarks>..........///. |
| 54e0 | 44 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 63 61 74 65 20 6d 61 6e 61 67 65 64 20 6d 65 6d 6f 72 79 | Does.not.allocate.managed.memory |
| 5500 | 2e 0d 0a 20 20 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 | ...........///.</remarks>....... |
| 5520 | 20 20 20 70 75 62 6c 69 63 20 4d 61 74 63 68 52 65 73 75 6c 74 20 50 69 63 6b 44 65 76 69 63 65 | ...public.MatchResult.PickDevice |
| 5540 | 73 46 72 6f 6d 3c 54 44 65 76 69 63 65 73 3e 28 54 44 65 76 69 63 65 73 20 64 65 76 69 63 65 73 | sFrom<TDevices>(TDevices.devices |
| 5560 | 2c 20 49 6e 70 75 74 44 65 76 69 63 65 20 66 61 76 6f 72 44 65 76 69 63 65 20 3d 20 6e 75 6c 6c | ,.InputDevice.favorDevice.=.null |
| 5580 | 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 54 44 65 76 69 63 65 73 20 3a 20 | )..............where.TDevices.:. |
| 55a0 | 49 52 65 61 64 4f 6e 6c 79 4c 69 73 74 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 0d 0a 20 20 20 20 | IReadOnlyList<InputDevice>...... |
| 55c0 | 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 45 6d 70 74 79 20 64 65 76 69 | ....{..............//.Empty.devi |
| 55e0 | 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6d 61 74 63 68 20 61 6e 79 74 68 69 6e 67 20 77 | ce.requirements.match.anything.w |
| 5600 | 68 69 6c 65 20 6e 6f 74 20 72 65 61 6c 6c 79 20 70 69 63 6b 69 6e 67 20 61 6e 79 74 68 69 6e 67 | hile.not.really.picking.anything |
| 5620 | 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 | ...............if.(m_DeviceRequi |
| 5640 | 72 65 6d 65 6e 74 73 20 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 | rements.==.null.||.m_DeviceRequi |
| 5660 | 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | rements.Length.==.0)............ |
| 5680 | 20 20 7b 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 65 77 20 | ..{..................return.new. |
| 56a0 | 4d 61 74 63 68 52 65 73 75 6c 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | MatchResult..................{.. |
| 56c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 52 65 73 75 6c 74 20 3d 20 4d | ....................m_Result.=.M |
| 56e0 | 61 74 63 68 52 65 73 75 6c 74 2e 52 65 73 75 6c 74 2e 41 6c 6c 53 61 74 69 73 66 69 65 64 2c 0d | atchResult.Result.AllSatisfied,. |
| 5700 | 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 65 76 65 6e 74 20 | .....................//.Prevent. |
| 5720 | 7a 65 72 6f 20 73 63 6f 72 65 20 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 20 6d 61 74 63 68 20 62 | zero.score.on.successful.match.b |
| 5740 | 75 74 20 6d 61 6b 65 20 6c 65 73 73 20 74 68 61 6e 20 6f 6e 65 20 77 68 69 63 68 20 77 6f 75 6c | ut.make.less.than.one.which.woul |
| 5760 | 64 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 72 65 73 75 6c 74 | d......................//.result |
| 5780 | 20 66 72 6f 6d 20 68 61 76 69 6e 67 20 61 20 73 69 6e 67 6c 65 20 72 65 71 75 69 72 65 6d 65 6e | .from.having.a.single.requiremen |
| 57a0 | 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 63 6f 72 65 20 | t.......................m_Score. |
| 57c0 | 3d 20 30 2e 35 66 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 | =.0.5f,..................};..... |
| 57e0 | 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 2f 2f 20 47 6f 20 | .........}................//.Go. |
| 5800 | 74 68 72 6f 75 67 68 20 65 61 63 68 20 72 65 71 75 69 72 65 6d 65 6e 74 20 61 6e 64 20 6d 61 74 | through.each.requirement.and.mat |
| 5820 | 63 68 20 69 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4e 4f 54 45 3a 20 45 76 65 | ch.it...............//.NOTE:.Eve |
| 5840 | 6e 20 69 66 20 60 64 65 76 69 63 65 73 60 20 69 73 20 65 6d 70 74 79 2c 20 77 65 20 64 6f 6e 27 | n.if.`devices`.is.empty,.we.don' |
| 5860 | 74 20 6b 6e 6f 77 20 79 65 74 20 77 68 65 74 68 65 72 20 77 65 20 68 61 76 65 20 61 20 4e 6f 4d | t.know.yet.whether.we.have.a.NoM |
| 5880 | 61 74 63 68 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 41 6c 6c 20 | atch...............//.......All. |
| 58a0 | 6f 75 72 20 64 65 76 69 63 65 73 20 6d 61 79 20 62 65 20 6f 70 74 69 6f 6e 61 6c 2e 0d 0a 20 20 | our.devices.may.be.optional..... |
| 58c0 | 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 76 65 41 6c 6c 52 65 71 75 69 72 65 64 20 3d 20 | ..........var.haveAllRequired.=. |
| 58e0 | 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 76 65 41 6c 6c 4f 70 | true;..............var.haveAllOp |
| 5900 | 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 | tional.=.true;..............var. |
| 5920 | 72 65 71 75 69 72 65 6d 65 6e 74 43 6f 75 6e 74 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 | requirementCount.=.m_DeviceRequi |
| 5940 | 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 | rements.Length;..............var |
| 5960 | 20 73 63 6f 72 65 20 3d 20 30 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f | .score.=.0f;..............var.co |
| 5980 | 6e 74 72 6f 6c 73 20 3d 20 6e 65 77 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 3c 49 6e | ntrols.=.new.InputControlList<In |
| 59a0 | 70 75 74 43 6f 6e 74 72 6f 6c 3e 28 41 6c 6c 6f 63 61 74 6f 72 2e 50 65 72 73 69 73 74 65 6e 74 | putControl>(Allocator.Persistent |
| 59c0 | 2c 20 72 65 71 75 69 72 65 6d 65 6e 74 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ,.requirementCount);............ |
| 59e0 | 20 20 74 72 79 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 | ..try..............{............ |
| 5a00 | 20 20 20 20 20 20 76 61 72 20 6f 72 43 68 61 69 6e 49 73 53 61 74 69 73 66 69 65 64 20 3d 20 66 | ......var.orChainIsSatisfied.=.f |
| 5a20 | 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6f 72 43 68 61 | alse;..................var.orCha |
| 5a40 | 69 6e 48 61 73 52 65 71 75 69 72 65 64 44 65 76 69 63 65 73 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 | inHasRequiredDevices.=.false;... |
| 5a60 | 20 20 20 20 20 20 20 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 | ...............for.(var.i.=.0;.i |
| 5a80 | 20 3c 20 72 65 71 75 69 72 65 6d 65 6e 74 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 | .<.requirementCount;.++i)....... |
| 5aa0 | 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 | ...........{.................... |
| 5ac0 | 20 20 76 61 72 20 69 73 4f 52 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 | ..var.isOR.=.m_DeviceRequirement |
| 5ae0 | 73 5b 69 5d 2e 69 73 4f 52 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s[i].isOR;...................... |
| 5b00 | 76 61 72 20 69 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 | var.isOptional.=.m_DeviceRequire |
| 5b20 | 6d 65 6e 74 73 5b 69 5d 2e 69 73 4f 70 74 69 6f 6e 61 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | ments[i].isOptional;............ |
| 5b40 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 74 68 69 73 20 69 73 20 61 6e 20 4f 52 20 | ............//.If.this.is.an.OR. |
| 5b60 | 72 65 71 75 69 72 65 6d 65 6e 74 20 61 6e 64 20 77 65 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 | requirement.and.we.already.have. |
| 5b80 | 61 20 6d 61 74 63 68 20 69 6e 20 74 68 69 73 20 4f 52 20 63 68 61 69 6e 2c 0d 0a 20 20 20 20 20 | a.match.in.this.OR.chain,....... |
| 5ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 6b 69 70 20 74 68 69 73 20 72 65 71 75 | ...............//.skip.this.requ |
| 5bc0 | 69 72 65 6d 65 6e 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | irement.......................if |
| 5be0 | 20 28 69 73 4f 52 20 26 26 20 6f 72 43 68 61 69 6e 49 73 53 61 74 69 73 66 69 65 64 29 0d 0a 20 | .(isOR.&&.orChainIsSatisfied)... |
| 5c00 | 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 20 20 20 20 | ...................{............ |
| 5c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 6b 69 6c 6c 20 6e 65 65 64 20 74 6f 20 61 | ..............//.Skill.need.to.a |
| 5c40 | 64 64 20 61 6e 20 65 6e 74 72 79 20 66 6f 72 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 | dd.an.entry.for.this.requirement |
| 5c60 | 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 63 6f 6e 74 72 | ...........................contr |
| 5c80 | 6f 6c 73 2e 41 64 64 28 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols.Add(null);.................. |
| 5ca0 | 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........continue;............... |
| 5cc0 | 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 | .......}........................ |
| 5ce0 | 2f 2f 20 4e 75 6c 6c 20 61 6e 64 20 65 6d 70 74 79 20 70 61 74 68 73 20 73 68 6f 75 6c 64 6e 27 | //.Null.and.empty.paths.shouldn' |
| 5d00 | 74 20 6d 61 6b 65 20 69 74 20 69 6e 74 6f 20 74 68 65 20 6c 69 73 74 20 62 75 74 20 6d 61 6b 65 | t.make.it.into.the.list.but.make |
| 5d20 | 20 64 6f 75 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 | .double......................//. |
| 5d40 | 73 75 72 65 20 68 65 72 65 2e 20 53 69 6d 70 6c 79 20 69 67 6e 6f 72 65 20 65 6e 74 72 69 65 73 | sure.here..Simply.ignore.entries |
| 5d60 | 20 74 68 61 74 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 70 61 74 68 2e 0d 0a 20 20 20 20 20 20 | .that.don't.have.a.path......... |
| 5d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 61 74 68 20 3d 20 6d 5f 44 65 76 69 63 | ..............var.path.=.m_Devic |
| 5da0 | 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 69 5d 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 3b 0d 0a 20 | eRequirements[i].controlPath;... |
| 5dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 73 | ...................if.(string.Is |
| 5de0 | 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 70 61 74 68 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | NullOrEmpty(path)).............. |
| 5e00 | 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 20 | ........{....................... |
| 5e20 | 20 20 20 73 63 6f 72 65 20 2b 3d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...score.+=.1;.................. |
| 5e40 | 20 20 20 20 20 20 20 20 63 6f 6e 74 72 6f 6c 73 2e 41 64 64 28 6e 75 6c 6c 29 3b 0d 0a 20 20 20 | ........controls.Add(null);..... |
| 5e60 | 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 0d 0a | .....................continue;.. |
| 5e80 | 20 20 20 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 | ....................}........... |
| 5ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 69 6e 64 20 74 68 65 20 66 69 72 73 74 20 6d | .............//.Find.the.first.m |
| 5ec0 | 61 74 63 68 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 61 6d 6f 6e 67 20 74 68 65 20 64 65 76 69 63 65 | atching.control.among.the.device |
| 5ee0 | 73 20 77 65 20 68 61 76 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.we.have....................... |
| 5f00 | 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 20 6d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 | InputControl.match.=.null;...... |
| 5f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 6e 20 3d 20 30 3b 20 | ................for.(var.n.=.0;. |
| 5f40 | 6e 20 3c 20 64 65 76 69 63 65 73 2e 43 6f 75 6e 74 3b 20 2b 2b 6e 29 0d 0a 20 20 20 20 20 20 20 | n.<.devices.Count;.++n)......... |
| 5f60 | 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 20 20 | .............{.................. |
| 5f80 | 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 63 65 20 3d 20 64 65 76 69 63 65 73 5b 6e 5d 3b | ........var.device.=.devices[n]; |
| 5fa0 | 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 20 49 | ............................//.I |
| 5fc0 | 66 20 77 65 20 73 68 6f 75 6c 64 20 66 61 76 6f 72 20 61 20 64 65 76 69 63 65 2c 20 77 65 20 73 | f.we.should.favor.a.device,.we.s |
| 5fe0 | 77 61 70 20 69 74 20 69 6e 20 61 74 20 69 6e 64 65 78 20 23 30 20 72 65 67 61 72 64 6c 65 73 73 | wap.it.in.at.index.#0.regardless |
| 6000 | 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 20 6f 66 20 | ..........................//.of. |
| 6020 | 77 68 65 72 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 74 68 65 20 64 65 76 69 63 65 20 6f 63 63 | where.in.the.list.the.device.occ |
| 6040 | 75 72 73 20 28 69 74 20 4d 55 53 54 2c 20 68 6f 77 65 76 65 72 2c 20 6f 63 63 75 72 20 69 6e 20 | urs.(it.MUST,.however,.occur.in. |
| 6060 | 74 68 65 20 6c 69 73 74 29 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | the.list)....................... |
| 6080 | 20 20 20 20 69 66 20 28 66 61 76 6f 72 44 65 76 69 63 65 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 | ....if.(favorDevice.!=.null).... |
| 60a0 | 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 20 | ......................{......... |
| 60c0 | 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 6e 20 3d 3d 20 30 29 | .....................if.(n.==.0) |
| 60e0 | 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 20 20 | ................................ |
| 6100 | 20 20 64 65 76 69 63 65 20 3d 20 66 61 76 6f 72 44 65 76 69 63 65 3b 0d 0a 20 20 20 20 20 20 20 | ..device.=.favorDevice;......... |
| 6120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 64 65 | .....................else.if.(de |
| 6140 | 76 69 63 65 20 3d 3d 20 66 61 76 6f 72 44 65 76 69 63 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | vice.==.favorDevice)............ |
| 6160 | 20 20 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 20 3d 20 64 | ......................device.=.d |
| 6180 | 65 76 69 63 65 73 5b 30 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | evices[0];...................... |
| 61a0 | 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 20 20 20 | ....}........................... |
| 61c0 | 20 2f 2f 20 53 65 65 20 69 66 20 77 65 20 68 61 76 65 20 61 20 6d 61 74 63 68 2e 0d 0a 20 20 20 | .//.See.if.we.have.a.match...... |
| 61e0 | 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 6d 61 74 63 68 65 64 | .....................var.matched |
| 6200 | 43 6f 6e 74 72 6f 6c 20 3d 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 46 69 | Control.=.InputControlPath.TryFi |
| 6220 | 6e 64 43 6f 6e 74 72 6f 6c 28 64 65 76 69 63 65 2c 20 70 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 | ndControl(device,.path);........ |
| 6240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 63 68 65 64 43 6f 6e | ..................if.(matchedCon |
| 6260 | 74 72 6f 6c 20 3d 3d 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 | trol.==.null)................... |
| 6280 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 20 2f 2f 20 4e 6f 2e 0d 0a 0d 0a 20 | ...........continue;.//.No...... |
| 62a0 | 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 57 65 20 68 61 76 | .......................//.We.hav |
| 62c0 | 65 20 61 20 6d 61 74 63 68 20 62 75 74 20 69 66 20 77 65 27 76 65 20 61 6c 72 65 61 64 79 20 6d | e.a.match.but.if.we've.already.m |
| 62e0 | 61 74 63 68 65 64 20 74 68 65 20 73 61 6d 65 20 63 6f 6e 74 72 6f 6c 20 74 68 72 6f 75 67 68 20 | atched.the.same.control.through. |
| 6300 | 61 6e 6f 74 68 65 72 20 72 65 71 75 69 72 65 6d 65 6e 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | another.requirement,............ |
| 6320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 63 61 6e 27 74 20 75 73 65 20 74 68 | ..............//.we.can't.use.th |
| 6340 | 65 20 6d 61 74 63 68 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 | e.match......................... |
| 6360 | 20 20 69 66 20 28 63 6f 6e 74 72 6f 6c 73 2e 43 6f 6e 74 61 69 6e 73 28 6d 61 74 63 68 65 64 43 | ..if.(controls.Contains(matchedC |
| 6380 | 6f 6e 74 72 6f 6c 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 | ontrol))........................ |
| 63a0 | 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 20 20 20 20 20 20 | ......continue;................. |
| 63c0 | 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 3d 20 6d 61 74 63 68 65 64 43 6f 6e 74 72 6f | ...........match.=.matchedContro |
| 63e0 | 6c 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 | l;............................// |
| 6400 | 20 43 6f 6d 70 75 74 65 20 73 63 6f 72 65 20 66 6f 72 20 6d 61 74 63 68 2e 0d 0a 20 20 20 20 20 | .Compute.score.for.match........ |
| 6420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 63 65 4c 61 79 | ...................var.deviceLay |
| 6440 | 6f 75 74 4f 66 43 6f 6e 74 72 6f 6c 50 61 74 68 20 3d 20 6e 65 77 20 49 6e 74 65 72 6e 65 64 53 | outOfControlPath.=.new.InternedS |
| 6460 | 74 72 69 6e 67 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 47 65 74 44 65 76 | tring(InputControlPath.TryGetDev |
| 6480 | 69 63 65 4c 61 79 6f 75 74 28 70 61 74 68 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | iceLayout(path));............... |
| 64a0 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 76 69 63 65 4c 61 79 6f 75 74 4f 66 43 6f 6e | ...........if.(deviceLayoutOfCon |
| 64c0 | 74 72 6f 6c 50 61 74 68 2e 49 73 45 6d 70 74 79 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | trolPath.IsEmpty())............. |
| 64e0 | 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 20 20 | .............{.................. |
| 6500 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 47 65 6e 65 72 69 63 20 6d 61 74 63 68 20 61 64 64 | ............//.Generic.match.add |
| 6520 | 73 20 31 20 74 6f 20 73 63 6f 72 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.1.to.score.................... |
| 6540 | 20 20 20 20 20 20 20 20 20 20 20 73 63 6f 72 65 20 2b 3d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 | ...........score.+=.1;.......... |
| 6560 | 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 20 | ................}............... |
| 6580 | 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 20 20 20 20 20 | ...........else................. |
| 65a0 | 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 | .........{...................... |
| 65c0 | 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 63 65 4c 61 79 6f 75 74 4f 66 43 6f 6e 74 72 6f | ........var.deviceLayoutOfContro |
| 65e0 | 6c 20 3d 20 6d 61 74 63 68 65 64 43 6f 6e 74 72 6f 6c 2e 64 65 76 69 63 65 2e 6d 5f 4c 61 79 6f | l.=.matchedControl.device.m_Layo |
| 6600 | 75 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 20 20 20 | ut;............................. |
| 6620 | 20 69 66 20 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 2e 73 5f 4c 61 79 6f 75 74 | .if.(InputControlLayout.s_Layout |
| 6640 | 73 2e 43 6f 6d 70 75 74 65 44 69 73 74 61 6e 63 65 49 6e 49 6e 68 65 72 69 74 61 6e 63 65 48 69 | s.ComputeDistanceInInheritanceHi |
| 6660 | 65 72 61 72 63 68 79 28 64 65 76 69 63 65 4c 61 79 6f 75 74 4f 66 43 6f 6e 74 72 6f 6c 50 61 74 | erarchy(deviceLayoutOfControlPat |
| 6680 | 68 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 20 20 20 | h,.............................. |
| 66a0 | 20 20 20 20 64 65 76 69 63 65 4c 61 79 6f 75 74 4f 66 43 6f 6e 74 72 6f 6c 2c 20 6f 75 74 20 76 | ....deviceLayoutOfControl,.out.v |
| 66c0 | 61 72 20 64 69 73 74 61 6e 63 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.distance))................... |
| 66e0 | 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 | ...........{.................... |
| 6700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 63 6f 72 65 20 2b 3d 20 31 20 2b 20 31 66 20 2f 20 | ..............score.+=.1.+.1f./. |
| 6720 | 28 4d 61 74 68 2e 41 62 73 28 64 69 73 74 61 6e 63 65 29 20 2b 20 31 29 3b 0d 0a 20 20 20 20 20 | (Math.Abs(distance).+.1);....... |
| 6740 | 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 20 20 | .......................}........ |
| 6760 | 20 20 20 20 20 20 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 | ......................else...... |
| 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 7b 0d 0a 20 20 20 20 20 | ........................{....... |
| 67a0 | 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 2f 2f 20 53 68 | ...........................//.Sh |
| 67c0 | 6f 75 6c 64 6e 27 74 20 72 65 61 6c 6c 79 20 67 65 74 20 68 65 72 65 20 61 73 20 66 6f 72 20 74 | ouldn't.really.get.here.as.for.t |
| 67e0 | 68 65 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 62 65 20 61 20 6d 61 74 63 68 20 66 6f 72 20 74 68 65 | he.control.to.be.a.match.for.the |
| 6800 | 20 70 61 74 68 2c 20 74 68 65 20 64 65 76 69 63 65 20 6c 61 79 6f 75 74 73 0d 0a 20 20 20 20 20 | .path,.the.device.layouts....... |
| 6820 | 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 2f 2f 20 77 6f | ...........................//.wo |
| 6840 | 75 6c 64 20 62 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 72 65 6c 61 74 65 64 20 74 6f | uld.be.expected.to.be.related.to |
| 6860 | 20 65 61 63 68 20 6f 74 68 65 72 2e 20 42 75 74 20 6a 75 73 74 20 61 64 64 20 31 20 66 6f 72 20 | .each.other..But.just.add.1.for. |
| 6880 | 61 20 67 65 6e 65 72 69 63 20 6d 61 74 63 68 20 61 6e 64 20 67 6f 20 6f 6e 2e 0d 0a 20 20 20 20 | a.generic.match.and.go.on....... |
| 68a0 | 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 73 63 6f 72 | ............................scor |
| 68c0 | 65 20 2b 3d 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 20 20 20 | e.+=.1;......................... |
| 68e0 | 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 | .....}.......................... |
| 6900 | 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 20 20 20 20 62 72 65 | }............................bre |
| 6920 | 61 6b 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 0d 0a 20 20 | ak;......................}...... |
| 6940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 72 65 71 75 69 | ..................//.Check.requi |
| 6960 | 72 65 6d 65 6e 74 73 20 69 6e 20 41 4e 44 20 61 6e 64 20 4f 52 20 63 68 61 69 6e 73 2e 20 57 65 | rements.in.AND.and.OR.chains..We |
| 6980 | 20 6c 6f 6f 6b 20 61 68 65 61 64 20 68 65 72 65 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 77 68 65 | .look.ahead.here.to.find.out.whe |
| 69a0 | 74 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 2f 2f 20 74 68 65 | ther......................//.the |
| 69c0 | 20 6e 65 78 74 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 73 20 73 74 61 72 74 69 6e 67 20 61 6e | .next.requirement.is.starting.an |
| 69e0 | 20 4f 52 20 63 68 61 69 6e 2e 20 41 73 20 74 68 65 20 4f 52 20 63 6f 6d 62 69 6e 65 73 20 77 69 | .OR.chain..As.the.OR.combines.wi |
| 6a00 | 74 68 20 74 68 65 20 70 72 65 76 69 6f 75 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | th.the.previous................. |
| 6a20 | 20 20 20 20 20 2f 2f 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c 69 73 74 2c | .....//.requirement.in.the.list, |
| 6a40 | 20 74 68 69 73 20 61 66 66 65 63 74 73 20 6f 75 72 20 63 75 72 72 65 6e 74 20 72 65 71 75 69 72 | .this.affects.our.current.requir |
| 6a60 | 65 6d 65 6e 74 2e 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 20 | ement.......................var. |
| 6a80 | 6e 65 78 74 49 73 4f 52 20 3d 20 69 20 2b 20 31 20 3c 20 72 65 71 75 69 72 65 6d 65 6e 74 43 6f | nextIsOR.=.i.+.1.<.requirementCo |
| 6aa0 | 75 6e 74 20 26 26 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 69 20 2b 20 | unt.&&.m_DeviceRequirements[i.+. |
| 6ac0 | 31 5d 2e 69 73 4f 52 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 | 1].isOR;......................if |
| 6ae0 | 20 28 6e 65 78 74 49 73 4f 52 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(nextIsOR)..................... |
| 6b00 | 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 2f 2f 20 53 | .{..........................//.S |
| 6b20 | 68 6f 75 6c 64 6e 27 74 20 67 65 74 20 68 65 72 65 20 69 66 20 74 68 65 20 63 68 61 69 6e 20 69 | houldn't.get.here.if.the.chain.i |
| 6b40 | 73 20 61 6c 72 65 61 64 79 20 73 61 74 69 73 66 69 65 64 2e 20 53 68 6f 75 6c 64 20 62 65 20 68 | s.already.satisfied..Should.be.h |
| 6b60 | 61 6e 64 6c 65 64 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 | andled.......................... |
| 6b80 | 2f 2f 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 6f 6f 70 20 61 6e 64 20 77 65 20 73 | //.at.beginning.of.loop.and.we.s |
| 6ba0 | 68 6f 75 6c 64 6e 27 74 20 65 76 65 6e 20 62 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 66 69 6e 64 | houldn't.even.be.looking.at.find |
| 6bc0 | 69 6e 67 20 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 20 20 | ing.controls.................... |
| 6be0 | 20 20 20 20 20 20 2f 2f 20 69 6e 20 74 68 61 74 20 63 61 73 65 2e 0d 0a 20 20 20 20 20 20 20 20 | ......//.in.that.case........... |
| 6c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e 41 73 73 65 72 74 28 21 6f 72 | ................Debug.Assert(!or |
| 6c20 | 43 68 61 69 6e 49 73 53 61 74 69 73 66 69 65 64 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 | ChainIsSatisfied);.............. |
| 6c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 74 27 73 20 61 6e 20 4f 52 20 77 69 74 68 | ..............//.It's.an.OR.with |
| 6c60 | 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 20 44 65 70 65 6e 64 73 20 6f | .the.next.requirement..Depends.o |
| 6c80 | 6e 20 74 68 65 20 6f 75 74 63 6f 6d 65 20 6f 66 20 6f 74 68 65 72 20 6d 61 74 63 68 65 73 20 77 | n.the.outcome.of.other.matches.w |
| 6ca0 | 68 65 74 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 20 20 20 20 | hether.......................... |
| 6cc0 | 2f 2f 20 77 65 27 72 65 20 67 6f 6f 64 20 6f 72 20 6e 6f 74 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 | //.we're.good.or.not............ |
| 6ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 63 68 20 21 3d 20 6e 75 | .................if.(match.!=.nu |
| 6d00 | 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 7b 0d 0a | ll)..........................{.. |
| 6d20 | 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 2f 2f 20 46 | ............................//.F |
| 6d40 | 69 72 73 74 20 6d 61 74 63 68 20 69 6e 20 74 68 69 73 20 63 68 61 69 6e 2e 0d 0a 20 20 20 20 20 | irst.match.in.this.chain........ |
| 6d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 43 68 61 69 6e 49 73 | .......................orChainIs |
| 6d80 | 53 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | Satisfied.=.true;............... |
| 6da0 | 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 20 20 20 20 | ...........}.................... |
| 6dc0 | 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......else...................... |
| 6de0 | 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 20 | ....{........................... |
| 6e00 | 20 20 20 2f 2f 20 43 68 61 69 6e 20 6e 6f 74 20 73 61 74 69 73 66 69 65 64 20 79 65 74 2e 0d 0a | ...//.Chain.not.satisfied.yet... |
| 6e20 | 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 69 66 | ..............................if |
| 6e40 | 20 28 21 69 73 4f 70 74 69 6f 6e 61 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(!isOptional).................. |
| 6e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 43 68 61 69 6e 48 61 73 52 65 71 75 69 72 | ................orChainHasRequir |
| 6e80 | 65 64 44 65 76 69 63 65 73 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | edDevices.=.true;............... |
| 6ea0 | 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 20 20 20 20 | ...........}.................... |
| 6ec0 | 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 65 6c 73 65 20 69 66 | ..}......................else.if |
| 6ee0 | 20 28 69 73 4f 52 20 26 26 20 69 20 3d 3d 20 72 65 71 75 69 72 65 6d 65 6e 74 43 6f 75 6e 74 20 | .(isOR.&&.i.==.requirementCount. |
| 6f00 | 2d 20 31 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 | -.1)......................{..... |
| 6f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 74 27 73 20 61 6e 20 | .....................//.It's.an. |
| 6f40 | 4f 52 20 61 74 20 74 68 65 20 76 65 72 79 20 65 6e 64 20 6f 66 20 74 68 65 20 72 65 71 75 69 72 | OR.at.the.very.end.of.the.requir |
| 6f60 | 65 6d 65 6e 74 73 20 6c 69 73 74 2e 20 54 65 72 6d 69 6e 61 74 65 0d 0a 20 20 20 20 20 20 20 20 | ements.list..Terminate.......... |
| 6f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 4f 52 20 63 68 61 69 6e 2e | ................//.the.OR.chain. |
| 6fa0 | 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 69 66 20 28 | ............................if.( |
| 6fc0 | 6d 61 74 63 68 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | match.==.null).................. |
| 6fe0 | 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 20 | ........{....................... |
| 7000 | 20 20 20 20 20 20 20 69 66 20 28 6f 72 43 68 61 69 6e 48 61 73 52 65 71 75 69 72 65 64 44 65 76 | .......if.(orChainHasRequiredDev |
| 7020 | 69 63 65 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 20 | ices)........................... |
| 7040 | 20 20 20 20 20 20 20 68 61 76 65 41 6c 6c 52 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 65 3b 0d | .......haveAllRequired.=.false;. |
| 7060 | 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 65 6c 73 | .............................els |
| 7080 | 65 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 20 | e............................... |
| 70a0 | 20 20 20 68 61 76 65 41 6c 6c 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 | ...haveAllOptional.=.false;..... |
| 70c0 | 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 20 20 20 20 | .....................}.......... |
| 70e0 | 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 20 20 20 | ............}................... |
| 7100 | 20 20 20 65 6c 73 65 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 | ...else......................{.. |
| 7120 | 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 49 74 27 73 20 | ........................//.It's. |
| 7140 | 61 6e 20 41 4e 44 2e 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 | an.AND.......................... |
| 7160 | 20 20 20 69 66 20 28 6d 61 74 63 68 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 | ...if.(match.==.null)........... |
| 7180 | 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 | ...............{................ |
| 71a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 4f 70 74 69 6f 6e 61 6c 29 0d 0a 20 | ..............if.(isOptional)... |
| 71c0 | 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 68 | ...............................h |
| 71e0 | 61 76 65 41 6c 6c 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 | aveAllOptional.=.false;......... |
| 7200 | 20 20 20 20 20 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 | .....................else....... |
| 7220 | 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 61 76 65 41 | ...........................haveA |
| 7240 | 6c 6c 52 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | llRequired.=.false;............. |
| 7260 | 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 | .............}.................. |
| 7280 | 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 65 72 6d 69 6e 61 74 65 20 6f 6e 67 6f 69 6e 67 20 4f | ..........//.Terminate.ongoing.O |
| 72a0 | 52 20 63 68 61 69 6e 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 | R.chain......................... |
| 72c0 | 20 20 69 66 20 28 69 20 3e 20 30 20 26 26 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 | ..if.(i.>.0.&&.m_DeviceRequireme |
| 72e0 | 6e 74 73 5b 69 20 2d 20 31 5d 2e 69 73 4f 52 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nts[i.-.1].isOR)................ |
| 7300 | 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 | ..........{..................... |
| 7320 | 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6f 72 43 68 61 69 6e 49 73 53 61 74 69 73 66 69 65 64 | .........if.(!orChainIsSatisfied |
| 7340 | 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 20 7b | )..............................{ |
| 7360 | 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 20 20 | ................................ |
| 7380 | 20 20 69 66 20 28 6f 72 43 68 61 69 6e 48 61 73 52 65 71 75 69 72 65 64 44 65 76 69 63 65 73 29 | ..if.(orChainHasRequiredDevices) |
| 73a0 | 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 20 20 | ................................ |
| 73c0 | 20 20 20 20 20 20 68 61 76 65 41 6c 6c 52 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 65 3b 0d 0a | ......haveAllRequired.=.false;.. |
| 73e0 | 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 | ................................ |
| 7400 | 65 6c 73 65 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 | else............................ |
| 7420 | 20 20 20 20 20 20 20 20 20 20 68 61 76 65 41 6c 6c 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 | ..........haveAllOptional.=.fals |
| 7440 | 65 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 20 20 20 20 | e;.............................. |
| 7460 | 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 20 20 20 20 6f | }..............................o |
| 7480 | 72 43 68 61 69 6e 49 73 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 | rChainIsSatisfied.=.false;...... |
| 74a0 | 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 | ....................}........... |
| 74c0 | 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 20 | ...........}.................... |
| 74e0 | 20 20 20 20 2f 2f 20 41 64 64 20 6d 61 74 63 68 20 74 6f 20 6c 69 73 74 2e 20 4d 61 79 62 65 20 | ....//.Add.match.to.list..Maybe. |
| 7500 | 6e 75 6c 6c 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 72 | null.......................contr |
| 7520 | 6f 6c 73 2e 41 64 64 28 6d 61 74 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols.Add(match);................. |
| 7540 | 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 65 20 73 68 6f 75 | .}....................//.We.shou |
| 7560 | 6c 64 20 68 61 76 65 20 6d 61 74 63 68 65 64 20 65 61 63 68 20 6f 66 20 6f 75 72 20 72 65 71 75 | ld.have.matched.each.of.our.requ |
| 7580 | 69 72 65 6d 65 6e 74 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 | irements...................Debug |
| 75a0 | 2e 41 73 73 65 72 74 28 63 6f 6e 74 72 6f 6c 73 2e 43 6f 75 6e 74 20 3d 3d 20 72 65 71 75 69 72 | .Assert(controls.Count.==.requir |
| 75c0 | 65 6d 65 6e 74 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 | ementCount);..............}..... |
| 75e0 | 20 20 20 20 20 20 20 20 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 29 0d 0a 20 20 20 20 | .........catch.(Exception)...... |
| 7600 | 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 63 6f 6e 74 72 | ........{..................contr |
| 7620 | 6f 6c 73 2e 44 69 73 70 6f 73 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols.Dispose();.................. |
| 7640 | 74 68 72 6f 77 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 | throw;..............}........... |
| 7660 | 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 4d 61 74 63 68 52 65 73 75 6c 74 0d 0a 20 20 20 | .....return.new.MatchResult..... |
| 7680 | 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 52 65 | .........{..................m_Re |
| 76a0 | 73 75 6c 74 20 3d 20 21 68 61 76 65 41 6c 6c 52 65 71 75 69 72 65 64 0d 0a 20 20 20 20 20 20 20 | sult.=.!haveAllRequired......... |
| 76c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 20 4d 61 74 63 68 52 65 73 75 6c 74 2e 52 65 73 75 6c | .............?.MatchResult.Resul |
| 76e0 | 74 2e 4d 69 73 73 69 6e 67 52 65 71 75 69 72 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.MissingRequired............... |
| 7700 | 20 20 20 20 20 20 20 3a 20 21 68 61 76 65 41 6c 6c 4f 70 74 69 6f 6e 61 6c 0d 0a 20 20 20 20 20 | .......:.!haveAllOptional....... |
| 7720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 20 4d 61 74 63 68 52 65 73 75 6c 74 2e 52 65 73 | ...............?.MatchResult.Res |
| 7740 | 75 6c 74 2e 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 61 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ult.MissingOptional............. |
| 7760 | 20 20 20 20 20 20 20 20 20 3a 20 4d 61 74 63 68 52 65 73 75 6c 74 2e 52 65 73 75 6c 74 2e 41 6c | .........:.MatchResult.Result.Al |
| 7780 | 6c 53 61 74 69 73 66 69 65 64 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 | lSatisfied,..................m_C |
| 77a0 | 6f 6e 74 72 6f 6c 73 20 3d 20 63 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ontrols.=.controls,............. |
| 77c0 | 20 20 20 20 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 | .....m_Requirements.=.m_DeviceRe |
| 77e0 | 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 | quirements,..................m_S |
| 7800 | 63 6f 72 65 20 3d 20 73 63 6f 72 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 | core.=.score,..............};... |
| 7820 | 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 62 6f 6f 6c 20 | .......}............public.bool. |
| 7840 | 45 71 75 61 6c 73 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 6f 74 68 65 72 29 | Equals(InputControlScheme.other) |
| 7860 | 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 69 66 20 28 21 28 73 | ..........{..............if.(!(s |
| 7880 | 74 72 69 6e 67 2e 45 71 75 61 6c 73 28 6d 5f 4e 61 6d 65 2c 20 6f 74 68 65 72 2e 6d 5f 4e 61 6d | tring.Equals(m_Name,.other.m_Nam |
| 78a0 | 65 2c 20 53 74 72 69 6e 67 43 6f 6d 70 61 72 69 73 6f 6e 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c | e,.StringComparison.InvariantCul |
| 78c0 | 74 75 72 65 49 67 6e 6f 72 65 43 61 73 65 29 20 26 26 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tureIgnoreCase).&&.............. |
| 78e0 | 20 20 20 20 20 20 73 74 72 69 6e 67 2e 45 71 75 61 6c 73 28 6d 5f 42 69 6e 64 69 6e 67 47 72 6f | ......string.Equals(m_BindingGro |
| 7900 | 75 70 2c 20 6f 74 68 65 72 2e 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 2c 20 53 74 72 69 6e 67 | up,.other.m_BindingGroup,.String |
| 7920 | 43 6f 6d 70 61 72 69 73 6f 6e 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c 74 75 72 65 49 67 6e 6f 72 | Comparison.InvariantCultureIgnor |
| 7940 | 65 43 61 73 65 29 29 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 | eCase)))..................return |
| 7960 | 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 6f 6d 70 61 72 | .false;................//.Compar |
| 7980 | 65 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 0d 0a 20 20 20 20 20 20 20 20 | e.device.requirements........... |
| 79a0 | 20 20 20 20 69 66 20 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 3d 20 | ....if.(m_DeviceRequirements.==. |
| 79c0 | 6e 75 6c 6c 20 7c 7c 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 6e | null.||.m_DeviceRequirements.Len |
| 79e0 | 67 74 68 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 | gth.==.0)..................retur |
| 7a00 | 6e 20 6f 74 68 65 72 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 3d 20 | n.other.m_DeviceRequirements.==. |
| 7a20 | 6e 75 6c 6c 20 7c 7c 20 6f 74 68 65 72 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e | null.||.other.m_DeviceRequiremen |
| 7a40 | 74 73 2e 4c 65 6e 67 74 68 20 3d 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | ts.Length.==.0;..............if. |
| 7a60 | 28 6f 74 68 65 72 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 3d 20 6e | (other.m_DeviceRequirements.==.n |
| 7a80 | 75 6c 6c 20 7c 7c 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 | ull.||.m_DeviceRequirements.Leng |
| 7aa0 | 74 68 20 21 3d 20 6f 74 68 65 72 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 | th.!=.other.m_DeviceRequirements |
| 7ac0 | 2e 4c 65 6e 67 74 68 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 | .Length)..................return |
| 7ae0 | 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 63 | .false;................var.devic |
| 7b00 | 65 43 6f 75 6e 74 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 | eCount.=.m_DeviceRequirements.Le |
| 7b20 | 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 | ngth;..............for.(var.i.=. |
| 7b40 | 30 3b 20 69 20 3c 20 64 65 76 69 63 65 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 | 0;.i.<.deviceCount;.++i)........ |
| 7b60 | 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 76 61 72 20 64 65 76 | ......{..................var.dev |
| 7b80 | 69 63 65 20 3d 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 69 5d 3b 0d 0a | ice.=.m_DeviceRequirements[i];.. |
| 7ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 76 65 4d 61 74 63 68 20 3d 20 | ................var.haveMatch.=. |
| 7bc0 | 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 | false;..................for.(var |
| 7be0 | 20 6e 20 3d 20 30 3b 20 6e 20 3c 20 64 65 76 69 63 65 43 6f 75 6e 74 3b 20 2b 2b 6e 29 0d 0a 20 | .n.=.0;.n.<.deviceCount;.++n)... |
| 7c00 | 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 | ...............{................ |
| 7c20 | 20 20 20 20 20 20 69 66 20 28 6f 74 68 65 72 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d | ......if.(other.m_DeviceRequirem |
| 7c40 | 65 6e 74 73 5b 6e 5d 20 3d 3d 20 64 65 76 69 63 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ents[n].==.device).............. |
| 7c60 | 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 20 | ........{....................... |
| 7c80 | 20 20 20 68 61 76 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ...haveMatch.=.true;............ |
| 7ca0 | 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 20 20 20 20 | ..............break;............ |
| 7cc0 | 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 | ..........}..................}.. |
| 7ce0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 68 61 76 65 4d 61 74 63 68 | ..................if.(!haveMatch |
| 7d00 | 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 66 61 | )......................return.fa |
| 7d20 | 6c 73 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 | lse;..............}............. |
| 7d40 | 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 | ...return.true;..........}...... |
| 7d60 | 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 62 6f 6f 6c 20 45 71 75 61 6c | ......public.override.bool.Equal |
| 7d80 | 73 28 6f 62 6a 65 63 74 20 6f 62 6a 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | s(object.obj)..........{........ |
| 7da0 | 20 20 20 20 20 20 69 66 20 28 52 65 66 65 72 65 6e 63 65 45 71 75 61 6c 73 28 6e 75 6c 6c 2c 20 | ......if.(ReferenceEquals(null,. |
| 7dc0 | 6f 62 6a 29 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 66 61 | obj))..................return.fa |
| 7de0 | 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 62 6a 20 69 | lse;................return.obj.i |
| 7e00 | 73 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 26 26 20 45 71 75 61 6c 73 28 28 | s.InputControlScheme.&&.Equals(( |
| 7e20 | 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 29 6f 62 6a 29 3b 0d 0a 20 20 20 20 20 20 | InputControlScheme)obj);........ |
| 7e40 | 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 69 | ..}............public.override.i |
| 7e60 | 6e 74 20 47 65 74 48 61 73 68 43 6f 64 65 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 | nt.GetHashCode()..........{..... |
| 7e80 | 20 20 20 20 20 20 20 20 20 75 6e 63 68 65 63 6b 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .........unchecked.............. |
| 7ea0 | 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 73 68 43 6f 64 65 20 | {..................var.hashCode. |
| 7ec0 | 3d 20 28 6d 5f 4e 61 6d 65 20 21 3d 20 6e 75 6c 6c 20 3f 20 6d 5f 4e 61 6d 65 2e 47 65 74 48 61 | =.(m_Name.!=.null.?.m_Name.GetHa |
| 7ee0 | 73 68 43 6f 64 65 28 29 20 3a 20 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | shCode().:.0);.................. |
| 7f00 | 68 61 73 68 43 6f 64 65 20 3d 20 28 68 61 73 68 43 6f 64 65 20 2a 20 33 39 37 29 20 5e 20 28 6d | hashCode.=.(hashCode.*.397).^.(m |
| 7f20 | 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 20 21 3d 20 6e 75 6c 6c 20 3f 20 6d 5f 42 69 6e 64 69 6e | _BindingGroup.!=.null.?.m_Bindin |
| 7f40 | 67 47 72 6f 75 70 2e 47 65 74 48 61 73 68 43 6f 64 65 28 29 20 3a 20 30 29 3b 0d 0a 20 20 20 20 | gGroup.GetHashCode().:.0);...... |
| 7f60 | 20 20 20 20 20 20 20 20 20 20 20 20 68 61 73 68 43 6f 64 65 20 3d 20 28 68 61 73 68 43 6f 64 65 | ............hashCode.=.(hashCode |
| 7f80 | 20 2a 20 33 39 37 29 20 5e 20 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 | .*.397).^.(m_DeviceRequirements. |
| 7fa0 | 21 3d 20 6e 75 6c 6c 20 3f 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 47 | !=.null.?.m_DeviceRequirements.G |
| 7fc0 | 65 74 48 61 73 68 43 6f 64 65 28 29 20 3a 20 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | etHashCode().:.0);.............. |
| 7fe0 | 20 20 20 20 72 65 74 75 72 6e 20 68 61 73 68 43 6f 64 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ....return.hashCode;............ |
| 8000 | 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 70 75 62 6c 69 63 | ..}..........}............public |
| 8020 | 20 6f 76 65 72 72 69 64 65 20 73 74 72 69 6e 67 20 54 6f 53 74 72 69 6e 67 28 29 0d 0a 20 20 20 | .override.string.ToString()..... |
| 8040 | 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 | .....{..............if.(string.I |
| 8060 | 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 6d 5f 4e 61 6d 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 | sNullOrEmpty(m_Name))........... |
| 8080 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 62 61 73 65 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a | .......return.base.ToString();.. |
| 80a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 | ..............if.(m_DeviceRequir |
| 80c0 | 65 6d 65 6e 74 73 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ements.==.null)................. |
| 80e0 | 20 72 65 74 75 72 6e 20 6d 5f 4e 61 6d 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 | .return.m_Name;................v |
| 8100 | 61 72 20 62 75 69 6c 64 65 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 42 75 69 6c 64 65 72 28 29 | ar.builder.=.new.StringBuilder() |
| 8120 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 6d 5f | ;..............builder.Append(m_ |
| 8140 | 4e 61 6d 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 | Name);..............builder.Appe |
| 8160 | 6e 64 28 27 28 27 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 69 73 46 69 | nd('(');................var.isFi |
| 8180 | 72 73 74 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 | rst.=.true;..............foreach |
| 81a0 | 20 28 76 61 72 20 64 65 76 69 63 65 20 69 6e 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d | .(var.device.in.m_DeviceRequirem |
| 81c0 | 65 6e 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 20 20 | ents)..............{............ |
| 81e0 | 20 20 20 20 20 20 69 66 20 28 21 69 73 46 69 72 73 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ......if.(!isFirst)............. |
| 8200 | 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 27 2c 27 29 3b 0d 0a 0d | .........builder.Append(',');... |
| 8220 | 0a 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 70 70 65 6e 64 28 | .................builder.Append( |
| 8240 | 64 65 76 69 63 65 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | device.controlPath);............ |
| 8260 | 20 20 20 20 20 20 69 73 46 69 72 73 74 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 | ......isFirst.=.false;.......... |
| 8280 | 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 | ....}................builder.App |
| 82a0 | 65 6e 64 28 27 29 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 62 75 | end(')');..............return.bu |
| 82c0 | 69 6c 64 65 72 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a | ilder.ToString();..........}.... |
| 82e0 | 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 62 6f 6f 6c 20 6f 70 65 72 61 | ........public.static.bool.opera |
| 8300 | 74 6f 72 3d 3d 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 6c 65 66 74 2c 20 49 | tor==(InputControlScheme.left,.I |
| 8320 | 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 72 69 67 68 74 29 0d 0a 20 20 20 20 20 20 | nputControlScheme.right)........ |
| 8340 | 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c 65 66 74 2e 45 71 75 | ..{..............return.left.Equ |
| 8360 | 61 6c 73 28 72 69 67 68 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 | als(right);..........}.......... |
| 8380 | 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 62 6f 6f 6c 20 6f 70 65 72 61 74 6f 72 21 3d 28 | ..public.static.bool.operator!=( |
| 83a0 | 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 6c 65 66 74 2c 20 49 6e 70 75 74 43 6f | InputControlScheme.left,.InputCo |
| 83c0 | 6e 74 72 6f 6c 53 63 68 65 6d 65 20 72 69 67 68 74 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 | ntrolScheme.right)..........{... |
| 83e0 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 21 6c 65 66 74 2e 45 71 75 61 6c 73 28 72 | ...........return.!left.Equals(r |
| 8400 | 69 67 68 74 29 3b 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 65 | ight);..........}............[Se |
| 8420 | 72 69 61 6c 69 7a 65 46 69 65 6c 64 5d 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f | rializeField].internal.string.m_ |
| 8440 | 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 65 46 69 65 6c 64 5d 20 | Name;..........[SerializeField]. |
| 8460 | 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 3b 0d | internal.string.m_BindingGroup;. |
| 8480 | 0a 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 65 46 69 65 6c 64 5d 20 69 6e 74 65 72 6e | .........[SerializeField].intern |
| 84a0 | 61 6c 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 5b 5d 20 6d 5f 44 65 76 69 63 65 52 | al.DeviceRequirement[].m_DeviceR |
| 84c0 | 65 71 75 69 72 65 6d 65 6e 74 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d | equirements;............///.<sum |
| 84e0 | 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66 | mary>..........///.The.result.of |
| 8500 | 20 6d 61 74 63 68 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 3c 73 65 65 20 63 72 65 66 3d 22 49 | .matching.a.list.of.<see.cref="I |
| 8520 | 6e 70 75 74 44 65 76 69 63 65 22 3e 64 65 76 69 63 65 73 3c 2f 73 65 65 3e 20 61 67 61 69 6e 73 | nputDevice">devices</see>.agains |
| 8540 | 74 20 61 20 6c 69 73 74 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 | t.a.list.of..........///.<see.cr |
| 8560 | 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 22 3e 72 65 71 75 69 72 65 6d 65 | ef="DeviceRequirement">requireme |
| 8580 | 6e 74 73 3c 2f 73 65 65 3e 20 69 6e 20 61 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 | nts</see>.in.an.<see.cref="Input |
| 85a0 | 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c | ControlScheme"/>...........///.< |
| 85c0 | 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 6b 73 3e | /summary>..........///.<remarks> |
| 85e0 | 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 73 74 72 75 63 74 20 75 73 65 73 20 3c | ..........///.This.struct.uses.< |
| 8600 | 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 7b 54 43 6f 6e 74 | see.cref="InputControlList{TCont |
| 8620 | 72 6f 6c 7d 22 2f 3e 20 77 68 69 63 68 20 61 6c 6c 6f 63 61 74 65 73 20 75 6e 6d 61 6e 61 67 65 | rol}"/>.which.allocates.unmanage |
| 8640 | 64 20 6d 65 6d 6f 72 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 64 20 74 68 75 73 20 6d | d.memory..........///.and.thus.m |
| 8660 | 75 73 74 20 62 65 20 64 69 73 70 6f 73 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6e 6f 74 20 | ust.be.disposed.in.order.to.not. |
| 8680 | 6c 65 61 6b 20 75 6e 6d 61 6e 61 67 65 64 20 68 65 61 70 20 6d 65 6d 6f 72 79 2e 0d 0a 20 20 20 | leak.unmanaged.heap.memory...... |
| 86a0 | 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 2f | .....///.</remarks>........../// |
| 86c0 | 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 | .<seealso.cref="InputControlSche |
| 86e0 | 6d 65 2e 50 69 63 6b 44 65 76 69 63 65 73 46 72 6f 6d 7b 54 44 65 76 69 63 65 73 7d 22 2f 3e 0d | me.PickDevicesFrom{TDevices}"/>. |
| 8700 | 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 20 4d 61 74 63 68 52 65 73 75 | .........public.struct.MatchResu |
| 8720 | 6c 74 20 3a 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 4d 61 74 63 68 52 65 73 75 6c 74 2e 4d 61 74 | lt.:.IEnumerable<MatchResult.Mat |
| 8740 | 63 68 3e 2c 20 49 44 69 73 70 6f 73 61 62 6c 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 | ch>,.IDisposable..........{..... |
| 8760 | 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>.......... |
| 8780 | 20 20 20 20 2f 2f 2f 20 4f 76 65 72 61 6c 6c 2c 20 72 65 6c 61 74 69 76 65 20 6d 65 61 73 75 72 | ....///.Overall,.relative.measur |
| 87a0 | 65 20 66 6f 72 20 68 6f 77 20 77 65 6c 6c 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d | e.for.how.well.the.control.schem |
| 87c0 | 65 20 6d 61 74 63 68 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 | e.matches...............///.</su |
| 87e0 | 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 76 61 6c 75 65 3e 53 | mmary>..............///.<value>S |
| 8800 | 63 6f 72 69 6e 67 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 | coring.value.for.the.control.sch |
| 8820 | 65 6d 65 20 6d 61 74 63 68 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | eme.match.</value>.............. |
| 8840 | 2f 2f 2f 20 3c 72 65 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 | ///.<remarks>..............///.T |
| 8860 | 77 6f 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 6d 61 79 2c 20 66 6f 72 20 65 78 61 6d | wo.control.schemes.may,.for.exam |
| 8880 | 70 6c 65 2c 20 62 6f 74 68 20 73 75 70 70 6f 72 74 20 67 61 6d 65 70 61 64 73 20 62 75 74 20 6f | ple,.both.support.gamepads.but.o |
| 88a0 | 6e 65 20 6d 61 79 20 62 65 20 74 61 69 6c 6f 72 65 64 20 74 6f 20 61 20 73 70 65 63 69 66 69 63 | ne.may.be.tailored.to.a.specific |
| 88c0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 67 61 6d 65 70 61 64 20 77 68 65 72 65 61 | ..............///.gamepad.wherea |
| 88e0 | 73 20 74 68 65 20 6f 74 68 65 72 20 6f 6e 65 20 69 73 20 61 20 67 65 6e 65 72 69 63 20 67 61 6d | s.the.other.one.is.a.generic.gam |
| 8900 | 65 70 61 64 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 20 54 6f 20 64 69 66 66 65 72 65 6e | epad.control.scheme..To.differen |
| 8920 | 74 69 61 74 65 20 74 68 65 20 74 77 6f 2c 20 77 65 20 6e 65 65 64 0d 0a 20 20 20 20 20 20 20 20 | tiate.the.two,.we.need.......... |
| 8940 | 20 20 20 20 2f 2f 2f 20 74 6f 20 6b 6e 6f 77 20 6e 6f 74 20 6f 6e 6c 79 20 74 68 61 74 20 61 20 | ....///.to.know.not.only.that.a. |
| 8960 | 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 73 20 62 75 74 20 68 6f 77 20 77 65 6c 6c 20 69 74 20 | control.schemes.but.how.well.it. |
| 8980 | 6d 61 74 63 68 65 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 6f 74 68 65 72 20 73 63 68 65 6d 65 | matches.relative.to.other.scheme |
| 89a0 | 73 2e 20 54 68 69 73 20 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 68 61 74 | s..This.is..............///.what |
| 89c0 | 20 74 68 65 20 73 63 6f 72 65 20 76 61 6c 75 65 20 69 73 20 75 73 65 64 20 66 6f 72 2e 0d 0a 20 | .the.score.value.is.used.for.... |
| 89e0 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 | ...........///..............///. |
| 8a00 | 53 63 6f 72 65 73 20 61 72 65 20 63 6f 6d 70 75 74 65 64 20 70 72 69 6d 61 72 69 6c 79 20 62 61 | Scores.are.computed.primarily.ba |
| 8a20 | 73 65 64 20 6f 6e 20 6c 61 79 6f 75 74 73 20 72 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 64 | sed.on.layouts.referenced.from.d |
| 8a40 | 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 20 54 6f 20 73 74 61 72 74 20 77 69 74 | evice.requirements..To.start.wit |
| 8a60 | 68 2c 20 65 61 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 6d 61 74 63 68 69 6e | h,.each..............///.matchin |
| 8a80 | 67 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 28 77 68 65 74 68 65 72 20 6f 70 | g.device.requirement.(whether.op |
| 8aa0 | 74 69 6f 6e 61 6c 20 6f 72 20 6d 61 6e 64 61 74 6f 72 79 29 20 77 69 6c 6c 20 61 64 64 20 31 20 | tional.or.mandatory).will.add.1. |
| 8ac0 | 74 6f 20 74 68 65 20 73 63 6f 72 65 2e 20 54 68 69 73 20 74 68 65 20 62 61 73 65 0d 0a 20 20 20 | to.the.score..This.the.base..... |
| 8ae0 | 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 73 63 6f 72 65 20 6f 66 20 61 20 6d 61 74 63 68 2e 20 54 | .........///.score.of.a.match..T |
| 8b00 | 68 65 6e 2c 20 66 6f 72 20 65 61 63 68 20 72 65 71 75 69 72 65 6d 65 6e 74 20 61 20 64 65 6c 74 | hen,.for.each.requirement.a.delt |
| 8b20 | 61 20 69 73 20 63 6f 6d 70 75 74 65 64 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 20 6c 61 | a.is.computed.from.the.device.la |
| 8b40 | 79 6f 75 74 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | yout.referenced.by.............. |
| 8b60 | 2f 2f 2f 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 74 68 65 20 64 65 76 69 63 | ///.the.requirement.to.the.devic |
| 8b80 | 65 20 6c 61 79 6f 75 74 20 75 73 65 64 20 62 79 20 74 68 65 20 6d 61 74 63 68 69 6e 67 20 63 6f | e.layout.used.by.the.matching.co |
| 8ba0 | 6e 74 72 6f 6c 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 72 65 71 75 69 | ntrol..For.example,.if.the.requi |
| 8bc0 | 72 65 6d 65 6e 74 20 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 63 3e 22 26 | rement.is..............///.<c>"& |
| 8be0 | 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 3c 2f 63 3e 20 61 6e 64 20 74 68 65 20 6d 61 74 63 68 | lt;Gamepad></c>.and.the.match |
| 8c00 | 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 75 73 65 73 20 74 68 65 20 3c 73 65 65 20 63 72 65 66 3d 22 | ing.control.uses.the.<see.cref=" |
| 8c20 | 44 75 61 6c 53 68 6f 63 6b 2e 44 75 61 6c 53 68 6f 63 6b 34 47 61 6d 65 70 61 64 48 49 44 22 2f | DualShock.DualShock4GamepadHID"/ |
| 8c40 | 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 6c 61 79 6f 75 74 2c 20 74 68 65 20 64 | >..............///.layout,.the.d |
| 8c60 | 65 6c 74 61 20 69 73 20 32 20 61 73 20 74 68 65 20 6c 61 74 74 65 72 20 6c 61 79 6f 75 74 20 69 | elta.is.2.as.the.latter.layout.i |
| 8c80 | 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 3c 73 65 65 20 63 72 65 66 3d 22 47 61 6d 65 70 61 | s.derived.from.<see.cref="Gamepa |
| 8ca0 | 64 22 2f 3e 20 76 69 61 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 0d 0a 20 20 20 20 20 | d"/>.via.the.intermediate....... |
| 8cc0 | 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d 22 44 75 61 6c 53 68 6f 63 6b 2e | .......///.<see.cref="DualShock. |
| 8ce0 | 44 75 61 6c 53 68 6f 63 6b 47 61 6d 65 70 61 64 22 2f 3e 20 6c 61 79 6f 75 74 2c 20 69 2e 65 2e | DualShockGamepad"/>.layout,.i.e. |
| 8d00 | 20 74 77 6f 20 73 74 65 70 73 20 69 6e 20 74 68 65 20 69 6e 68 65 72 69 74 61 6e 63 65 20 68 69 | .two.steps.in.the.inheritance.hi |
| 8d20 | 65 72 61 72 63 68 79 2e 20 54 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 | erarchy..The..............///.<e |
| 8d40 | 6d 3e 69 6e 76 65 72 73 65 3c 2f 65 6d 3e 20 6f 66 20 74 68 65 20 64 65 6c 74 61 20 70 6c 75 73 | m>inverse</em>.of.the.delta.plus |
| 8d60 | 20 6f 6e 65 2c 20 69 2e 65 2e 20 3c 63 3e 31 2f 28 64 65 6c 74 61 2b 31 29 3c 2f 63 3e 20 69 73 | .one,.i.e..<c>1/(delta+1)</c>.is |
| 8d80 | 20 74 68 65 6e 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 73 63 6f 72 65 2e 20 54 68 69 73 20 6d | .then.added.to.the.score..This.m |
| 8da0 | 65 61 6e 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 61 74 20 61 6e 20 65 78 | eans..............///.that.an.ex |
| 8dc0 | 61 63 74 20 6d 61 74 63 68 20 77 69 6c 6c 20 61 64 64 20 61 6e 20 61 64 64 69 74 69 6f 6e 61 6c | act.match.will.add.an.additional |
| 8de0 | 20 31 20 74 6f 20 74 68 65 20 73 63 6f 72 65 20 61 6e 64 20 6c 65 73 73 20 65 78 61 63 74 20 6d | .1.to.the.score.and.less.exact.m |
| 8e00 | 61 74 63 68 65 73 20 77 69 6c 6c 20 61 64 64 20 70 72 6f 67 72 65 73 73 69 76 65 6c 79 0d 0a 20 | atches.will.add.progressively... |
| 8e20 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 73 6d 61 6c 6c 65 72 20 76 61 6c 75 65 73 20 74 6f | ...........///.smaller.values.to |
| 8e40 | 20 74 68 65 20 73 63 6f 72 65 20 28 70 72 6f 70 6f 72 74 69 6f 6e 61 6c 20 74 6f 20 74 68 65 20 | .the.score.(proportional.to.the. |
| 8e60 | 64 69 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c 20 6c 61 79 6f 75 74 20 74 6f | distance.of.the.actual.layout.to |
| 8e80 | 20 74 68 65 20 6f 6e 65 20 75 73 65 64 20 69 6e 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 | .the.one.used.in.the............ |
| 8ea0 | 20 20 2f 2f 2f 20 72 65 71 75 69 72 65 6d 65 6e 74 29 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ..///.requirement).............. |
| 8ec0 | 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 57 68 61 74 20 74 68 69 73 20 | .///..............///.What.this. |
| 8ee0 | 6c 65 61 64 73 20 74 6f 20 69 73 20 74 68 61 74 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 | leads.to.is.that,.for.example,.a |
| 8f00 | 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 77 69 74 68 20 61 20 3c 63 3e 22 26 6c 74 3b 47 | .control.scheme.with.a.<c>"<G |
| 8f20 | 61 6d 65 70 61 64 26 67 74 3b 22 3c 2f 63 3e 20 72 65 71 75 69 72 65 6d 65 6e 74 0d 0a 20 20 20 | amepad>"</c>.requirement..... |
| 8f40 | 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 69 6c 6c 20 6d 61 74 63 68 20 61 20 3c 73 65 65 20 63 | .........///.will.match.a.<see.c |
| 8f60 | 72 65 66 3d 22 44 75 61 6c 53 68 6f 63 6b 2e 44 75 61 6c 53 68 6f 63 6b 34 47 61 6d 65 70 61 64 | ref="DualShock.DualShock4Gamepad |
| 8f80 | 48 49 44 22 2f 3e 20 77 69 74 68 20 61 20 3c 65 6d 3e 6c 6f 77 65 72 3c 2f 65 6d 3e 20 73 63 6f | HID"/>.with.a.<em>lower</em>.sco |
| 8fa0 | 72 65 20 74 68 61 6e 20 61 20 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f | re.than.a.control............../ |
| 8fc0 | 2f 2f 20 73 63 68 65 6d 65 20 77 69 74 68 20 61 20 3c 63 3e 22 26 6c 74 3b 44 75 61 6c 53 68 6f | //.scheme.with.a.<c>"<DualSho |
| 8fe0 | 63 6b 47 61 6d 65 70 61 64 26 67 74 3b 22 3c 2f 63 3e 20 72 65 71 75 69 72 65 6d 65 6e 74 20 61 | ckGamepad>"</c>.requirement.a |
| 9000 | 73 20 74 68 65 20 3c 73 65 65 20 63 72 65 66 3d 22 47 61 6d 65 70 61 64 22 2f 3e 20 6c 61 79 6f | s.the.<see.cref="Gamepad"/>.layo |
| 9020 | 75 74 20 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 75 72 74 68 65 72 20 72 | ut.is..............///.further.r |
| 9040 | 65 6d 6f 76 65 64 20 28 69 2e 65 2e 20 73 6d 61 6c 6c 65 72 20 69 6e 76 65 72 73 65 20 64 65 6c | emoved.(i.e..smaller.inverse.del |
| 9060 | 74 61 29 20 66 72 6f 6d 20 3c 73 65 65 20 63 72 65 66 3d 22 44 75 61 6c 53 68 6f 63 6b 2e 44 75 | ta).from.<see.cref="DualShock.Du |
| 9080 | 61 6c 53 68 6f 63 6b 34 47 61 6d 65 70 61 64 48 49 44 22 2f 3e 20 74 68 61 6e 0d 0a 20 20 20 20 | alShock4GamepadHID"/>.than...... |
| 90a0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d 22 44 75 61 6c 53 68 6f 63 6b | ........///.<see.cref="DualShock |
| 90c0 | 2e 44 75 61 6c 53 68 6f 63 6b 47 61 6d 65 70 61 64 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 20 | .DualShockGamepad"/>............ |
| 90e0 | 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 20 20 20 20 70 | ...///.</remarks>..............p |
| 9100 | 75 62 6c 69 63 20 66 6c 6f 61 74 20 73 63 6f 72 65 20 3d 3e 20 6d 5f 53 63 6f 72 65 3b 0d 0a 0d | ublic.float.score.=>.m_Score;... |
| 9120 | 0a 20 20 20 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 | .............///.<summary>...... |
| 9140 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 57 68 65 74 68 65 72 20 74 68 65 20 64 65 76 69 63 65 20 72 | ........///.Whether.the.device.r |
| 9160 | 65 71 75 69 72 65 6d 65 6e 74 73 20 67 6f 74 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 6d 61 74 | equirements.got.successfully.mat |
| 9180 | 63 68 65 64 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 | ched...............///.</summary |
| 91a0 | 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 72 75 65 20 69 | >..............///.<value>True.i |
| 91c0 | 66 20 74 68 65 20 73 63 68 65 6d 65 27 73 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e | f.the.scheme's.device.requiremen |
| 91e0 | 74 73 20 77 65 72 65 20 73 61 74 69 73 66 69 65 64 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 | ts.were.satisfied.</value>...... |
| 9200 | 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 53 75 63 63 65 73 73 66 75 6c | ........public.bool.isSuccessful |
| 9220 | 4d 61 74 63 68 20 3d 3e 20 6d 5f 52 65 73 75 6c 74 20 21 3d 20 52 65 73 75 6c 74 2e 4d 69 73 73 | Match.=>.m_Result.!=.Result.Miss |
| 9240 | 69 6e 67 52 65 71 75 69 72 65 64 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 | ingRequired;................///. |
| 9260 | 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 20 57 68 65 74 68 | <summary>..............///.Wheth |
| 9280 | 65 72 20 74 68 65 72 65 20 61 72 65 20 6d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 64 65 | er.there.are.missing.required.de |
| 92a0 | 76 69 63 65 73 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 | vices...............///.</summar |
| 92c0 | 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 72 75 65 20 | y>..............///.<value>True. |
| 92e0 | 69 66 20 74 68 65 72 65 20 61 72 65 20 6d 69 73 73 69 6e 67 2c 20 6e 6f 6e 2d 6f 70 74 69 6f 6e | if.there.are.missing,.non-option |
| 9300 | 61 6c 20 64 65 76 69 63 65 73 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | al.devices.</value>............. |
| 9320 | 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 | .///.<seealso.cref="DeviceRequir |
| 9340 | 65 6d 65 6e 74 2e 69 73 4f 70 74 69 6f 6e 61 6c 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ement.isOptional"/>............. |
| 9360 | 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 68 61 73 4d 69 73 73 69 6e 67 52 65 71 75 69 72 65 64 44 | .public.bool.hasMissingRequiredD |
| 9380 | 65 76 69 63 65 73 20 3d 3e 20 6d 5f 52 65 73 75 6c 74 20 3d 3d 20 52 65 73 75 6c 74 2e 4d 69 73 | evices.=>.m_Result.==.Result.Mis |
| 93a0 | 73 69 6e 67 52 65 71 75 69 72 65 64 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | singRequired;................/// |
| 93c0 | 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 20 57 68 65 74 | .<summary>..............///.Whet |
| 93e0 | 68 65 72 20 74 68 65 72 65 20 61 72 65 20 6d 69 73 73 69 6e 67 20 6f 70 74 69 6f 6e 61 6c 20 64 | her.there.are.missing.optional.d |
| 9400 | 65 76 69 63 65 73 2e 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 70 72 65 76 65 6e 74 0d 0a 20 | evices..This.does.not.prevent... |
| 9420 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 6d 61 74 63 | ...........///.a.successful.matc |
| 9440 | 68 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 | h...............///.</summary>.. |
| 9460 | 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 72 75 65 20 69 66 20 74 | ............///.<value>True.if.t |
| 9480 | 68 65 72 65 20 61 72 65 20 6d 69 73 73 69 6e 67 20 6f 70 74 69 6f 6e 61 6c 20 64 65 76 69 63 65 | here.are.missing.optional.device |
| 94a0 | 73 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 | s.</value>..............///.<see |
| 94c0 | 61 6c 73 6f 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 2e 69 73 4f | also.cref="DeviceRequirement.isO |
| 94e0 | 70 74 69 6f 6e 61 6c 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 | ptional"/>..............public.b |
| 9500 | 6f 6f 6c 20 68 61 73 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 61 6c 44 65 76 69 63 65 73 20 3d 3e | ool.hasMissingOptionalDevices.=> |
| 9520 | 20 6d 5f 52 65 73 75 6c 74 20 3d 3d 20 52 65 73 75 6c 74 2e 4d 69 73 73 69 6e 67 4f 70 74 69 6f | .m_Result.==.Result.MissingOptio |
| 9540 | 6e 61 6c 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 61 72 79 | nal;................///.<summary |
| 9560 | 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 64 65 76 69 63 65 73 20 74 | >..............///.The.devices.t |
| 9580 | 68 61 74 20 67 6f 74 20 70 69 63 6b 65 64 20 66 72 6f 6d 20 74 68 65 20 61 76 61 69 6c 61 62 6c | hat.got.picked.from.the.availabl |
| 95a0 | 65 20 64 65 76 69 63 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 | e.devices...............///.</su |
| 95c0 | 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 49 6e 70 75 74 | mmary>..............public.Input |
| 95e0 | 43 6f 6e 74 72 6f 6c 4c 69 73 74 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 20 64 65 76 69 63 65 73 | ControlList<InputDevice>.devices |
| 9600 | 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 | ..............{................. |
| 9620 | 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 20 20 20 | .get..................{......... |
| 9640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4c 61 7a 69 6c 79 20 63 6f 6e 73 74 72 75 63 74 | .............//.Lazily.construct |
| 9660 | 20 74 68 65 20 64 65 76 69 63 65 20 6c 69 73 74 2e 20 49 66 20 77 65 20 68 61 76 65 20 6d 69 73 | .the.device.list..If.we.have.mis |
| 9680 | 73 69 6e 67 20 72 65 71 75 69 72 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sing.required................... |
| 96a0 | 20 20 20 2f 2f 20 64 65 76 69 63 65 73 2c 20 74 68 6f 75 67 68 2c 20 61 6c 77 61 79 73 20 72 65 | ...//.devices,.though,.always.re |
| 96c0 | 74 75 72 6e 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 2e 20 54 68 65 20 75 73 65 72 20 63 61 6e | turn.an.empty.list..The.user.can |
| 96e0 | 20 73 74 69 6c 6c 20 73 65 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .still.see...................... |
| 9700 | 2f 2f 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 6d 61 74 63 68 65 73 20 6f 6e 20 65 61 63 | //.the.individual.matches.on.eac |
| 9720 | 68 20 6f 66 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 65 6e 74 72 69 65 73 20 62 75 74 | h.of.the.requirement.entries.but |
| 9740 | 20 77 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 63 6f 6e 73 | .we......................//.cons |
| 9760 | 69 64 65 72 20 74 68 65 20 64 65 76 69 63 65 20 70 69 63 6b 69 6e 67 20 69 74 73 65 6c 66 20 66 | ider.the.device.picking.itself.f |
| 9780 | 61 69 6c 65 64 2e 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 | ailed.......................if.( |
| 97a0 | 6d 5f 44 65 76 69 63 65 73 2e 43 6f 75 6e 74 20 3d 3d 20 30 20 26 26 20 21 68 61 73 4d 69 73 73 | m_Devices.Count.==.0.&&.!hasMiss |
| 97c0 | 69 6e 67 52 65 71 75 69 72 65 64 44 65 76 69 63 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ingRequiredDevices)............. |
| 97e0 | 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 | .........{...................... |
| 9800 | 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c 43 6f 75 6e 74 20 3d 20 6d 5f 43 6f 6e 74 72 6f 6c | ....var.controlCount.=.m_Control |
| 9820 | 73 2e 43 6f 75 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 | s.Count;........................ |
| 9840 | 20 20 69 66 20 28 63 6f 6e 74 72 6f 6c 43 6f 75 6e 74 20 21 3d 20 30 29 0d 0a 20 20 20 20 20 20 | ..if.(controlCount.!=.0)........ |
| 9860 | 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 | ..................{............. |
| 9880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 73 2e 43 61 70 61 63 | .................m_Devices.Capac |
| 98a0 | 69 74 79 20 3d 20 63 6f 6e 74 72 6f 6c 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ity.=.controlCount;............. |
| 98c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b | .................for.(var.i.=.0; |
| 98e0 | 20 69 20 3c 20 63 6f 6e 74 72 6f 6c 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 | .i.<.controlCount;.++i)......... |
| 9900 | 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 20 20 | .....................{.......... |
| 9920 | 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 6e 74 | ........................var.cont |
| 9940 | 72 6f 6c 20 3d 20 6d 5f 43 6f 6e 74 72 6f 6c 73 5b 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | rol.=.m_Controls[i];............ |
| 9960 | 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 63 6f 6e 74 72 6f | ......................if.(contro |
| 9980 | 6c 20 3d 3d 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 | l.==.null)...................... |
| 99a0 | 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 0a 20 20 20 | ................continue;....... |
| 99c0 | 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 76 61 72 | .............................var |
| 99e0 | 20 64 65 76 69 63 65 20 3d 20 63 6f 6e 74 72 6f 6c 2e 64 65 76 69 63 65 3b 0d 0a 20 20 20 20 20 | .device.=.control.device;....... |
| 9a00 | 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 20 28 6d | ...........................if.(m |
| 9a20 | 5f 44 65 76 69 63 65 73 2e 43 6f 6e 74 61 69 6e 73 28 64 65 76 69 63 65 29 29 0d 0a 20 20 20 20 | _Devices.Contains(device))...... |
| 9a40 | 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 | ................................ |
| 9a60 | 63 6f 6e 74 69 6e 75 65 3b 20 2f 2f 20 44 75 70 6c 69 63 61 74 65 20 6d 61 74 63 68 20 6f 66 20 | continue;.//.Duplicate.match.of. |
| 9a80 | 73 61 6d 65 20 64 65 76 69 63 65 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | same.device..................... |
| 9aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 73 2e 41 64 64 28 64 65 | ................m_Devices.Add(de |
| 9ac0 | 76 69 63 65 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 | vice);.......................... |
| 9ae0 | 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 7d | ....}..........................} |
| 9b00 | 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 0d 0a 20 20 20 20 20 | ......................}......... |
| 9b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 44 65 76 69 63 65 73 3b | ...............return.m_Devices; |
| 9b40 | 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 | ..................}............. |
| 9b60 | 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 4d 61 74 63 68 20 74 | .}................public.Match.t |
| 9b80 | 68 69 73 5b 69 6e 74 20 69 6e 64 65 78 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 | his[int.index]..............{... |
| 9ba0 | 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 20 20 | ...............get.............. |
| 9bc0 | 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 69 66 20 28 69 | ....{......................if.(i |
| 9be0 | 6e 64 65 78 20 3c 20 30 20 7c 7c 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 3d 20 6e 75 | ndex.<.0.||.m_Requirements.==.nu |
| 9c00 | 6c 6c 20 7c 7c 20 69 6e 64 65 78 20 3e 3d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 | ll.||.index.>=.m_Requirements.Le |
| 9c20 | 6e 67 74 68 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 74 | ngth)..........................t |
| 9c40 | 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4f 75 74 4f 66 52 61 6e 67 65 45 78 63 65 70 | hrow.new.ArgumentOutOfRangeExcep |
| 9c60 | 74 69 6f 6e 28 22 69 6e 64 65 78 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tion("index");.................. |
| 9c80 | 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 4d 61 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20 | ....return.new.Match............ |
| 9ca0 | 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 | ..........{..................... |
| 9cc0 | 20 20 20 20 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 20 3d 20 69 6e 64 65 78 2c | .....m_RequirementIndex.=.index, |
| 9ce0 | 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 6d 5f 52 65 71 75 | ..........................m_Requ |
| 9d00 | 69 72 65 6d 65 6e 74 73 20 3d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 20 | irements.=.m_Requirements,...... |
| 9d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 73 20 3d | ....................m_Controls.= |
| 9d40 | 20 6d 5f 43 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .m_Controls,.................... |
| 9d60 | 20 20 7d 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 | ..};..................}......... |
| 9d80 | 20 20 20 20 20 7d 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 61 | .....}................///.<summa |
| 9da0 | 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 45 6e 75 6d 65 72 61 74 65 20 74 | ry>..............///.Enumerate.t |
| 9dc0 | 68 65 20 6d 61 74 63 68 20 66 6f 72 20 65 61 63 68 20 69 6e 64 69 76 69 64 75 61 6c 20 3c 73 65 | he.match.for.each.individual.<se |
| 9de0 | 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 22 2f 3e 20 69 6e 20 | e.cref="DeviceRequirement"/>.in. |
| 9e00 | 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | the.control.scheme.............. |
| 9e20 | 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 2f 2f 2f | .///.</summary>............../// |
| 9e40 | 20 3c 72 65 74 75 72 6e 73 3e 41 6e 20 65 6e 75 6d 65 72 61 74 65 20 67 6f 69 6e 67 20 6f 76 65 | .<returns>An.enumerate.going.ove |
| 9e60 | 72 20 65 61 63 68 20 69 6e 64 69 76 69 64 75 61 6c 20 6d 61 74 63 68 2e 3c 2f 72 65 74 75 72 6e | r.each.individual.match.</return |
| 9e80 | 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 45 6e 75 6d 65 72 61 74 | s>..............public.IEnumerat |
| 9ea0 | 6f 72 3c 4d 61 74 63 68 3e 20 47 65 74 45 6e 75 6d 65 72 61 74 6f 72 28 29 0d 0a 20 20 20 20 20 | or<Match>.GetEnumerator()....... |
| 9ec0 | 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 72 65 74 75 72 6e | .......{..................return |
| 9ee0 | 20 6e 65 77 20 45 6e 75 6d 65 72 61 74 6f 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .new.Enumerator................. |
| 9f00 | 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 49 6e 64 65 78 20 | .{......................m_Index. |
| 9f20 | 3d 20 2d 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 52 65 71 | =.-1,......................m_Req |
| 9f40 | 75 69 72 65 6d 65 6e 74 73 20 3d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 | uirements.=.m_Requirements,..... |
| 9f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 73 20 3d 20 6d 5f | .................m_Controls.=.m_ |
| 9f80 | 43 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 | Controls,..................};... |
| 9fa0 | 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 2f 2f 2f 20 | ...........}................///. |
| 9fc0 | 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 20 45 6e 75 6d 65 | <summary>..............///.Enume |
| 9fe0 | 72 61 74 65 20 74 68 65 20 6d 61 74 63 68 20 66 6f 72 20 65 61 63 68 20 69 6e 64 69 76 69 64 75 | rate.the.match.for.each.individu |
| a000 | 61 6c 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 22 | al.<see.cref="DeviceRequirement" |
| a020 | 2f 3e 20 69 6e 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 | />.in.the.control.scheme........ |
| a040 | 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 20 20 20 20 20 | .......///.</summary>........... |
| a060 | 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 41 6e 20 65 6e 75 6d 65 72 61 74 65 20 67 6f 69 | ...///.<returns>An.enumerate.goi |
| a080 | 6e 67 20 6f 76 65 72 20 65 61 63 68 20 69 6e 64 69 76 69 64 75 61 6c 20 6d 61 74 63 68 2e 3c 2f | ng.over.each.individual.match.</ |
| a0a0 | 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 45 6e 75 6d 65 72 61 74 6f | returns>..............IEnumerato |
| a0c0 | 72 20 49 45 6e 75 6d 65 72 61 62 6c 65 2e 47 65 74 45 6e 75 6d 65 72 61 74 6f 72 28 29 0d 0a 20 | r.IEnumerable.GetEnumerator()... |
| a0e0 | 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 72 65 | ...........{..................re |
| a100 | 74 75 72 6e 20 47 65 74 45 6e 75 6d 65 72 61 74 6f 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 | turn.GetEnumerator();........... |
| a120 | 20 20 20 7d 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 61 72 79 | ...}................///.<summary |
| a140 | 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 44 69 73 63 61 72 64 20 74 68 65 20 6c | >..............///.Discard.the.l |
| a160 | 69 73 74 20 6f 66 20 64 65 76 69 63 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | ist.of.devices.............../// |
| a180 | 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 20 | .</summary>..............public. |
| a1a0 | 76 6f 69 64 20 44 69 73 70 6f 73 65 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 | void.Dispose()..............{... |
| a1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 73 2e 44 69 73 70 6f 73 | ...............m_Controls.Dispos |
| a1e0 | 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 73 2e | e();..................m_Devices. |
| a200 | 44 69 73 70 6f 73 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 | Dispose();..............}....... |
| a220 | 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 52 65 73 75 6c 74 20 6d 5f 52 65 73 75 6c | .........internal.Result.m_Resul |
| a240 | 74 3b 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 61 74 20 6d | t;..............internal.float.m |
| a260 | 5f 53 63 6f 72 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e | _Score;..............internal.In |
| a280 | 70 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 3c 49 6e 70 75 74 44 65 76 69 63 65 3e 20 6d 5f 44 65 | putControlList<InputDevice>.m_De |
| a2a0 | 76 69 63 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e 70 | vices;..............internal.Inp |
| a2c0 | 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 3c 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 3e 20 6d 5f 43 6f | utControlList<InputControl>.m_Co |
| a2e0 | 6e 74 72 6f 6c 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 44 65 | ntrols;..............internal.De |
| a300 | 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 5b 5d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 | viceRequirement[].m_Requirements |
| a320 | 3b 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 65 6e 75 6d 20 52 | ;................internal.enum.R |
| a340 | 65 73 75 6c 74 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 | esult..............{............ |
| a360 | 20 20 20 20 20 20 41 6c 6c 53 61 74 69 73 66 69 65 64 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ......AllSatisfied,............. |
| a380 | 20 20 20 20 20 4d 69 73 73 69 6e 67 52 65 71 75 69 72 65 64 2c 0d 0a 20 20 20 20 20 20 20 20 20 | .....MissingRequired,........... |
| a3a0 | 20 20 20 20 20 20 20 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 61 6c 2c 0d 0a 20 20 20 20 20 20 20 | .......MissingOptional,......... |
| a3c0 | 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 | .....}................////REVIEW |
| a3e0 | 3a 20 77 6f 75 6c 64 20 62 65 20 67 72 65 61 74 20 74 6f 20 6e 6f 74 20 68 61 76 65 20 74 6f 20 | :.would.be.great.to.not.have.to. |
| a400 | 72 65 70 65 61 74 65 64 6c 79 20 63 6f 70 79 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 | repeatedly.copy.InputControlList |
| a420 | 73 20 61 72 6f 75 6e 64 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d | s.around................///.<sum |
| a440 | 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 20 73 69 6e 67 6c 65 20 | mary>..............///.A.single. |
| a460 | 6d 61 74 63 68 65 64 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 | matched.<see.cref="DeviceRequire |
| a480 | 6d 65 6e 74 22 2f 3e 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 | ment"/>...............///.</summ |
| a4a0 | 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 6d 61 72 6b 73 3e 0d | ary>..............///.<remarks>. |
| a4c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 4c 69 6e 6b 73 20 74 68 65 20 63 6f 6e 74 72 | .............///.Links.the.contr |
| a4e0 | 6f 6c 20 74 68 61 74 20 77 61 73 20 6d 61 74 63 68 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 | ol.that.was.matched.with.the.res |
| a500 | 70 65 63 74 69 76 65 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 0d 0a 20 20 20 | pective.device.requirement...... |
| a520 | 20 20 20 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 | .........///.</remarks>......... |
| a540 | 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 61 | .....[System.Diagnostics.CodeAna |
| a560 | 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 74 | lysis.SuppressMessage("Microsoft |
| a580 | 2e 4e 61 6d 69 6e 67 22 2c 20 22 43 41 31 37 32 34 3a 54 79 70 65 4e 61 6d 65 73 53 68 6f 75 6c | .Naming",."CA1724:TypeNamesShoul |
| a5a0 | 64 4e 6f 74 4d 61 74 63 68 4e 61 6d 65 73 70 61 63 65 73 22 2c 20 4a 75 73 74 69 66 69 63 61 74 | dNotMatchNamespaces",.Justificat |
| a5c0 | 69 6f 6e 20 3d 20 22 43 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 55 6e 69 74 79 45 6e 67 69 6e | ion.=."Conflicts.with.UnityEngin |
| a5e0 | 65 2e 4e 65 74 77 6f 72 6b 69 6e 67 2e 4d 61 74 63 68 2c 20 77 68 69 63 68 20 69 73 20 64 65 70 | e.Networking.Match,.which.is.dep |
| a600 | 72 65 63 61 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 67 6f 20 61 77 61 79 2e 22 29 5d 0d 0a 20 20 | recated.and.will.go.away.")].... |
| a620 | 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 20 4d 61 74 63 68 0d 0a 20 | ..........public.struct.Match... |
| a640 | 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 | ...........{..................// |
| a660 | 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 20 20 20 20 2f 2f 2f | /.<summary>................../// |
| a680 | 20 54 68 65 20 63 6f 6e 74 72 6f 6c 20 74 68 61 74 20 77 61 73 20 6d 61 74 63 68 20 66 72 6f 6d | .The.control.that.was.match.from |
| a6a0 | 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 27 73 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 | .the.requirement's.<see.cref="De |
| a6c0 | 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 0d 0a | viceRequirement.controlPath"/>.. |
| a6e0 | 20 20 20 20 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 | ................///.</summary>.. |
| a700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 | ................///.<remarks>... |
| a720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 73 | ...............///.This.is.the.s |
| a740 | 61 6d 65 20 61 73 20 3c 73 65 65 20 63 72 65 66 3d 22 64 65 76 69 63 65 22 2f 3e 20 69 66 20 74 | ame.as.<see.cref="device"/>.if.t |
| a760 | 68 65 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 2e | he.<see.cref="DeviceRequirement. |
| a780 | 63 6f 6e 74 72 6f 6c 50 61 74 68 22 3e 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 | controlPath">control............ |
| a7a0 | 20 20 20 20 20 20 2f 2f 2f 20 70 61 74 68 3c 2f 73 65 65 3e 20 6d 61 74 63 68 65 73 20 74 68 65 | ......///.path</see>.matches.the |
| a7c0 | 20 64 65 76 69 63 65 20 64 69 72 65 63 74 6c 79 20 72 61 74 68 65 72 20 74 68 61 6e 20 6d 61 74 | .device.directly.rather.than.mat |
| a7e0 | 63 68 69 6e 67 20 61 20 63 6f 6e 74 72 6f 6c 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a | ching.a.control.on.the.device... |
| a800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ................///............. |
| a820 | 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 77 68 69 6c 65 20 61 20 63 6f 6e 74 72 | .....///.Note.that.while.a.contr |
| a840 | 6f 6c 20 70 61 74 68 20 63 61 6e 20 6d 61 74 63 68 20 61 72 62 69 74 72 61 72 79 20 6d 61 6e 79 | ol.path.can.match.arbitrary.many |
| a860 | 20 63 6f 6e 74 72 6f 6c 73 2c 20 6f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 6d 61 74 63 68 65 | .controls,.only.the.first.matche |
| a880 | 64 20 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 | d.control..................///.w |
| a8a0 | 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 68 65 72 65 2e 20 54 6f 20 67 65 74 20 61 6c 6c | ill.be.returned.here..To.get.all |
| a8c0 | 20 63 6f 6e 74 72 6f 6c 73 20 74 68 61 74 20 77 65 72 65 20 6d 61 74 63 68 65 64 20 62 79 20 61 | .controls.that.were.matched.by.a |
| a8e0 | 20 73 70 65 63 69 66 69 63 20 72 65 71 75 69 72 65 6d 65 6e 74 2c 20 61 0d 0a 20 20 20 20 20 20 | .specific.requirement,.a........ |
| a900 | 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 6d 61 6e 75 61 6c 20 71 75 65 72 79 20 6d 75 73 74 20 | ..........///.manual.query.must. |
| a920 | 62 65 20 70 65 72 66 6f 72 6d 65 64 20 75 73 69 6e 67 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e | be.performed.using.<see.cref="In |
| a940 | 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | putControlPath"/>............... |
| a960 | 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 66 20 | ....///..................///.If. |
| a980 | 74 68 65 20 6d 61 74 63 68 20 66 61 69 6c 65 64 2c 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 6e | the.match.failed,.this.will.be.n |
| a9a0 | 75 6c 6c 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 | ull...................///.</rema |
| a9c0 | 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 | rks>..................public.Inp |
| a9e0 | 75 74 43 6f 6e 74 72 6f 6c 20 63 6f 6e 74 72 6f 6c 20 3d 3e 20 6d 5f 43 6f 6e 74 72 6f 6c 73 5b | utControl.control.=>.m_Controls[ |
| aa00 | 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 5d 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | m_RequirementIndex];............ |
| aa20 | 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 20 | ........///.<summary>........... |
| aa40 | 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 64 65 76 69 63 65 20 74 68 61 74 20 67 6f 74 20 6d | .......///.The.device.that.got.m |
| aa60 | 61 74 63 68 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 | atched...................///.</s |
| aa80 | 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 | ummary>..................///.<re |
| aaa0 | 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 66 20 61 | marks>..................///.If.a |
| aac0 | 20 73 70 65 63 69 66 69 63 20 63 6f 6e 74 72 6f 6c 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 20 | .specific.control.on.the.device. |
| aae0 | 77 61 73 20 6d 61 74 63 68 65 64 2c 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 3c 73 65 65 20 63 | was.matched,.this.will.be.<see.c |
| ab00 | 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 2e 64 65 76 69 63 65 22 2f 3e 20 6f 72 0d 0a | ref="InputControl.device"/>.or.. |
| ab20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d 22 63 | ................///.<see.cref="c |
| ab40 | 6f 6e 74 72 6f 6c 22 2f 3e 2e 20 49 66 20 61 20 64 65 76 69 63 65 20 77 61 73 20 6d 61 74 63 68 | ontrol"/>..If.a.device.was.match |
| ab60 | 65 64 20 64 69 72 65 63 74 6c 79 2c 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 74 68 65 20 73 61 | ed.directly,.this.will.be.the.sa |
| ab80 | 6d 65 20 61 73 20 3c 73 65 65 20 63 72 65 66 3d 22 63 6f 6e 74 72 6f 6c 22 2f 3e 2e 0d 0a 20 20 | me.as.<see.cref="control"/>..... |
| aba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 | ..............///.</remarks>.... |
| abc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 44 65 76 69 63 65 | ..............public.InputDevice |
| abe0 | 20 64 65 76 69 63 65 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 | .device..................{...... |
| ac00 | 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 20 | ................get............. |
| ac20 | 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 | .........{...................... |
| ac40 | 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c 20 3d 20 74 68 69 73 2e 63 6f 6e 74 72 6f 6c 3b 0d | ....var.control.=.this.control;. |
| ac60 | 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. |
| ac80 | 63 6f 6e 74 72 6f 6c 3f 2e 64 65 76 69 63 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | control?.device;................ |
| aca0 | 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 0d 0a 20 20 | ......}..................}...... |
| acc0 | 20 20 20 20 20 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 | ..............///.<summary>..... |
| ace0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 49 6e 64 65 78 20 6f 66 20 74 68 65 20 72 65 | .............///.Index.of.the.re |
| ad00 | 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e | quirement.in.<see.cref="InputCon |
| ad20 | 74 72 6f 6c 53 63 68 65 6d 65 2e 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 22 2f 3e | trolScheme.deviceRequirements"/> |
| ad40 | 2e 0d 0a 20 20 20 20 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 | ...................///.</summary |
| ad60 | 3e 0d 0a 20 20 20 20 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 | >..................public.int.re |
| ad80 | 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 20 3d 3e 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 | quirementIndex.=>.m_RequirementI |
| ada0 | 6e 64 65 78 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 | ndex;....................///.<su |
| adc0 | 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 | mmary>..................///.The. |
| ade0 | 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 68 61 74 20 67 6f 74 20 6d 61 74 63 | device.requirement.that.got.matc |
| ae00 | 68 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d | hed...................///.</summ |
| ae20 | 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 44 65 76 | ary>..................public.Dev |
| ae40 | 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 72 65 71 75 69 72 65 6d 65 6e 74 20 3d 3e 20 6d 5f | iceRequirement.requirement.=>.m_ |
| ae60 | 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 5d | Requirements[m_RequirementIndex] |
| ae80 | 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c | ;....................public.bool |
| aea0 | 20 69 73 4f 70 74 69 6f 6e 61 6c 20 3d 3e 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 69 73 4f 70 74 | .isOptional.=>.requirement.isOpt |
| aec0 | 69 6f 6e 61 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e | ional;....................intern |
| aee0 | 61 6c 20 69 6e 74 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 3b 0d 0a 20 20 20 20 | al.int.m_RequirementIndex;...... |
| af00 | 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 44 65 76 69 63 65 52 65 71 75 69 | ............internal.DeviceRequi |
| af20 | 72 65 6d 65 6e 74 5b 5d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 3b 0d 0a 20 20 20 20 20 20 | rement[].m_Requirements;........ |
| af40 | 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c | ..........internal.InputControlL |
| af60 | 69 73 74 3c 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 3e 20 6d 5f 43 6f 6e 74 72 6f 6c 73 3b 0d 0a 20 | ist<InputControl>.m_Controls;... |
| af80 | 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 72 69 76 | ...........}................priv |
| afa0 | 61 74 65 20 73 74 72 75 63 74 20 45 6e 75 6d 65 72 61 74 6f 72 20 3a 20 49 45 6e 75 6d 65 72 61 | ate.struct.Enumerator.:.IEnumera |
| afc0 | 74 6f 72 3c 4d 61 74 63 68 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 | tor<Match>..............{....... |
| afe0 | 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 4d 6f 76 65 4e 65 78 74 28 | ...........public.bool.MoveNext( |
| b000 | 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 | )..................{............ |
| b020 | 20 20 20 20 20 20 20 20 20 20 2b 2b 6d 5f 49 6e 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..........++m_Index;............ |
| b040 | 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 20 | ..........return.m_Requirements. |
| b060 | 21 3d 20 6e 75 6c 6c 20 26 26 20 6d 5f 49 6e 64 65 78 20 3c 20 6d 5f 52 65 71 75 69 72 65 6d 65 | !=.null.&&.m_Index.<.m_Requireme |
| b080 | 6e 74 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a | nts.Length;..................}.. |
| b0a0 | 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 6f 69 64 20 52 65 | ..................public.void.Re |
| b0c0 | 73 65 74 28 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 | set()..................{........ |
| b0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 49 6e 64 65 78 20 3d 20 2d 31 3b 0d 0a 20 20 20 | ..............m_Index.=.-1;..... |
| b100 | 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 | .............}.................. |
| b120 | 20 20 70 75 62 6c 69 63 20 4d 61 74 63 68 20 43 75 72 72 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 | ..public.Match.Current.......... |
| b140 | 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 67 | ........{......................g |
| b160 | 65 74 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 20 | et......................{....... |
| b180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 52 65 71 75 69 72 65 | ...................if.(m_Require |
| b1a0 | 6d 65 6e 74 73 20 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 6d 5f 49 6e 64 65 78 20 3c 20 30 20 7c 7c 20 | ments.==.null.||.m_Index.<.0.||. |
| b1c0 | 6d 5f 49 6e 64 65 78 20 3e 3d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 | m_Index.>=.m_Requirements.Length |
| b1e0 | 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 20 74 | )..............................t |
| b200 | 68 72 6f 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 | hrow.new.InvalidOperationExcepti |
| b220 | 6f 6e 28 22 45 6e 75 6d 65 72 61 74 6f 72 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 3b 0d 0a | on("Enumerator.is.not.valid");.. |
| b240 | 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 6e | ..........................return |
| b260 | 20 6e 65 77 20 4d 61 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .new.Match...................... |
| b280 | 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 20 | ....{........................... |
| b2a0 | 20 20 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 49 6e 64 65 78 20 3d 20 6d 5f 49 6e 64 65 78 2c | ...m_RequirementIndex.=.m_Index, |
| b2c0 | 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 6d 5f | ..............................m_ |
| b2e0 | 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6d 5f 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a | Requirements.=.m_Requirements,.. |
| b300 | 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 6d 5f 43 6f | ............................m_Co |
| b320 | 6e 74 72 6f 6c 73 20 3d 20 6d 5f 43 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | ntrols.=.m_Controls,............ |
| b340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............};................ |
| b360 | 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 0d 0a 20 20 | ......}..................}...... |
| b380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 49 45 6e 75 6d 65 72 61 74 6f 72 | ..............object.IEnumerator |
| b3a0 | 2e 43 75 72 72 65 6e 74 20 3d 3e 20 43 75 72 72 65 6e 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 | .Current.=>.Current;............ |
| b3c0 | 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 6f 69 64 20 44 69 73 70 6f 73 65 28 29 0d 0a 20 | ........public.void.Dispose()... |
| b3e0 | 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 | ...............{................ |
| b400 | 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 | ..}....................internal. |
| b420 | 69 6e 74 20 6d 5f 49 6e 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | int.m_Index;..................in |
| b440 | 74 65 72 6e 61 6c 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 5b 5d 20 6d 5f 52 65 71 | ternal.DeviceRequirement[].m_Req |
| b460 | 75 69 72 65 6d 65 6e 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 | uirements;..................inte |
| b480 | 72 6e 61 6c 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 69 73 74 3c 49 6e 70 75 74 43 6f 6e 74 72 | rnal.InputControlList<InputContr |
| b4a0 | 6f 6c 3e 20 6d 5f 43 6f 6e 74 72 6f 6c 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a | ol>.m_Controls;..............}.. |
| b4c0 | 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 73 75 6d 6d 61 72 | ........}............///.<summar |
| b4e0 | 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 | y>..........///..........///.</s |
| b500 | 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 6b 73 3e 0d 0a | ummary>..........///.<remarks>.. |
| b520 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 64 65 76 69 63 65 20 72 65 71 | ........///.Note.that.device.req |
| b540 | 75 69 72 65 6d 65 6e 74 73 20 6d 61 79 20 72 65 71 75 69 72 65 20 73 70 65 63 69 66 69 63 20 63 | uirements.may.require.specific.c |
| b560 | 6f 6e 74 72 6f 6c 73 20 74 6f 20 62 65 20 70 72 65 73 65 6e 74 20 72 61 74 68 65 72 20 74 68 61 | ontrols.to.be.present.rather.tha |
| b580 | 6e 20 6f 6e 6c 79 20 72 65 71 75 69 72 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 | n.only.requiring..........///.th |
| b5a0 | 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 63 65 72 74 61 69 6e 20 74 79 70 65 20 6f 66 20 | e.presence.of.a.certain.type.of. |
| b5c0 | 64 65 76 69 63 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 20 72 65 71 75 69 72 65 6d 65 | device..For.example,.a.requireme |
| b5e0 | 6e 74 20 77 69 74 68 20 61 20 3c 73 65 65 20 63 72 65 66 3d 22 63 6f 6e 74 72 6f 6c 50 61 74 68 | nt.with.a.<see.cref="controlPath |
| b600 | 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6f 66 20 22 2a 2f 7b 50 72 69 6d 61 72 79 41 | "/>..........///.of."*/{PrimaryA |
| b620 | 63 74 69 6f 6e 7d 22 20 77 69 6c 6c 20 62 65 20 73 61 74 69 73 66 69 65 64 20 62 79 20 61 6e 79 | ction}".will.be.satisfied.by.any |
| b640 | 20 64 65 76 69 63 65 20 74 68 61 74 20 68 61 73 20 61 20 63 6f 6e 74 72 6f 6c 20 6d 61 72 6b 65 | .device.that.has.a.control.marke |
| b660 | 64 20 61 73 20 3c 73 65 65 20 63 72 65 66 3d 22 43 6f 6d 6d 6f 6e 55 73 61 67 65 73 2e 50 72 69 | d.as.<see.cref="CommonUsages.Pri |
| b680 | 6d 61 72 79 41 63 74 69 6f 6e 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 | maryAction"/>...........///..... |
| b6a0 | 20 20 20 20 20 2f 2f 2f 20 52 65 71 75 69 72 65 6d 65 6e 74 73 20 61 72 65 20 6f 72 64 65 72 65 | .....///.Requirements.are.ordere |
| b6c0 | 64 20 69 6e 20 61 20 6c 69 73 74 20 61 6e 64 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 77 69 74 68 | d.in.a.list.and.can.combine.with |
| b6e0 | 20 74 68 65 69 72 20 70 72 65 76 69 6f 75 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 65 | .their.previous.requirement.in.e |
| b700 | 69 74 68 65 72 20 3c 73 65 65 20 63 72 65 66 3d 22 69 73 41 4e 44 22 3e 0d 0a 20 20 20 20 20 20 | ither.<see.cref="isAND">........ |
| b720 | 20 20 2f 2f 2f 20 41 4e 44 3c 2f 73 65 65 3e 20 6f 72 20 69 6e 20 3c 73 65 65 20 63 72 65 66 3d | ..///.AND</see>.or.in.<see.cref= |
| b740 | 22 69 73 4f 52 22 3e 4f 52 3c 2f 73 65 65 3e 20 66 61 73 68 69 6f 6e 2e 20 54 68 65 20 64 65 66 | "isOR">OR</see>.fashion..The.def |
| b760 | 61 75 6c 74 20 69 73 20 66 6f 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 74 6f 20 63 6f 6d 62 | ault.is.for.requirements.to.comb |
| b780 | 69 6e 65 20 77 69 74 68 20 41 4e 44 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 | ine.with.AND...........///...... |
| b7a0 | 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 69 74 20 69 73 20 6e 6f 74 20 70 6f 73 73 | ....///.Note.that.it.is.not.poss |
| b7c0 | 69 62 6c 65 20 74 6f 20 65 78 70 72 65 73 73 20 6e 65 73 74 65 64 20 63 6f 6e 73 74 72 61 69 6e | ible.to.express.nested.constrain |
| b7e0 | 74 73 20 6c 69 6b 65 20 3c 63 3e 28 61 20 41 4e 44 20 62 29 20 4f 52 20 28 63 20 41 4e 44 20 64 | ts.like.<c>(a.AND.b).OR.(c.AND.d |
| b800 | 29 3c 2f 63 3e 2e 20 41 6c 73 6f 20 6e 6f 74 65 20 74 68 61 74 0d 0a 20 20 20 20 20 20 20 20 2f | )</c>..Also.note.that........../ |
| b820 | 2f 2f 20 6f 70 65 72 61 74 6f 72 20 70 72 65 63 65 64 65 6e 63 65 20 69 73 20 74 68 65 20 6f 70 | //.operator.precedence.is.the.op |
| b840 | 70 6f 73 69 74 65 20 6f 66 20 43 23 2c 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 4f 52 20 68 61 | posite.of.C#,.meaning.that.OR.ha |
| b860 | 73 20 2a 68 69 67 68 65 72 2a 20 70 72 65 63 65 64 65 6e 63 65 20 74 68 61 6e 20 41 4e 44 2e 20 | s.*higher*.precedence.than.AND.. |
| b880 | 54 68 69 73 20 6d 65 61 6e 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 61 74 20 3c 63 3e | This.means..........///.that.<c> |
| b8a0 | 61 20 4f 52 20 62 20 41 4e 44 20 63 20 4f 52 20 64 3c 2f 63 3e 20 72 65 61 64 73 20 61 73 20 3c | a.OR.b.AND.c.OR.d</c>.reads.as.< |
| b8c0 | 63 3e 28 61 20 4f 52 20 62 29 20 41 4e 44 20 28 63 20 4f 52 20 64 29 3c 2f 63 3e 20 28 69 6e 20 | c>(a.OR.b).AND.(c.OR.d)</c>.(in. |
| b8e0 | 43 23 20 69 74 20 77 6f 75 6c 64 20 72 65 61 64 20 61 73 20 3c 63 3e 61 20 4f 52 0d 0a 20 20 20 | C#.it.would.read.as.<c>a.OR..... |
| b900 | 20 20 20 20 20 2f 2f 2f 20 28 62 20 41 4e 44 20 63 29 20 4f 52 20 64 3c 2f 63 3e 2e 0d 0a 20 20 | .....///.(b.AND.c).OR.d</c>..... |
| b920 | 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4d 6f 72 65 20 63 6f 6d 70 | ......///..........///.More.comp |
| b940 | 6c 65 78 20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 6f 66 74 65 6e 20 62 65 20 65 78 70 | lex.expressions.can.often.be.exp |
| b960 | 72 65 73 73 65 64 20 64 69 66 66 65 72 65 6e 74 6c 79 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c | ressed.differently..For.example, |
| b980 | 20 3c 63 3e 28 61 20 41 4e 44 20 62 29 20 4f 52 20 28 63 20 41 4e 44 20 64 29 3c 2f 63 3e 0d 0a | .<c>(a.AND.b).OR.(c.AND.d)</c>.. |
| b9a0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 61 6e 20 62 65 20 65 78 70 72 65 73 73 65 64 20 61 73 20 | ........///.can.be.expressed.as. |
| b9c0 | 3c 63 3e 61 20 4f 52 20 63 20 41 4e 44 20 62 20 4f 52 20 64 3c 2f 63 3e 2e 0d 0a 20 20 20 20 20 | <c>a.OR.c.AND.b.OR.d</c>........ |
| b9e0 | 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 5b 53 65 72 69 | ...///.</remarks>..........[Seri |
| ba00 | 61 6c 69 7a 61 62 6c 65 5d 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 | alizable]..........public.struct |
| ba20 | 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 3a 20 49 45 71 75 61 74 61 62 6c 65 3c | .DeviceRequirement.:.IEquatable< |
| ba40 | 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 3e 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 | DeviceRequirement>..........{... |
| ba60 | 20 20 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 | ...........///.<summary>........ |
| ba80 | 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f | ......///.<see.cref="InputContro |
| baa0 | 6c 50 61 74 68 22 3e 43 6f 6e 74 72 6f 6c 20 70 61 74 68 3c 2f 73 65 65 3e 20 74 68 61 74 20 69 | lPath">Control.path</see>.that.i |
| bac0 | 73 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e 73 74 20 61 20 64 65 76 69 63 65 20 74 6f 20 64 65 | s.matched.against.a.device.to.de |
| bae0 | 74 65 72 6d 69 6e 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 68 65 74 68 65 72 | termine..............///.whether |
| bb00 | 20 69 74 20 71 75 61 6c 69 66 69 65 73 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 | .it.qualifies.for.the.control.sc |
| bb20 | 68 65 6d 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 | heme...............///.</summary |
| bb40 | 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 | >..............///.<remarks>.... |
| bb60 | 20 20 20 20 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 | ..........///.</remarks>........ |
| bb80 | 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ......///.<example>............. |
| bba0 | 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 | .///.<code>..............///.//. |
| bbc0 | 41 20 6c 65 66 74 2d 68 61 6e 64 20 58 52 20 63 6f 6e 74 72 6f 6c 6c 65 72 2e 0d 0a 20 20 20 20 | A.left-hand.XR.controller....... |
| bbe0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 22 26 6c 74 3b 58 52 43 6f 6e 74 72 6f 6c 6c 65 72 26 67 74 | ........///."<XRController> |
| bc00 | 3b 7b 4c 65 66 74 48 61 6e 64 7d 22 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 | ;{LeftHand}"..............///... |
| bc20 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 41 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 | ...........///.//.A.gamepad..... |
| bc40 | 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 22 0d | ..........///."<Gamepad>". |
| bc60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 | .............///.</code>........ |
| bc80 | 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 | ......///.</example>............ |
| bca0 | 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 50 61 74 68 0d 0a 20 20 20 | ..public.string.controlPath..... |
| bcc0 | 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 67 65 74 20 | .........{..................get. |
| bce0 | 3d 3e 20 6d 5f 43 6f 6e 74 72 6f 6c 50 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | =>.m_ControlPath;............... |
| bd00 | 20 20 20 73 65 74 20 3d 3e 20 6d 5f 43 6f 6e 74 72 6f 6c 50 61 74 68 20 3d 20 76 61 6c 75 65 3b | ...set.=>.m_ControlPath.=.value; |
| bd20 | 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 2f | ..............}................/ |
| bd40 | 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 20 49 66 | //.<summary>..............///.If |
| bd60 | 20 74 72 75 65 2c 20 61 20 64 65 76 69 63 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 3c | .true,.a.device.with.the.given.< |
| bd80 | 73 65 65 20 63 72 65 66 3d 22 63 6f 6e 74 72 6f 6c 50 61 74 68 22 3e 64 65 76 69 63 65 20 70 61 | see.cref="controlPath">device.pa |
| bda0 | 74 68 3c 2f 73 65 65 3e 20 69 73 20 65 6d 70 6c 6f 79 65 64 20 62 79 20 74 68 65 0d 0a 20 20 20 | th</see>.is.employed.by.the..... |
| bdc0 | 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 69 66 20 6f | .........///.control.scheme.if.o |
| bde0 | 6e 65 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2e 20 49 66 20 6e 6f 6e 65 20 69 73 20 61 76 61 69 | ne.is.available..If.none.is.avai |
| be00 | 6c 61 62 6c 65 2c 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 69 73 20 73 74 69 | lable,.the.control.scheme.is.sti |
| be20 | 6c 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 75 6e 63 74 69 6f 6e 61 6c 2e 0d | ll..............///.functional.. |
| be40 | 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 20 20 20 | .............///.</summary>..... |
| be60 | 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 69 73 4f 70 74 69 6f 6e 61 6c 0d | .........public.bool.isOptional. |
| be80 | 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 20 | .............{.................. |
| bea0 | 67 65 74 20 3d 3e 20 28 6d 5f 46 6c 61 67 73 20 26 20 46 6c 61 67 73 2e 4f 70 74 69 6f 6e 61 6c | get.=>.(m_Flags.&.Flags.Optional |
| bec0 | 29 20 21 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 0d 0a 20 20 | ).!=.0;..................set.... |
| bee0 | 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 20 | ..............{................. |
| bf00 | 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....if.(value)................. |
| bf20 | 20 20 20 20 20 20 20 20 20 6d 5f 46 6c 61 67 73 20 7c 3d 20 46 6c 61 67 73 2e 4f 70 74 69 6f 6e | .........m_Flags.|=.Flags.Option |
| bf40 | 61 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 | al;......................else... |
| bf60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 6c 61 67 73 20 26 | .......................m_Flags.& |
| bf80 | 3d 20 7e 46 6c 61 67 73 2e 4f 70 74 69 6f 6e 61 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | =.~Flags.Optional;.............. |
| bfa0 | 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 | ....}..............}............ |
| bfc0 | 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 20 20 2f | ....///.<summary>............../ |
| bfe0 | 2f 2f 20 57 68 65 74 68 65 72 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 63 6f 6d 62 69 | //.Whether.the.requirement.combi |
| c000 | 6e 65 73 20 77 69 74 68 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 71 75 69 72 65 6d 65 6e | nes.with.the.previous.requiremen |
| c020 | 74 20 28 69 66 20 61 6e 79 29 20 61 73 20 61 20 62 6f 6f 6c 65 61 6e 20 41 4e 44 2e 0d 0a 20 20 | t.(if.any).as.a.boolean.AND..... |
| c040 | 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 20 20 20 20 20 20 | ..........///.</summary>........ |
| c060 | 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | ......///.<remarks>............. |
| c080 | 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 20 46 6f 72 20 65 78 | .///.This.is.the.default..For.ex |
| c0a0 | 61 6d 70 6c 65 2c 20 74 6f 20 72 65 71 75 69 72 65 20 62 6f 74 68 20 61 20 6c 65 66 74 20 68 61 | ample,.to.require.both.a.left.ha |
| c0c0 | 6e 64 20 61 6e 64 20 61 20 72 69 67 68 74 20 58 52 20 63 6f 6e 74 72 6f 6c 6c 65 72 2c 0d 0a 20 | nd.and.a.right.XR.controller,... |
| c0e0 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 65 20 66 69 72 73 74 20 72 65 71 75 69 72 65 | ...........///.the.first.require |
| c100 | 6d 65 6e 74 20 77 6f 75 6c 64 20 62 65 20 66 6f 72 20 22 26 6c 74 3b 58 52 43 6f 6e 74 72 6f 6c | ment.would.be.for."<XRControl |
| c120 | 6c 65 72 26 67 74 3b 7b 4c 65 66 74 48 61 6e 64 7d 22 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e | ler>{LeftHand}".and.the.secon |
| c140 | 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 72 65 71 75 69 72 65 6d 65 6e 74 20 77 | d..............///.requirement.w |
| c160 | 6f 75 6c 64 20 62 65 20 66 6f 72 20 22 26 67 74 3b 58 52 43 6f 6e 74 72 6f 6c 6c 65 72 26 67 74 | ould.be.for.">XRController> |
| c180 | 3b 7b 52 69 67 68 74 48 61 6e 64 7d 22 20 61 6e 64 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 74 | ;{RightHand}".and.would.return.t |
| c1a0 | 72 75 65 20 66 6f 72 20 74 68 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 70 72 | rue.for.this..............///.pr |
| c1c0 | 6f 70 65 72 74 79 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 | operty...............///.</remar |
| c1e0 | 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 | ks>..............///.<seealso.cr |
| c200 | 65 66 3d 22 69 73 4f 52 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 | ef="isOR"/>..............public. |
| c220 | 62 6f 6f 6c 20 69 73 41 4e 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 | bool.isAND..............{....... |
| c240 | 20 20 20 20 20 20 20 20 20 20 20 67 65 74 20 3d 3e 20 21 69 73 4f 52 3b 0d 0a 20 20 20 20 20 20 | ...........get.=>.!isOR;........ |
| c260 | 20 20 20 20 20 20 20 20 20 20 73 65 74 20 3d 3e 20 69 73 4f 52 20 3d 20 21 76 61 6c 75 65 3b 0d | ..........set.=>.isOR.=.!value;. |
| c280 | 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 2f 2f | .............}................// |
| c2a0 | 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 20 57 68 65 | /.<summary>..............///.Whe |
| c2c0 | 74 68 65 72 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 63 6f 6d 62 69 6e 65 73 20 77 69 | ther.the.requirement.combines.wi |
| c2e0 | 74 68 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 28 69 66 20 | th.the.previous.requirement.(if. |
| c300 | 61 6e 79 29 20 61 73 20 61 20 62 6f 6f 6c 65 61 6e 20 4f 52 2e 0d 0a 20 20 20 20 20 20 20 20 20 | any).as.a.boolean.OR............ |
| c320 | 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 20 20 20 20 2f | ...///.</summary>............../ |
| c340 | 2f 2f 20 3c 72 65 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 68 | //.<remarks>..............///.Th |
| c360 | 69 73 20 61 6c 6c 6f 77 73 20 64 65 73 69 67 6e 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 | is.allows.designing.control.sche |
| c380 | 6d 65 73 20 74 68 61 74 20 66 6c 65 78 69 62 6c 79 20 77 6f 72 6b 20 77 69 74 68 20 63 6f 6d 62 | mes.that.flexibly.work.with.comb |
| c3a0 | 69 6e 61 74 69 6f 6e 73 20 6f 66 20 64 65 76 69 63 65 73 20 73 75 63 68 20 74 68 61 74 0d 0a 20 | inations.of.devices.such.that... |
| c3c0 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 66 20 6f 6e 65 20 73 70 65 63 69 66 69 63 20 64 | ...........///.if.one.specific.d |
| c3e0 | 65 76 69 63 65 20 69 73 6e 27 74 20 70 72 65 73 65 6e 74 2c 20 61 6e 6f 74 68 65 72 20 64 65 76 | evice.isn't.present,.another.dev |
| c400 | 69 63 65 20 63 61 6e 20 73 75 62 73 74 69 74 75 74 65 20 66 6f 72 20 69 74 2e 0d 0a 20 20 20 20 | ice.can.substitute.for.it....... |
| c420 | 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 46 6f 72 | ........///..............///.For |
| c440 | 20 65 78 61 6d 70 6c 65 2c 20 74 6f 20 64 65 73 69 67 6e 20 61 20 6d 6f 75 73 65 2b 6b 65 79 62 | .example,.to.design.a.mouse+keyb |
| c460 | 6f 61 72 64 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 20 74 68 61 74 20 63 61 6e 20 61 6c 74 | oard.control.scheme.that.can.alt |
| c480 | 65 72 6e 61 74 69 76 65 6c 79 20 77 6f 72 6b 20 77 69 74 68 20 61 20 70 65 6e 0d 0a 20 20 20 20 | ernatively.work.with.a.pen...... |
| c4a0 | 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 6d 6f 75 73 65 2c 20 | ........///.instead.of.a.mouse,. |
| c4c0 | 74 68 65 20 66 69 72 73 74 20 72 65 71 75 69 72 65 6d 65 6e 74 20 63 6f 75 6c 64 20 62 65 20 66 | the.first.requirement.could.be.f |
| c4e0 | 6f 72 20 22 26 6c 74 3b 4b 65 79 62 6f 61 72 64 26 67 74 3b 22 2c 20 74 68 65 20 73 65 63 6f 6e | or."<Keyboard>",.the.secon |
| c500 | 64 20 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 75 6c 64 20 62 65 20 | d.one..............///.could.be. |
| c520 | 66 6f 72 20 22 26 6c 74 3b 4d 6f 75 73 65 26 67 74 3b 22 20 61 6e 64 20 74 68 65 20 74 68 69 72 | for."<Mouse>".and.the.thir |
| c540 | 64 20 6f 6e 65 20 63 6f 75 6c 64 20 62 65 20 66 6f 72 20 22 26 6c 74 3b 50 65 6e 26 67 74 3b 22 | d.one.could.be.for."<Pen>" |
| c560 | 20 61 6e 64 20 72 65 74 75 72 6e 20 74 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | .and.return.true..............// |
| c580 | 2f 20 66 6f 72 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 2e 20 42 6f 74 68 20 74 68 65 20 6d 6f | /.for.this.property..Both.the.mo |
| c5a0 | 75 73 65 20 61 6e 64 20 74 68 65 20 70 65 6e 20 77 6f 75 6c 64 20 62 65 20 6d 61 72 6b 65 64 20 | use.and.the.pen.would.be.marked. |
| c5c0 | 61 73 20 72 65 71 75 69 72 65 64 20 28 69 2e 65 2e 20 6e 6f 74 20 3c 73 65 65 20 63 72 65 66 3d | as.required.(i.e..not.<see.cref= |
| c5e0 | 22 69 73 4f 70 74 69 6f 6e 61 6c 22 2f 3e 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f | "isOptional"/>)............../// |
| c600 | 20 62 75 74 20 74 68 65 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 72 65 | .but.the.device.requirements.are |
| c620 | 20 73 61 74 69 73 66 69 65 64 20 65 76 65 6e 20 69 66 20 65 69 74 68 65 72 20 64 65 76 69 63 65 | .satisfied.even.if.either.device |
| c640 | 20 69 73 20 70 72 65 73 65 6e 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 | .is.present...............///... |
| c660 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 62 6f 74 68 | ...........///.Note.that.if.both |
| c680 | 20 61 20 70 65 6e 20 61 6e 64 20 61 20 6d 6f 75 73 65 20 61 72 65 20 70 72 65 73 65 6e 74 20 61 | .a.pen.and.a.mouse.are.present.a |
| c6a0 | 74 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2c 20 73 74 69 6c 6c 20 6f 6e 6c 79 20 6f 6e 65 20 | t.the.same.time,.still.only.one. |
| c6c0 | 64 65 76 69 63 65 20 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2f 20 70 69 63 6b 65 | device.is..............///.picke |
| c6e0 | 64 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 74 68 65 20 6d 6f 75 73 65 20 22 77 69 6e 73 | d..In.this.case,.the.mouse."wins |
| c700 | 22 20 61 73 20 69 74 20 63 6f 6d 65 73 20 66 69 72 73 74 20 69 6e 20 74 68 65 20 6c 69 73 74 20 | ".as.it.comes.first.in.the.list. |
| c720 | 6f 66 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | of.requirements...............// |
| c740 | 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 62 6c 69 63 | /.</remarks>..............public |
| c760 | 20 62 6f 6f 6c 20 69 73 4f 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 | .bool.isOR..............{....... |
| c780 | 20 20 20 20 20 20 20 20 20 20 20 67 65 74 20 3d 3e 20 28 6d 5f 46 6c 61 67 73 20 26 20 46 6c 61 | ...........get.=>.(m_Flags.&.Fla |
| c7a0 | 67 73 2e 4f 72 29 20 21 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 | gs.Or).!=.0;..................se |
| c7c0 | 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 20 20 20 20 20 20 | t..................{............ |
| c7e0 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 | ..........if.(value)............ |
| c800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 6c 61 67 73 20 7c 3d 20 46 6c 61 67 73 2e 4f | ..............m_Flags.|=.Flags.O |
| c820 | 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 | r;......................else.... |
| c840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 6c 61 67 73 20 26 3d | ......................m_Flags.&= |
| c860 | 20 7e 46 6c 61 67 73 2e 4f 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a | .~Flags.Or;..................}.. |
| c880 | 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 5b 53 65 | ............}................[Se |
| c8a0 | 72 69 61 6c 69 7a 65 46 69 65 6c 64 5d 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f | rializeField].internal.string.m_ |
| c8c0 | 43 6f 6e 74 72 6f 6c 50 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 | ControlPath;..............[Seria |
| c8e0 | 6c 69 7a 65 46 69 65 6c 64 5d 20 69 6e 74 65 72 6e 61 6c 20 46 6c 61 67 73 20 6d 5f 46 6c 61 67 | lizeField].internal.Flags.m_Flag |
| c900 | 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5b 46 6c 61 67 73 5d 0d 0a 20 20 20 20 20 | s;................[Flags]....... |
| c920 | 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 65 6e 75 6d 20 46 6c 61 67 73 0d 0a 20 20 20 20 | .......internal.enum.Flags...... |
| c940 | 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 4e 6f 6e 65 20 | ........{..................None. |
| c960 | 3d 20 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 70 74 69 6f 6e 61 6c 20 3d | =.0,..................Optional.= |
| c980 | 20 31 20 3c 3c 20 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 72 20 3d 20 31 | .1.<<.0,..................Or.=.1 |
| c9a0 | 20 3c 3c 20 31 2c 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 | .<<.1,..............}........... |
| c9c0 | 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 73 74 72 69 6e 67 20 54 6f 53 74 | .....public.override.string.ToSt |
| c9e0 | 72 69 6e 67 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 | ring()..............{........... |
| ca00 | 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 74 79 | .......if.(!string.IsNullOrEmpty |
| ca20 | 28 63 6f 6e 74 72 6f 6c 50 61 74 68 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (controlPath)).................. |
| ca40 | 7b 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 69 73 4f 70 74 | {......................if.(isOpt |
| ca60 | 69 6f 6e 61 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 | ional).......................... |
| ca80 | 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 50 61 74 68 20 2b 20 22 20 28 4f 70 74 69 6f 6e 61 6c | return.controlPath.+.".(Optional |
| caa0 | 29 22 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 74 75 72 6e 20 | )";......................return. |
| cac0 | 63 6f 6e 74 72 6f 6c 50 61 74 68 20 2b 20 22 20 28 52 65 71 75 69 72 65 64 29 22 3b 0d 0a 20 20 | controlPath.+.".(Required)";.... |
| cae0 | 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 20 20 20 | ..............}................. |
| cb00 | 20 20 20 72 65 74 75 72 6e 20 62 61 73 65 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 | ...return.base.ToString();...... |
| cb20 | 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 63 20 | ........}................public. |
| cb40 | 62 6f 6f 6c 20 45 71 75 61 6c 73 28 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 6f 74 | bool.Equals(DeviceRequirement.ot |
| cb60 | 68 65 72 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 | her)..............{............. |
| cb80 | 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 69 6e 67 2e 45 71 75 61 6c 73 28 6d 5f 43 6f 6e 74 | .....return.string.Equals(m_Cont |
| cba0 | 72 6f 6c 50 61 74 68 2c 20 6f 74 68 65 72 2e 6d 5f 43 6f 6e 74 72 6f 6c 50 61 74 68 29 20 26 26 | rolPath,.other.m_ControlPath).&& |
| cbc0 | 20 6d 5f 46 6c 61 67 73 20 3d 3d 20 6f 74 68 65 72 2e 6d 5f 46 6c 61 67 73 20 26 26 0d 0a 20 20 | .m_Flags.==.other.m_Flags.&&.... |
| cbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 2e 45 71 75 61 6c 73 28 | ..................string.Equals( |
| cc00 | 63 6f 6e 74 72 6f 6c 50 61 74 68 2c 20 6f 74 68 65 72 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 29 20 | controlPath,.other.controlPath). |
| cc20 | 26 26 20 69 73 4f 70 74 69 6f 6e 61 6c 20 3d 3d 20 6f 74 68 65 72 2e 69 73 4f 70 74 69 6f 6e 61 | &&.isOptional.==.other.isOptiona |
| cc40 | 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 20 20 20 20 | l;..............}............... |
| cc60 | 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 62 6f 6f 6c 20 45 71 75 61 6c 73 28 6f 62 6a | .public.override.bool.Equals(obj |
| cc80 | 65 63 74 20 6f 62 6a 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 | ect.obj)..............{......... |
| cca0 | 20 20 20 20 20 20 20 20 20 69 66 20 28 52 65 66 65 72 65 6e 63 65 45 71 75 61 6c 73 28 6e 75 6c | .........if.(ReferenceEquals(nul |
| ccc0 | 6c 2c 20 6f 62 6a 29 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 | l,.obj))......................re |
| cce0 | 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | turn.false;....................r |
| cd00 | 65 74 75 72 6e 20 6f 62 6a 20 69 73 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 26 | eturn.obj.is.DeviceRequirement.& |
| cd20 | 26 20 45 71 75 61 6c 73 28 28 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 29 6f 62 6a 29 | &.Equals((DeviceRequirement)obj) |
| cd40 | 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 20 | ;..............}................ |
| cd60 | 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 69 6e 74 20 47 65 74 48 61 73 68 43 6f 64 65 28 | public.override.int.GetHashCode( |
| cd80 | 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 | )..............{................ |
| cda0 | 20 20 75 6e 63 68 65 63 6b 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | ..unchecked..................{.. |
| cdc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 73 68 43 6f 64 65 | ....................var.hashCode |
| cde0 | 20 3d 20 28 6d 5f 43 6f 6e 74 72 6f 6c 50 61 74 68 20 21 3d 20 6e 75 6c 6c 20 3f 20 6d 5f 43 6f | .=.(m_ControlPath.!=.null.?.m_Co |
| ce00 | 6e 74 72 6f 6c 50 61 74 68 2e 47 65 74 48 61 73 68 43 6f 64 65 28 29 20 3a 20 30 29 3b 0d 0a 20 | ntrolPath.GetHashCode().:.0);... |
| ce20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 73 68 43 6f 64 65 20 3d 20 28 68 | ...................hashCode.=.(h |
| ce40 | 61 73 68 43 6f 64 65 20 2a 20 33 39 37 29 20 5e 20 6d 5f 46 6c 61 67 73 2e 47 65 74 48 61 73 68 | ashCode.*.397).^.m_Flags.GetHash |
| ce60 | 43 6f 64 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 68 61 73 | Code();......................has |
| ce80 | 68 43 6f 64 65 20 3d 20 28 68 61 73 68 43 6f 64 65 20 2a 20 33 39 37 29 20 5e 20 28 63 6f 6e 74 | hCode.=.(hashCode.*.397).^.(cont |
| cea0 | 72 6f 6c 50 61 74 68 20 21 3d 20 6e 75 6c 6c 20 3f 20 63 6f 6e 74 72 6f 6c 50 61 74 68 2e 47 65 | rolPath.!=.null.?.controlPath.Ge |
| cec0 | 74 48 61 73 68 43 6f 64 65 28 29 20 3a 20 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tHashCode().:.0);............... |
| cee0 | 20 20 20 20 20 20 20 68 61 73 68 43 6f 64 65 20 3d 20 28 68 61 73 68 43 6f 64 65 20 2a 20 33 39 | .......hashCode.=.(hashCode.*.39 |
| cf00 | 37 29 20 5e 20 69 73 4f 70 74 69 6f 6e 61 6c 2e 47 65 74 48 61 73 68 43 6f 64 65 28 29 3b 0d 0a | 7).^.isOptional.GetHashCode();.. |
| cf20 | 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 68 61 73 68 43 | ....................return.hashC |
| cf40 | 6f 64 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 | ode;..................}......... |
| cf60 | 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 63 20 73 74 61 | .....}................public.sta |
| cf80 | 74 69 63 20 62 6f 6f 6c 20 6f 70 65 72 61 74 6f 72 3d 3d 28 44 65 76 69 63 65 52 65 71 75 69 72 | tic.bool.operator==(DeviceRequir |
| cfa0 | 65 6d 65 6e 74 20 6c 65 66 74 2c 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 72 69 | ement.left,.DeviceRequirement.ri |
| cfc0 | 67 68 74 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 | ght)..............{............. |
| cfe0 | 20 20 20 20 20 72 65 74 75 72 6e 20 6c 65 66 74 2e 45 71 75 61 6c 73 28 72 69 67 68 74 29 3b 0d | .....return.left.Equals(right);. |
| d000 | 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 75 | .............}................pu |
| d020 | 62 6c 69 63 20 73 74 61 74 69 63 20 62 6f 6f 6c 20 6f 70 65 72 61 74 6f 72 21 3d 28 44 65 76 69 | blic.static.bool.operator!=(Devi |
| d040 | 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 6c 65 66 74 2c 20 44 65 76 69 63 65 52 65 71 75 69 72 | ceRequirement.left,.DeviceRequir |
| d060 | 65 6d 65 6e 74 20 72 69 67 68 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 | ement.right)..............{..... |
| d080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 21 6c 65 66 74 2e 45 71 75 61 6c 73 | .............return.!left.Equals |
| d0a0 | 28 72 69 67 68 74 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 20 | (right);..............}......... |
| d0c0 | 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 20 20 20 | .}............///.<summary>..... |
| d0e0 | 20 20 20 20 20 2f 2f 2f 20 4a 53 4f 4e 2d 73 65 72 69 61 6c 69 7a 65 64 20 66 6f 72 6d 20 6f 66 | .....///.JSON-serialized.form.of |
| d100 | 20 61 20 63 6f 6e 74 72 6f 6c 20 73 63 68 65 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 | .a.control.scheme...........///. |
| d120 | 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 62 6c | </summary>..........[Serializabl |
| d140 | 65 5d 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 75 63 74 20 53 63 68 65 | e]..........internal.struct.Sche |
| d160 | 6d 65 4a 73 6f 6e 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 | meJson..........{..............p |
| d180 | 75 62 6c 69 63 20 73 74 72 69 6e 67 20 6e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ublic.string.name;.............. |
| d1a0 | 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 3b 0d 0a 20 20 20 | public.string.bindingGroup;..... |
| d1c0 | 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 44 65 76 69 63 65 4a 73 6f 6e 5b 5d 20 64 65 76 | .........public.DeviceJson[].dev |
| d1e0 | 69 63 65 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5b 53 65 72 69 61 6c 69 7a 61 62 | ices;................[Serializab |
| d200 | 6c 65 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 75 63 74 20 44 | le]..............public.struct.D |
| d220 | 65 76 69 63 65 4a 73 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 | eviceJson..............{........ |
| d240 | 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 65 76 69 63 65 50 61 | ..........public.string.devicePa |
| d260 | 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c | th;..................public.bool |
| d280 | 20 69 73 4f 70 74 69 6f 6e 61 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 | .isOptional;..................pu |
| d2a0 | 62 6c 69 63 20 62 6f 6f 6c 20 69 73 4f 52 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | blic.bool.isOR;................. |
| d2c0 | 20 20 20 70 75 62 6c 69 63 20 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 20 54 6f 44 65 | ...public.DeviceRequirement.ToDe |
| d2e0 | 76 69 63 65 45 6e 74 72 79 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a | viceEntry()..................{.. |
| d300 | 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 20 44 | ....................return.new.D |
| d320 | 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eviceRequirement................ |
| d340 | 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 | ......{......................... |
| d360 | 20 63 6f 6e 74 72 6f 6c 50 61 74 68 20 3d 20 64 65 76 69 63 65 50 61 74 68 2c 0d 0a 20 20 20 20 | .controlPath.=.devicePath,...... |
| d380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 4f 70 74 69 6f 6e 61 6c 20 3d | ....................isOptional.= |
| d3a0 | 20 69 73 4f 70 74 69 6f 6e 61 6c 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .isOptional,.................... |
| d3c0 | 20 20 20 20 20 20 69 73 4f 52 20 3d 20 69 73 4f 52 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......isOR.=.isOR,.............. |
| d3e0 | 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d | ........};..................}... |
| d400 | 0a 20 20 20 20 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 44 | .................public.static.D |
| d420 | 65 76 69 63 65 4a 73 6f 6e 20 46 72 6f 6d 28 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 | eviceJson.From(DeviceRequirement |
| d440 | 20 72 65 71 75 69 72 65 6d 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | .requirement)..................{ |
| d460 | 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 65 77 | ......................return.new |
| d480 | 20 44 65 76 69 63 65 4a 73 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .DeviceJson..................... |
| d4a0 | 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 64 65 76 69 | .{..........................devi |
| d4c0 | 63 65 50 61 74 68 20 3d 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 63 6f 6e 74 72 6f 6c 50 61 74 68 | cePath.=.requirement.controlPath |
| d4e0 | 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 69 73 4f 70 74 | ,..........................isOpt |
| d500 | 69 6f 6e 61 6c 20 3d 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 69 73 4f 70 74 69 6f 6e 61 6c 2c 0d | ional.=.requirement.isOptional,. |
| d520 | 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 69 73 4f 52 20 3d 20 | .........................isOR.=. |
| d540 | 72 65 71 75 69 72 65 6d 65 6e 74 2e 69 73 4f 52 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | requirement.isOR,............... |
| d560 | 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 | .......};..................}.... |
| d580 | 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 |
| d5a0 | 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 54 6f 53 63 68 65 6d 65 28 29 0d | c.InputControlScheme.ToScheme(). |
| d5c0 | 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 20 | .............{.................. |
| d5e0 | 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 5b 5d 20 64 65 76 69 63 65 52 65 71 75 69 72 | DeviceRequirement[].deviceRequir |
| d600 | 65 6d 65 6e 74 73 20 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 | ements.=.null;.................. |
| d620 | 69 66 20 28 64 65 76 69 63 65 73 20 21 3d 20 6e 75 6c 6c 20 26 26 20 64 65 76 69 63 65 73 2e 4c | if.(devices.!=.null.&&.devices.L |
| d640 | 65 6e 67 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 7b 0d 0a 20 | ength.>.0)..................{... |
| d660 | 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 75 6e 74 20 3d 20 64 | ...................var.count.=.d |
| d680 | 65 76 69 63 65 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | evices.Length;.................. |
| d6a0 | 20 20 20 20 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6e 65 77 20 44 65 76 | ....deviceRequirements.=.new.Dev |
| d6c0 | 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 5b 63 6f 75 6e 74 5d 3b 0d 0a 20 20 20 20 20 20 20 20 | iceRequirement[count];.......... |
| d6e0 | 20 20 20 20 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 | ............for.(var.i.=.0;.i.<. |
| d700 | 63 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 20 20 20 | count;.++i)..................... |
| d720 | 20 20 20 20 20 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 69 5d 20 3d 20 64 65 76 | .....deviceRequirements[i].=.dev |
| d740 | 69 63 65 73 5b 69 5d 2e 54 6f 44 65 76 69 63 65 45 6e 74 72 79 28 29 3b 0d 0a 20 20 20 20 20 20 | ices[i].ToDeviceEntry();........ |
| d760 | 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 20 72 | ..........}....................r |
| d780 | 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 0d 0a 20 20 | eturn.new.InputControlScheme.... |
| d7a0 | 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 20 | ..............{................. |
| d7c0 | 20 20 20 20 20 6d 5f 4e 61 6d 65 20 3d 20 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 | .....m_Name.=.string.IsNullOrEmp |
| d7e0 | 74 79 28 6e 61 6d 65 29 20 3f 20 6e 75 6c 6c 20 3a 20 6e 61 6d 65 2c 0d 0a 20 20 20 20 20 20 20 | ty(name).?.null.:.name,......... |
| d800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 73 74 | .............m_BindingGroup.=.st |
| d820 | 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 62 69 6e 64 69 6e 67 47 72 6f 75 70 29 | ring.IsNullOrEmpty(bindingGroup) |
| d840 | 20 3f 20 6e 75 6c 6c 20 3a 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 2c 0d 0a 20 20 20 20 20 20 20 | .?.null.:.bindingGroup,......... |
| d860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 | .............m_DeviceRequirement |
| d880 | 73 20 3d 20 64 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 0d 0a 20 20 20 20 20 20 20 | s.=.deviceRequirements,......... |
| d8a0 | 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 | .........};..............}...... |
| d8c0 | 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 53 63 68 65 6d 65 4a 73 | ..........public.static.SchemeJs |
| d8e0 | 6f 6e 20 54 6f 4a 73 6f 6e 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 20 73 63 68 | on.ToJson(InputControlScheme.sch |
| d900 | 65 6d 65 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 | eme)..............{............. |
| d920 | 20 20 20 20 20 44 65 76 69 63 65 4a 73 6f 6e 5b 5d 20 64 65 76 69 63 65 73 20 3d 20 6e 75 6c 6c | .....DeviceJson[].devices.=.null |
| d940 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 63 68 65 6d 65 2e 6d 5f | ;..................if.(scheme.m_ |
| d960 | 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 21 3d 20 6e 75 6c 6c 20 26 26 20 73 63 | DeviceRequirements.!=.null.&&.sc |
| d980 | 68 65 6d 65 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 | heme.m_DeviceRequirements.Length |
| d9a0 | 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)..................{........ |
| d9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 75 6e 74 20 3d 20 73 63 68 65 6d 65 | ..............var.count.=.scheme |
| d9e0 | 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 | .m_DeviceRequirements.Length;... |
| da00 | 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 73 20 3d 20 6e 65 77 | ...................devices.=.new |
| da20 | 20 44 65 76 69 63 65 4a 73 6f 6e 5b 63 6f 75 6e 74 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .DeviceJson[count];............. |
| da40 | 20 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 63 6f 75 | .........for.(var.i.=.0;.i.<.cou |
| da60 | 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 20 20 20 20 20 20 | nt;.++i)........................ |
| da80 | 20 20 64 65 76 69 63 65 73 5b 69 5d 20 3d 20 44 65 76 69 63 65 4a 73 6f 6e 2e 46 72 6f 6d 28 73 | ..devices[i].=.DeviceJson.From(s |
| daa0 | 63 68 65 6d 65 2e 6d 5f 44 65 76 69 63 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 69 5d 29 3b 0d | cheme.m_DeviceRequirements[i]);. |
| dac0 | 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 20 20 20 20 20 20 20 | .................}.............. |
| dae0 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 53 63 68 65 6d 65 4a 73 6f 6e 0d 0a 20 20 20 | ......return.new.SchemeJson..... |
| db00 | 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 20 20 | .............{.................. |
| db20 | 20 20 20 20 6e 61 6d 65 20 3d 20 73 63 68 65 6d 65 2e 6d 5f 4e 61 6d 65 2c 0d 0a 20 20 20 20 20 | ....name.=.scheme.m_Name,....... |
| db40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 6e 64 69 6e 67 47 72 6f 75 70 20 3d 20 73 63 | ...............bindingGroup.=.sc |
| db60 | 68 65 6d 65 2e 6d 5f 42 69 6e 64 69 6e 67 47 72 6f 75 70 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 | heme.m_BindingGroup,............ |
| db80 | 20 20 20 20 20 20 20 20 20 20 64 65 76 69 63 65 73 20 3d 20 64 65 76 69 63 65 73 2c 0d 0a 20 20 | ..........devices.=.devices,.... |
| dba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d | ..............};..............}. |
| dbc0 | 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 53 63 68 | ...............public.static.Sch |
| dbe0 | 65 6d 65 4a 73 6f 6e 5b 5d 20 54 6f 4a 73 6f 6e 28 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 | emeJson[].ToJson(InputControlSch |
| dc00 | 65 6d 65 5b 5d 20 73 63 68 65 6d 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 | eme[].schemes)..............{... |
| dc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 63 68 65 6d 65 73 20 3d 3d 20 6e 75 | ...............if.(schemes.==.nu |
| dc40 | 6c 6c 20 7c 7c 20 73 63 68 65 6d 65 73 2e 4c 65 6e 67 74 68 20 3d 3d 20 30 29 0d 0a 20 20 20 20 | ll.||.schemes.Length.==.0)...... |
| dc60 | 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 0a 0d 0a | ................return.null;.... |
| dc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 75 6e 74 20 3d 20 73 63 68 65 | ................var.count.=.sche |
| dca0 | 6d 65 73 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 | mes.Length;..................var |
| dcc0 | 20 72 65 73 75 6c 74 20 3d 20 6e 65 77 20 53 63 68 65 6d 65 4a 73 6f 6e 5b 63 6f 75 6e 74 5d 3b | .result.=.new.SchemeJson[count]; |
| dce0 | 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d | ....................for.(var.i.= |
| dd00 | 20 30 3b 20 69 20 3c 20 63 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 | .0;.i.<.count;.++i)............. |
| dd20 | 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 5b 69 5d 20 3d 20 54 6f 4a 73 6f 6e 28 73 63 68 65 | .........result[i].=.ToJson(sche |
| dd40 | 6d 65 73 5b 69 5d 29 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 | mes[i]);....................retu |
| dd60 | 72 6e 20 72 65 73 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 | rn.result;..............}....... |
| dd80 | 20 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 49 6e 70 75 74 43 6f 6e 74 | .........public.static.InputCont |
| dda0 | 72 6f 6c 53 63 68 65 6d 65 5b 5d 20 54 6f 53 63 68 65 6d 65 73 28 53 63 68 65 6d 65 4a 73 6f 6e | rolScheme[].ToSchemes(SchemeJson |
| ddc0 | 5b 5d 20 73 63 68 65 6d 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 | [].schemes)..............{...... |
| dde0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 63 68 65 6d 65 73 20 3d 3d 20 6e 75 6c 6c 20 | ............if.(schemes.==.null. |
| de00 | 7c 7c 20 73 63 68 65 6d 65 73 2e 4c 65 6e 67 74 68 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 | ||.schemes.Length.==.0)......... |
| de20 | 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 0d 0a 20 20 20 | .............return.null;....... |
| de40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 75 6e 74 20 3d 20 73 63 68 65 6d 65 73 | .............var.count.=.schemes |
| de60 | 2e 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 | .Length;..................var.re |
| de80 | 73 75 6c 74 20 3d 20 6e 65 77 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 6d 65 5b 63 6f | sult.=.new.InputControlScheme[co |
| dea0 | 75 6e 74 5d 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 | unt];....................for.(va |
| dec0 | 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 | r.i.=.0;.i.<.count;.++i)........ |
| dee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 5b 69 5d 20 3d 20 73 63 68 65 6d 65 | ..............result[i].=.scheme |
| df00 | 73 5b 69 5d 2e 54 6f 53 63 68 65 6d 65 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s[i].ToScheme();................ |
| df20 | 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....return.result;.............. |
| df40 | 7d 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 00 00 00 00 00 | }..........}......}..}.......... |
| df60 | 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 53 63 68 65 | ................InputControlSche |
| df80 | 6d 65 00 00 00 00 00 00 | me...... |