Age | Commit message (Collapse) | Author |
|
We can't depend on M_PI existing after including cmath.
|
|
|
|
|
|
Move "opentrack_library_path" to the gui module.
|
|
|
|
|
|
|
|
|
|
It stays centered this way. Sadly yaw and pitch are still somewhat not
fixed in the user's reference frame.
|
|
|
|
On my Saitek X65F there's erratic panel button logspam. The panel's been
thrown out since it's useless, and the connector is detached from
everything.
In any case don't do stderr io overhead for button presses.
|
|
|
|
dinput8 has separate logic for pov hats. Before pov hat state was
totally ignored.
Don't support 8-way buttons. Only one button gets registered after a
diagonal pov hat press.
|
|
The other settings are modified by the options dialog. These are in the
main ui. We need to be able to save modules without saving the options
dialog.
|
|
|
|
Now that "struct main_settings" doesn't implicitly reload in dtor, we no
longer have to pass it around from the user interface.
Only reload it where it's modified, i.e. in the options dialog. Changing
the filter/dialog/mapping comboboxen implicitly saves the main options
however.
|
|
The "struct opts" dtor doesn't run at dialog close time so invoke
"reload" on the bundle explicitly.
|
|
- the enumerator and the handle list are now static; joysticks were
erroneously destructed during refresh
- setup dinput only once; creating LPDIRECTINPUT8 many times causes
Release() to invalidate all handles
- don't create joystick handles many times; same thing applies
- refresh joy list on failed acquire; usually joystick is unplugged at
that moment leading to endless stderr spam
- use a static mutex as to avoid dinput races
Issue: #315
|
|
|
|
|
|
The reason for its existence is that we can't rotate translation by
rotation as-is. The signs are wrong and we're not using the XYZ order
for Tait-Bryan either.
The line location was incorrect due to mismerge.
|
|
It's dubious why that line was there. It needs further testing however.
|
|
Here, the "logic" module has all the stuff for building one's own
graphical user interface.
The "api" module has stuff used by other trackers.
While at it, each of "api", "logic", and "compat" need their own export
headers. This is because of preprocessor symbol clashes.
This is all because a change in the "gui"-only dependency required a
relink of all the trackers, protocols, and flters. It takes too long
when building in the release configuration. With the split, only the
"gui" module gets rebuilt. Since it has close to no static dependencies,
it's fast enough.
|