summaryrefslogtreecommitdiffhomepage
path: root/opentrack-logic
AgeCommit message (Collapse)Author
2016-07-19some: replace hardcoded pi values with the same pi constantStanislaw Halik
We can't depend on M_PI existing after including cmath.
2016-07-18cmake: adjust paths for main executable dependenciesStanislaw Halik
2016-07-16logic: make translation mapping range sensibleStanislaw Halik
2016-07-08gui, api: plugin-support needs to remain header-onlyStanislaw Halik
Move "opentrack_library_path" to the gui module.
2016-07-08logic/dinput: add forgotten visiblity attributeStanislaw Halik
2016-07-07logic/dinput: only ever use a single handle to DIRECTINPUT8 COM objectStanislaw Halik
2016-07-07logic/joystick: initialize dinput handle ASAPStanislaw Halik
2016-07-06csv, compat, logic, api: open-code import.hppStanislaw Halik
2016-07-04logic/tracker: get roll for camera centering from inertial centeringStanislaw Halik
It stays centered this way. Sadly yaw and pitch are still somewhat not fixed in the user's reference frame.
2016-07-04logic/tracker, api/simple-mat: don't convert rad <-> deg all the timeStanislaw Halik
2016-07-04logic/joystick: don't logspam button pressesStanislaw Halik
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.
2016-06-29logic/state: move to gui/mainStanislaw Halik
2016-06-29logic/joystick: treat each POV hat as 4 buttonsStanislaw Halik
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.
2016-06-29compat/options: separate module dll names from rest of settingsStanislaw Halik
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.
2016-06-29logic, gui: reload keybinding description on profile changeStanislaw Halik
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.