A hidden window will listen for device attached and removed signals from Windows. In case such a event occurs, all devices are enumerated again.
ref T587
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.
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
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.
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
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.
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
Summary: This commits removes todos which are done or obsolete.
Reviewers: kbasan, msutcliffe
Reviewed By: kbasan
Differential Revision: https://dev.swift-project.org/D6