James Turner
e509711075
Fix some warnings from current Apple clang
...
- remove some unused vars
- remove use of std::mem_fn / std::bind2nd
2020-03-10 17:02:08 +00:00
Erik Hofman
32d6f75305
Process the buttons even if the axes are not declared initialized
2020-03-07 09:22:22 +01:00
James Turner
219ceacc7a
macOS Catalina device filtering
2020-02-24 13:09:36 +00:00
Erik Hofman
6df768fa5f
Store the initial axis values and if just one of them changes declare the joystick initialized
2020-01-27 18:12:09 +01:00
Erik Hofman
65a20b5829
Read the raw values and check them against the saturation value, if one of them is larger then initialization of the joystick is still in progress.
2020-01-27 09:15:53 +01:00
Erik Hofman
2d0b44ee63
If js is valid (again), create a new instance of jsJoystick so removing an joystick from and USB port and attaching it again get the joystick in a working order.
2020-01-26 17:44:19 +01:00
Erik Hofman
d4459c8205
Fix a typo
2020-01-26 14:30:24 +01:00
Erik Hofman
3405ea2aaa
Joystick axes can get initialized to extreme values, at least on Linux. Hold of working with the axis values until all values have become sane at least once
2020-01-26 14:10:07 +01:00
James Turner
0e082d5c46
Tweaking macOS HID code to avoid a Catalina crash
...
Not certain what’s going on here, this is testing a theory that
deleting a HID queue which has never been started, might behave badly.
2019-10-17 00:01:59 +01:00
Julian Smith
331ef3232f
src/Input/FGEventInput.cxx: FGEventInput::AddDevice(): fix incorrect use after delete.
...
Moved delete of inputDevice to after its use in a SG_LOG diagnostic.
2019-08-31 14:19:16 +01:00
Edward d'Auvergne
34a6cb3c74
SGSubsystem classes: Registration of all subsystems.
2019-07-01 14:51:32 +02:00
Edward d'Auvergne
d259c70560
SGSubsystem classes: Addition of staticSubsystemClassId() to all subsystems.
2019-07-01 14:51:32 +02:00
Edward d'Auvergne
332c240b38
SGSubsystemGroup: Removal of the subsystem group naming.
...
This is a partial reversion of 5253215065
, the
changes of which are incompatible with the subsystem class IDs.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
fb5c36fc82
SGSubsystem classes: Renaming of the subsystem ID variables and functions.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
7a6e63ddb9
SGSubsystem classes: Subsystem and subsystem group API declaration standardisation.
...
This is a cleanup commit.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
60a2444766
SGSubsystem classes: Whitespace standardisation of the declarations.
...
This is a clean up commit prior to the subsystem API standardisation to simplify
the diffs. It includes all SGSubsystem and SGSubsystemGroup derived classes.
2019-07-01 14:27:28 +02:00
James Turner
0bea6153b0
Event input: button fire repeat
2019-06-05 17:41:07 +01:00
James Turner
5ffe96237f
Fix a warning
2019-06-05 17:41:07 +01:00
Ganael Laplanche
66e6afb449
Avoid crashing when udev_device_get_parent() returns a NULL pointer
2019-05-29 12:06:07 +02:00
James Turner
bd2c524b21
HID input: more debug output
2019-05-27 16:06:27 +01:00
James Turner
955138d06e
Avoid a crash on HID devices with no name.
2019-05-16 11:11:19 +02:00
Florent Rougon
9b019f6b72
FGJoystickInput: increase MAX_JOYSTICKS from 10 to 16
...
Since PLIBjs uses joyGetDevCaps()[1] on Windows and this function
accepts joystick ids from 0 to 15 (-1 being special), setting
MAX_JOYSTICKS to 16 ensures that FGJoystickInput::init() can scan all
joysticks that joyGetDevCaps() is able to report about.
[1] https://docs.microsoft.com/en-us/previous-versions/dd757105(v%3Dvs.85)
2019-04-29 12:54:03 +02:00
James Turner
9d71d09072
Enable HID-input on Windows
2019-04-27 18:54:13 +01:00
Richard Harrison
5253215065
Improvements to performance monitoring.
...
* Ensure that subsystems are named.
* Nasal timers are named appropriately
2019-02-10 18:07:07 +01:00
James Turner
07cb303e8c
Fix for jumping view when right-dragging
...
This happens because we were not storing the new position when the
OSG event-adapter handled the event, which includes PUI
https://sourceforge.net/p/flightgear/codetickets/2073/
2018-10-24 22:16:51 +01:00
James Turner
951a3ea6ad
Fix Windows build, missined windows.h
2018-10-24 14:28:58 +01:00
James Turner
00eec40d51
Fix JS header include path
2018-10-23 11:00:59 +01:00
James Turner
73be50b308
Event-input: axis interpolater support
...
Expand the range of filtering options on axis values to include the
optional use of an interpolation table, which gives many more options
when dealing with some devices.
2018-10-13 00:03:30 +01:00
James Turner
6589c71f62
Tweaks to HID local descriptors
2018-10-04 23:21:05 +01:00
James Turner
abbaf8f640
HID input: allow descriptors from XML
...
This allows ignoring the USB-supplied descriptor in favour of our
own, which might considerably better or less broken at least.
2018-10-04 17:43:36 +01:00
James Turner
6366dea197
HID event-input debugging
...
Adding more debugEvents-enabled log output to HDI input
2018-10-04 12:17:01 +01:00
James Turner
96cce67040
HID input: fix multi-device Nasal support
...
Ensure each laoded device gets a unique Nasal module name,
otherwise they combine with each other and Stuff Breaks(TM)
2018-10-04 12:17:01 +01:00
James Turner
8b72229ffd
C++11 improvements in Mac event-input code
2018-08-19 12:34:47 +01:00
James Turner
e24134f34a
HID-input: fix crash with null manufacturer name
...
https://sourceforge.net/p/flightgear/codetickets/2041/
2018-08-10 15:11:32 +01:00
Edward d'Auvergne
fff923d2f4
TestSuite: Migration of the HIDInput tests to the CppUnit framework.
...
The extractBits(), signExtend(), and writeBits() functions of the anonymous
namespace in Input/FGHIDEventInput.cxx have been shifted out of the namespace
and are now exposed via the header. This is needed as
<Input/FGHIDEventInput.cxx> cannot be imported within the CppUnit
infrastructure, as it is already built into the run_test_suite binary.
2018-07-26 15:52:07 +02:00
James Turner
b690be1206
Fix HID input init
2018-06-25 23:39:22 +01:00
James Turner
5741cad568
HID tweaks
2018-06-25 23:39:22 +01:00
James Turner
054c4bec0f
Bug-fix: for RMB-look / PUI interaction issue
...
When releasing the RMB over a PUI dialog, we no longer get stuck in
drag mode due to the buttons map getting out of state. This is slightly
ugly work-around, better fix to follow hopefully (needs better OSG
integration)
2018-05-23 14:16:48 +01:00
James Turner
8986abeb52
Fix PUI mouse for non-pass-through mouse modes
...
As reported by Michael Danilov, ensure sticky mouse modes for view and
flight controls don’t send button events to PUI
2018-05-14 14:41:06 +01:00
James Turner
102fe04e91
Import PLIB JS code into FlightGear
...
- will permit bug-fixing which cannot occur for
official PLIB.
2018-05-03 00:02:09 +01:00
James Turner
0762af76c2
Indexed-device config files for event-input layer
...
This allows multiple identical devices with event-input, using the
same syntax as for PLIB JS
2018-04-29 21:52:56 +01:00
James Turner
2ce4bcb666
Allow distinguishing PLIB joysticks by index (count)
...
This gives a simple way to have different config files for multiple
identical devices, such as the Saitek/Logitech throttle-quadrant
2018-04-29 19:56:01 +01:00
James Turner
0cdd6c4e70
Re-init support on HID-event-input
...
To ensure the device-configuration-map is re-read, added a default
ctor and moved the config-map creation to init()
2018-04-29 11:25:51 +01:00
James Turner
921f29fbfe
HID-Input disambiguation tweaks
2018-04-09 22:03:49 +01:00
Edward d'Auvergne
0f96032487
TestSuite: Shift of the globals unit test helper functions into the test suite.
...
The setting of the SG log levels and developer mode has been removed as this
clashes with the output control set by the test suite main() function.
2018-03-23 17:26:05 +01:00
Florent Rougon
21b8c7719e
FGMouseInput: fix two uses of std::ostringstream
...
Seeking to the beginning doesn't clear the contents. Note that we don't
use std::ostringstream::str() either, because apparently
std::ostringstream is too complex to be easily reset to a clean state,
so we just recreate an instance every time we need.
cf. https://stackoverflow.com/a/12112642/4756009 and
https://stackoverflow.com/questions/624260/how-to-reuse-an-ostringstream/624291#comment437178_624276
2018-01-27 11:25:48 +01:00
Florent Rougon
99c809dda0
FGMouseInput: add shutdown() and reinit() overrides
...
- Modify global_mouseInput in init() and in shutdown(), because *these*
are the places where FGMouseInput is enabled or disabled.
- reinit() does shutdown() followed by init().
Note: the commented-out block starting with "FIXME: memory leak" that is
removed here was just an outdated comment, because SGBindingList
is an std::vector<SGBinding_ptr>, where SGBinding_ptr is a smart
pointer type (SGSharedPtr<SGBinding>). In other words, there was
no leak in this place---at least, not recently.
2018-01-27 11:25:10 +01:00
Florent Rougon
2eb583e9e1
FGMouseInput: improve initialization sequence
...
Create the FGMouseInputPrivate instance in FGMouseInput::init() instead
of in FGMouseInput's constructor. This will allow straightforward
implementation of reinit() via shutdown() and init().
Also get rid of the 'initialized' bool, since bool(d) is now equivalent
(d being the std::unique_ptr<FGMouseInputPrivate> data member of
FGMouseInput).
2018-01-27 11:25:10 +01:00
Florent Rougon
e60e519f7e
FGMouseInput: refactoring: use a smart pointer for mouse_mode::buttons
2018-01-27 11:25:10 +01:00
Florent Rougon
1832ade5f2
FGMouseInput: refactoring: use a smart pointer for mouse::modes
...
Using std::vector<mouse_mode> instead of std::unique_ptr<mouse_mode[]>
would have been possible of course, but a bit more awkward as
vector<>::size() returns an std::size_t but all the "adjacent" code is
based on the 'int' type.
2018-01-27 11:25:10 +01:00