Commit Graph

75 Commits

Author SHA1 Message Date
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
Mat Sutcliffe
82679a3010 Replace qmake variable BLACK_CONFIG with a system based on json files.
The config is loaded from json files by qmake, and we define the qmake
function `swiftConfig` for checking whether a feature is enabled.
This function can be directly used in `buildconfig_gen.cpp.in`,
so the trick with C++ comment tokens in variables is not needed.
2019-02-22 20:23:25 +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
84dcc53dc0 Misc clang warning fixes 2018-08-25 22:12:07 +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
48738c87ab Keyboard and input manager cleanup/style 2018-08-22 12:32:06 +02:00
Klaus Basan
d39978a1d0 Style 2018-06-13 13:59:38 +02:00
Roland Winklmeier
4aaccb44c3 Cleanup the enabled modules in all sub projects
Most modules were just enabled to add include path for dependent headers
2018-06-02 02:08:46 +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
2bbc433d30 Formatting 2018-02-22 01:26:42 +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
Roland Winklmeier
f53ec46d20 Change the operating system name from OSX to MacOS everywhere
Summary:
- Changed the name in all build artifacts
- Everywhere in C++

Reviewers: #swift_pilot_client, kbasan

Reviewed By: #swift_pilot_client, kbasan

Subscribers: jenkins

Maniphest Tasks: T205

Differential Revision: https://dev.swift-project.org/D69
2017-12-06 22:50:19 +01:00
Roland Winklmeier
f0bfad40b7 Remove outdated todos
Summary: This commits removes todos which are done or obsolete.

Reviewers: kbasan, msutcliffe

Reviewed By: kbasan

Differential Revision: https://dev.swift-project.org/D6
2017-05-05 22:40:01 +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
Klaus Basan
cc732bca84 Formatting 2017-04-17 23:58:54 +01:00
Mathew Sutcliffe
53fc629490 Removed outdated precompiled header stuff. 2017-02-28 22:34:52 +00:00
Roland Winklmeier
7cb95ef91f Remove 10.8 and older accessibility since it is no longer supported 2017-02-25 02:11:17 +00:00
Roland Winklmeier
c6bfd3b01d [Mac OS/X] Enable event taps in case it got disabled by timeout 2016-08-26 21:05:19 +01:00
Roland Winklmeier
4c82009ac1 Define DirectInput Version for Windows builds 2016-08-08 11:23:13 +02:00
Roland Winklmeier
9f3b3c2420 Fix Mac OS X keyboard inputs 2016-08-08 11:22:57 +02:00
Mathew Sutcliffe
1801616953 refs #624 Use conditional SUBDIRS instead of REQUIRES for enabling/disabling subprojects. 2016-03-22 16:03:00 +00:00
Klaus Basan
c3722f9198 refs #485, refs #584 removed include blackmiscfreefunctions.h 2016-03-18 01:07:49 +00:00
Roland Winklmeier
f82895501f Fix build on Mac OS X El Capitan (10.11) 2016-02-21 23:09:31 +01:00
Roland Winklmeier
bd251b5de6 Fix license headers 2016-02-16 20:01:21 +01:00
Mathew Sutcliffe
9968ccbbdb refs #461 Use the REQUIRES variable in the leaf projects instead of conditions at the SUBDIRS level. 2015-11-23 23:29:29 +00:00
Roland Winklmeier
2ff0c9fa86 Fix Windows and OSX includes 2015-11-22 18:45:25 +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
5eddef0f12 Add install targets
refs #486
2015-11-19 21:07:14 +00:00
Mathew Sutcliffe
6b75de0b3f refs #482 Project files changed to use new qmake feature files and build directory structure. 2015-11-19 21:02:41 +00:00
Roland Winklmeier
199a1e5fcb refs #453 Refactor CInputManger and low level input handlers 2015-11-19 20:57:59 +00:00
Roland Winklmeier
95fe93a83c Style fixes 2015-11-19 20:51:16 +00:00
Roland Winklmeier
c31a383547 Fix unsafe and broken keyboard detection on Linux 2015-11-19 20:51:15 +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
88cb16321b Workaround issue in blackinput.pro 2015-05-06 16:21:04 +02:00