327 Commits

Author SHA1 Message Date
Paweł Kotiuk
7939b51173 chore(release): 3.5.1 2025-01-27 20:19:34 +01:00
Paweł Kotiuk
50f3eb204c fix: use general debian package in deb dependencies
Fixes issue: https://github.com/AntiMicroX/antimicrox/issues/1104
2024-12-08 19:51:37 +01:00
Paweł Kotiuk
99ce4d621b chore: Remove base qt dependencies from package and define dependencies based on QT version 2024-11-18 18:42:33 +01:00
Paweł Kotiuk
b300273d65 chore(release): 3.5.0 2024-10-31 22:54:24 +01:00
Paweł Kotiuk
0d2346a1d3 chore: remove libEGL library from QT6 release
https://doc.qt.io/qt-6/opengl-changes-qt6.html#removal-of-angle
2024-10-27 15:39:15 +01:00
Paweł Kotiuk
28d1056db3 chore(release): 3.4.1 2024-08-10 20:32:48 +02:00
Paweł Kotiuk
59296df97d chore: Change minimal QT requirement to 5.10 2024-06-28 14:55:06 +02:00
Paweł Kotiuk
6777c24838 Bump required MSVC version 2024-05-05 23:15:25 +02:00
Paweł Kotiuk
8d6e30ce9b Simplify checking C++ standard 2024-05-05 23:15:25 +02:00
Paweł Kotiuk
6ee6967baa feat: Add support fot QT6 (optional) 2024-04-25 19:49:46 +02:00
Paweł Kotiuk
24cf55eaa2 refactor: Simplify and make finding QT more universal 2024-04-18 00:27:36 +02:00
Paweł Kotiuk
63825fc99a chore: Add more compilation flags to builds 2024-04-12 09:43:16 +02:00
Paweł Kotiuk
0735eb8651 chore(release): 3.4.0 2024-03-10 12:01:34 +01:00
Paweł Kotiuk
14e76c46e5 refactor: Minor rearrange in CmakeLists (#866)
To improve readability and show detected Qt version
2023-11-14 21:04:38 +01:00
Paweł Kotiuk
1d72f8eb03 chore(release): 3.3.4 2023-06-03 16:34:52 +02:00
Paweł Kotiuk
db395bc574 chore(release): 3.3.3 2023-01-30 17:47:05 +01:00
Chris Dailey
807a8d69b0 chore: Add /MP and /wd4996 to MSVC builds.
`/MP` enables parallel compilation, and `/wd4996` disables the would-be-error (due to `/sdl`) warning about using methods marked deprecated.
2022-12-22 10:43:25 +01:00
Chris Dailey
53a0e082a2 chore(msvc): Add CMakeLists.txt support for msvc.
Also add notes to BUILDING.md about how to build under Visual Studio.
2022-12-19 13:56:16 +01:00
Paweł Kotiuk
fecbed2ae4 chore(release): 3.3.2 2022-11-21 13:27:10 +01:00
Paweł Kotiuk
f56ca66181 chore: Move joybutton files to appropriate directory 2022-11-20 17:03:10 +01:00
Paweł Kotiuk
22cf6a298e chore(release): 3.3.1 2022-10-24 22:45:48 +02:00
Paweł Kotiuk
dcef90e5a8 chore(release): 3.3 2022-10-24 17:37:57 +02:00
Paweł Kotiuk
2e1b6c8698 chore: Rename portable package
[skip ci]
2022-10-24 13:43:12 +02:00
Jordan Irwin
ece973aaaf feat: Add Portable Windows Builds (#523)
Adds CMake Options for building portable AntiMicroX In Zzip format and incorporates it into the CI
https://github.com/AntiMicroX/antimicrox/pull/523

* CMake: add PORTABLE_WIN flag for compiling with portability on Windows

* CMake: use zip cpack generator for portable builds

* Add portable Windows zip to releases

* Ensure usage of proper compiling flags for portable build

Co-authored-by: Paweł Kotiuk <45544416+pktiuk@users.noreply.github.com>
2022-10-20 16:17:34 +02:00
Paweł Kotiuk
5b2ef3cecd chore: Use warning message to inform about missing doxygen 2022-10-16 20:36:47 +02:00
Max Maisel
2e9ff86309 Add HapticTriggerPs5 class.
This class manages a haptic feedback effect for a single DualSense controller
trigger. Two HaptiocTriggerPs5 objects are converted into a low-level USB
message and sent to the controller to apply the effect.
It supports click, rigid and vibration trigger feedback.
2022-08-13 11:14:54 +02:00
Max Maisel
aca2fe4813 Remove almost unused GameControllerTriggerXml class.
This class is only used for reading TriggerAxes from XML which are
written by JoyAxisXml. So remove this class and use JoyAxisXml for
reading as well.
2022-08-01 17:34:21 +02:00
Max Maisel
ca9334ecf6 Remove unused gamecontroller XML classes.
These classes are not used anywhere and only cause confusion.
So just remove them.
2022-08-01 17:34:21 +02:00
Paweł Kotiuk
2f7504457a chore(release): 3.2.5 2022-07-18 17:10:01 +02:00
Max Maisel
fc2dffa189 Add InputDeviceCalibrationClass
This new class is contained within InputDevice and will store multiple
calibration values for different controllers later.

For now, just define the data structure which is basically a union of
structs similar to SDL2 events.
2022-06-27 17:15:56 +02:00
Max Maisel
1d779f7f5c Implement sensor context menues
ControlSticks have context menues which allow quick preset selection so
implement them for sensors as well.
2022-06-26 14:37:34 +02:00
Max Maisel
b1cadee181 Implement sensor presets
Add presets for the existing mouse variants to gyroscope.
Add presets for existing keyboard variants to accelerometer.
Do not add all presets to both because a accelerometer mouse or a
gyroscope keyboard does not make too much sense.
Define the preset values in the caonstructor and not in the .ui file
to realize dynamic entries based on the sensor type.
With this commit, preset selection from the sensor edit dialog works.

Factor out a UI thread helper similar to
joycontrolstickcontextmenuhelper or joycontrolstickeditdialoghelper
which will be used used for both types of UI.
2022-06-26 14:37:30 +02:00
Max Maisel
23e81f378e Implement mouse sensor settings dialog
Use the existing mouse settings dialog as base and hide the parts that
are not needed for sensors. For example, an absolute mouse does not make
any sense for gyroscopes because they are relative sensors. Thus, only
show mouse sensitivity widgets.
2022-06-26 14:37:23 +02:00
Max Maisel
c1f3c4492f Implement JoySensorEditDialog
Show this dialog based on JoyControlStickEditDialog when
clicking on the central sensor button in the GUI. It allows editing sensor
parameters with sliders and spin boxes.

This is the first time in the patcheset where sensors can be watch in
action in the GUI. Show raw and processed sensor values with correct units
in indicators.

Presets and sensor preview widget will be implemented in a later commit.
2022-06-26 14:34:47 +02:00
Max Maisel
922d05e390 Add sensor preview widget
Draw sensor position like an artifical horizon instrument.
This should be very intuitive to understand for accelerometer and
not much more difficult for gyroscope. Only draw the diagonal zones for
the XY plane to avoid cluttering.

Add the required interfaces to JoySensor. Use dummies for non-trivial
interfaces.

This widget will be used in the coming sensor edit dialog and
calibration dialog.
2022-06-26 14:34:33 +02:00
Max Maisel
62cf09dfd2 Add sensor buttons to JoyTabWidget
If a controller has sensors, add configuration buttons similar to a
control stick to the main view. The layout is based on a isometric 3D view
with the regular XY axes and a diagonal Z axis.

Add a JoySensor button for every direction to the JoySensor object
and connect them to the "flashing" events. Add dummy methods for required
JoySensor interfaces.

Make all the QT connections in JoyTabWidgets as for a JoyControlStick.
But I'm not sure for what checkSensorDisplay and checkSensorEmptyDisplay are
really used.

The new buttons have no function yet. Even though it is possible to map
buttons to the sensor directions, but no events will be generated yet.
2022-06-26 14:34:30 +02:00
Max Maisel
41120ef45e Add JoySensorButton class
A specialized JoyButton subclass is necessary to store a pointer to the
JoySensor, to perform specialized mouse calculations and to store the
new 3D direction.
Add two additional subclasses for acceleromters and gyroscopes which
handle the translated direction name of the button.

Encode the 3D directions into a bitfield. This makes it easier to check
for combined three dimensional directions later. Furthermore, add
dummies for the required JoySensor interfaces.
2022-06-26 14:08:13 +02:00
Max Maisel
410e5c4713 Add JoySensor subclasses for the two sensor types
This eases implementation of the differences between the two sensor
types in the following commits.
Add a factory method to simplify creation of the correct sensor object
in Set Joystick.
2022-06-25 11:17:04 +02:00
Max Maisel
3f9d8e4f89 Add sensors to InputDaemon
Enable sensor events in input daemon, handle them in all input
passes and finally activate them at the end of the last pass.

Set "pending" status bits in firstInputPass.
I'm not sure why exactly this is necessary since it worked well without
it but other analog inputs like axes and sticks do it.
So do it for sensors as well.

Add stub functions for all new interfaces required by the InputDaemon changes
as well as a stub JoySensor class.
2022-06-25 11:17:04 +02:00
Max Maisel
fbc2404760 Show sensors in controller properties dialog
Therefore, add querying methods hasRawSensor and getRawSensorRate to
InputDevice and its child classes. The sensor data rate will be necessary for
accelerometer shock detection.

Sensors are supported in SDL since version 2.0.14. Do no use sensor
functions in prior version because it will not compile on older
Linux distributions otherwise.

Do not pass the flag SDL_INIT_SENSOR during SDL initialization as it triggers
bug libsdl-org/SDL#4276 on windows and works well without it.
This is the same thing JoyShockMapper does. It appears SDL_INIT_SENSOR is
for different sensor types than those in gamecontrollers.

Show available sensors in the details view in the controller
properties dialog and log detected sensors.
2022-06-25 11:17:04 +02:00
Paweł Kotiuk
7f3b33d84f chore(release): 3.2.4 2022-06-11 16:52:01 +02:00
Paweł Kotiuk
10f6c13065 refactor: Rename flag TRANS_KEEP_OBSOLETE to TRANS_REMOVE_OBSOLETE to improve readability 2022-05-05 18:43:33 +02:00
Max Maisel
5fce5dabfa Add PT1 filter class
The PT1 class implements a first order lag filter (or PT1).
This filter willl be used to denoise the calibration values
and later for sensor data processing.
2022-05-04 19:16:26 +02:00
Max Maisel
1c71a8e1c0 Add StatisticsEstimator class
This helper class will be used during calibration in the following
commits to estimate offset and gain values and theier accuracy.
2022-05-04 19:16:26 +02:00
Paweł Kotiuk
e6bb2e73ac chore(release): 3.2.3 2022-04-24 21:17:22 +02:00
Paweł Kotiuk
728609e286 chore: Add missing license for SDL_GameControllerDB 2022-02-26 19:59:53 +01:00
Paweł Kotiuk
902049d575 chore(release): 3.2.2 2022-02-24 15:01:41 +01:00
Paweł Kotiuk
f6c46fff7b fix: Fix wrong windows icon path (#383) 2022-02-22 16:31:45 +01:00
Paweł Kotiuk
9f7bf24c25 Move installed icons 2022-01-26 15:11:43 +01:00
Paweł Kotiuk
bcf26df23d Move icons 2022-01-26 15:11:39 +01:00