|
1 | 1 | # XMapLib |
2 | 2 | A closer to the metal library for Xbox controller to keyboard and mouse input. |
3 | 3 |
|
4 | | -<p>XMapLibSharp is a C# .NET GUI project using the C++ project code through a DLL via managed/native interop. With this approach, |
5 | | -the project has access to the entire .NET framework for GUI work while keeping the native performance and power of the C++ XMapLib code. |
| 4 | +<p>XMapLibSharp is a C# .NET GUI project using the C++ project code through a DLL. With this approach, |
| 5 | +the project has access to the entire .NET framework for GUI work while keeping the native performance and power of the C++ XMapLib project code. |
| 6 | + <p>The project utilizes |
| 7 | +<ul> |
| 8 | + <li>.NET multi-threading</li> |
| 9 | + <li>events</li> |
| 10 | + <li>programmatic UI element creation</li> |
| 11 | + <li>a producer/consumer design pattern.</li> |
| 12 | + <li>managed/native interop via custom C++ DLL</li> |
| 13 | +</ul> |
6 | 14 |
|
7 | 15 | <a href="https://ibb.co/x28d2WX"><img src="https://i.ibb.co/0nVvnTm/XMap-Lib-gui1.jpg" alt="XMap-Lib-gui1" border="0"></a> |
8 | 16 |
|
9 | 17 | <b><p>A high level code diagram of the XMapLib project code (native C++)</b> |
10 | 18 | <a href="https://ibb.co/vmjctWD"><img src="https://i.ibb.co/ZKMfZrN/XMap-Lib-uml.jpg" alt="XMap-Lib-uml" border="0"></a> |
11 | 19 |
|
12 | 20 | <b>The main classes for use in the native C++ XMapLib project are :</b> |
13 | | -<b><p><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/MouseMapper.h">MouseMapper</a></p></b> |
14 | | -<b><p><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardMapper.h">KeyboardMapper</a></p></b> |
15 | | -<b><p><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/MousePlayerInfo.h">MousePlayerInfo</a></p></b> |
16 | | -<b><p><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardPlayerInfo.h">KeyboardPlayerInfo</a></p></b> |
17 | | -To set the mapping details <b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardKeyMap.h">KeyboardKeyMap</a></b> encapsulates the information comprising a controller key to keyboard/mouse key mapping. |
| 21 | + <ul> |
| 22 | +<li><b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/MouseMapper.h">MouseMapper</a></b></li> |
| 23 | +<li><b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardMapper.h">KeyboardMapper</a></b></li> |
| 24 | +<li><b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/MousePlayerInfo.h">MousePlayerInfo</a></b></li> |
| 25 | +<li><b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardPlayerInfo.h">KeyboardPlayerInfo</a></b></li> |
| 26 | +<li>To set the mapping details <b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/KeyboardKeyMap.h">KeyboardKeyMap</a></b> encapsulates the information comprising a controller key to keyboard/mouse key mapping.</li> |
| 27 | + </ul> |
18 | 28 | <p>Also, please see the <b><a href="https://github.com/calebtt/XMapLib/blob/master/XMapLib/XMapLib.cpp">Example</a></b></p> |
19 | 29 |
|
20 | 30 | <b><p>The DLL API exposed from XMapLibDLL is described totally in <a href="https://github.com/calebtt/XMapLib/blob/master/XMapLibDLL/apifuncs.h">apifuncs.h</a> in the DLL project.</b> |
0 commit comments