summaryrefslogtreecommitdiffhomepage
path: root/opentrack-logic
AgeCommit message (Collapse)Author
2016-06-29logic, gui: no need to reference "struct main_settings"Stanislaw Halik
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.
2016-06-29gui/options: fix cancel buttonStanislaw Halik
The "struct opts" dtor doesn't run at dialog close time so invoke "reload" on the bundle explicitly.
2016-06-28logic/joystick: fix multiple bugsStanislaw Halik
- 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
2016-06-28logic/nan: move prototype to headerStanislaw Halik
2016-06-18compat, logic, api: fix export macro copy-paste errorsStanislaw Halik
2016-06-18logic/tracker: add unconditional compensation lineStanislaw Halik
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.
2016-06-16logic/tracker: don't translation compensate twiceStanislaw Halik
It's dubious why that line was there. It needs further testing however.
2016-06-16all: split "api" into "api" and "logic"Stanislaw Halik
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.