Commit Graph

45 Commits

Author SHA1 Message Date
Klaus Basan
e04cb84656 Ref T582, improved joystick error handling
* display details
* hr to string
* reduce number of messages
2019-04-11 22:12:06 +01:00
Mat Sutcliffe
e9a4c49d68 Ref T547 Update license masthead in all source code files. 2019-02-22 20:36:43 +00:00
Roland Rossgotterer
e5c435f281 Add function to retrieve all available joystick buttons 2019-02-22 20:36:23 +00:00
Mat Sutcliffe
7cb581f865 Ref T488 Fixed cppcheck warnings. 2019-02-22 20:34:57 +00:00
Mat Sutcliffe
225ff81252 Ref T485 Adjust CLogMessage and CStatusMessage call sites to use the new API. 2019-02-22 20:34:55 +00:00
Mat Sutcliffe
462172a87f Fixed clazy warnings: unnecessary containers and containers being detached in range-for loops. 2019-02-22 20:23:37 +00:00
Mat Sutcliffe
9f85a7b560 Fixed clazy warnings: pass large objects by reference to const. 2019-02-22 20:23:33 +00:00
Roland Winklmeier
0f140cb155 Add more special key codes to keyboard keys
ref T404
2018-11-16 02:49:51 +01:00
Roland Winklmeier
5ee8bbe467 Properly initialize and cleanup DirectInput
ref T391
2018-11-04 17:42:42 +01:00
Roland Winklmeier
4b3d3bba48 Destroy DirectInput helper window during shutdown 2018-11-04 17:42:42 +01:00
Klaus Basan
00868c8147 Ref T391, temp. workaround to avoid shutdown crash 2018-10-07 18:58:00 +02:00
Klaus Basan
24ee4da4f9 Ref T391, style 2018-10-07 18:56:53 +02:00
Roland Winklmeier
c42900f959 Release input devices when application is shutdown
If they are released with the deallocation of CInputManager, we might
run into global deallocation hell.
Also on Windows release all DirectX devices before COM library is closed.

ref T391
2018-10-07 16:17:26 +02:00
Roland Winklmeier
7f1d1847ca Revert back to DirectInput COM initialization
Using and linking against DirectInput libraries directly caused dinput.dll
to be loaded at startup time. Windows 10 kills applications started from
services (as the Jenkins slave service) that load dinput.dll.
This commit also adds some safety in case no helper windows could be created.
2018-10-05 17:39:58 +02:00
Roland Winklmeier
84f1e21cf8 Add support for multiple Joystick devices
This includes a major refactoring of the Linux and Windows implementations
Each joystick device is now its own QObject. They all setup their own
native device instances and poll the button states.
On Windows, COM initialization has been removed since it caused segfaults
while releasing the DirectInput8 instance.

ref T254
2018-10-03 03:03:40 +02:00
Roland Winklmeier
f62ab3266f Implement log message fixmes in joystickwindows.cpp 2018-10-03 03:03:40 +02:00
Roland Winklmeier
89ab1a0138 Add alternative method to poll keyboard state on Windows
It seems that Windows is frequently disconnecting the keyboard hook
(eventually if swift was too busy processing messages) and caused all hotkeys
to be unreliable.
Instead use a polling mechanism. The previous method is kept in code for
testing, but is disabled by compile time switch.
2018-10-03 03:03:40 +02:00
Roland Winklmeier
324e16121e Correct wrong variable types in CKeyboardWindows 2018-10-03 03:03:40 +02:00
Roland Winklmeier
a60ee4a7dd Use override for destructors 2018-08-25 22:12:06 +02:00
Roland Winklmeier
9b3b645c12 Use nullptr 2018-08-25 22:12:05 +02:00
Klaus Basan
d3f46f948a Ref T254, joystick windows avoid crash when shutting down
Temp.workaround, we do not really understand why it crashes here.
2018-04-05 02:52:36 +02:00
Klaus Basan
80c9030bdd Formatting 2018-04-05 02:52:32 +02:00
Klaus Basan
d71e98def3 Changed joystick search class
This finds Saitek controls at KB's place
2018-02-22 13:58:41 +01:00
Klaus Basan
602373c97a Ref T254, avoid crashes when there is no input device
* init with nullptr
* formatting
2018-02-22 01:26:39 +01:00
Klaus Basan
be6b67f95d Filter joystick devices with 0 buttons
ref T254
2018-02-22 01:26:36 +01:00
Mathew Sutcliffe
e3fe8ec39f refs #937 Resolved clazy warnings: miscellaneous. 2017-04-19 19:31:50 +01:00
Mathew Sutcliffe
fce1513dae refs #937 Resolved clazy warnings: unnecessary detaching of containers. 2017-04-19 19:31:38 +01:00
Roland Winklmeier
bd251b5de6 Fix license headers 2016-02-16 20:01:21 +01:00
Michał Garapich
1b06e15b61 refs #510 Remove underscores from all the source file names 2015-11-22 12:53:09 +01:00
Roland Winklmeier
199a1e5fcb refs #453 Refactor CInputManger and low level input handlers 2015-11-19 20:57:59 +00:00
Klaus Basan
e695987fa2 refs #432 Doxygen, formatting, added new file types in *.pro
Minor tweaks:
* GUI infobar minimum size
* toogle lock protected
* removed unused function
* ASSERT_X
* object name
2015-05-28 23:57:14 +02:00
Roland Winklmeier
9c81467fe9 refs #403 add BlackInput shared library build 2015-05-05 21:34:23 +02:00
Roland Winklmeier
1b26311983 Fix license header spelling 2015-04-16 00:59:56 +02:00
Michał Garapich
985a1caecf refs #396 BlackMisc: nw* goes to network/, hw* goes to hardware/ 2015-04-07 19:22:37 +02:00
Mathew Sutcliffe
3dfcbb10e9 Fix MSVC error when building for 64bits 2015-04-05 23:11:11 +01:00
Klaus Basan
28132d8e40 Fixed warnings from compiler and Jenkins build 2015-03-29 20:15:25 +02:00
Roland Winklmeier
d71e380a91 refs #341 Fix operator= return types 2014-11-05 16:07:31 +01:00
Roland Winklmeier
34326447f8 refs #317 IKeyboard implementation fixes
- private constructor
- deleted public copy constructor
- deleted public assignment operator
2014-08-27 19:23:42 +02:00
Roland Winklmeier
80f8e33ba0 refs #317 Add stub Linux and OSX IJoystick implementations 2014-08-27 19:23:39 +02:00
Roland Winklmeier
78cab16a3d refs #317 IJoystick windows implementation 2014-08-27 19:23:32 +02:00
Roland Winklmeier
8e16f9619f refs #313 Fix argument by const reference 2014-08-19 14:42:23 +02:00
Roland Winklmeier
2f527f72c3 refs #313 Remove the responsibility from IKeyboard to register
and call functions. Instead just monitor key ups and downs.
2014-08-19 14:41:36 +02:00
Roland Winklmeier
50b5e80057 refs #313 Remove any occurence of function or virtual keycode from CKeyboardKey(list)
Justification for native virtual key is, because its not cross platform.
2014-08-19 14:41:34 +02:00
Roland Winklmeier
498dc5e1df refs #265 Linux raw keyboard mappings 2014-06-15 20:30:47 +02:00
Roland Winklmeier
a131e8c91c Move IKeyboard and subclasses to new library BlackInput
refs #256
2014-06-15 19:22:59 +02:00