[retro-gtk/wip/aplazas/gamepad: 2/6] input: Add retro_gamepad_axis_converter()
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [retro-gtk/wip/aplazas/gamepad: 2/6] input: Add retro_gamepad_axis_converter()
- Date: Tue, 5 Sep 2017 06:12:53 +0000 (UTC)
commit 4049722d44f47e5697cb82079257a46ba15a0370
Author: Adrien Plazas <kekun plazas laposte net>
Date: Thu Aug 3 17:11:22 2017 +0200
input: Add retro_gamepad_axis_converter()
This will allow to use Linux input event codes for gamepad axes and to
convert them internally to the corresponding Libretro axes, reducing the
public API.
retro-gtk/input/retro-gamepad-input.c | 33 +++++++++++++++++++++++++++++++++
retro-gtk/input/retro-gamepad-input.h | 3 +++
2 files changed, 36 insertions(+), 0 deletions(-)
---
diff --git a/retro-gtk/input/retro-gamepad-input.c b/retro-gtk/input/retro-gamepad-input.c
index 8c44101..abc120f 100644
--- a/retro-gtk/input/retro-gamepad-input.c
+++ b/retro-gtk/input/retro-gamepad-input.c
@@ -44,3 +44,36 @@ retro_gamepad_button_converter (guint16 button)
return RETRO_JOYPAD_ID_COUNT;
}
+
+gboolean
+retro_gamepad_axis_converter (guint16 axis,
+ RetroAnalogIndex *index,
+ RetroAnalogId *id)
+{
+ switch (axis) {
+ case ABS_X:
+ *index = RETRO_ANALOG_INDEX_LEFT;
+ *id = RETRO_ANALOG_ID_X;
+
+ return TRUE;
+ case ABS_Y:
+ *index = RETRO_ANALOG_INDEX_LEFT;
+ *id = RETRO_ANALOG_ID_Y;
+
+ return TRUE;
+ case ABS_RX:
+ *index = RETRO_ANALOG_INDEX_RIGHT;
+ *id = RETRO_ANALOG_ID_X;
+
+ return TRUE;
+ case ABS_RY:
+ *index = RETRO_ANALOG_INDEX_RIGHT;
+ *id = RETRO_ANALOG_ID_Y;
+
+ return TRUE;
+ default:
+ return FALSE;
+ }
+
+ return FALSE;
+}
diff --git a/retro-gtk/input/retro-gamepad-input.h b/retro-gtk/input/retro-gamepad-input.h
index 388d64e..d1d852c 100644
--- a/retro-gtk/input/retro-gamepad-input.h
+++ b/retro-gtk/input/retro-gamepad-input.h
@@ -9,6 +9,9 @@
G_BEGIN_DECLS
RetroJoypadId retro_gamepad_button_converter (guint16 button);
+gboolean retro_gamepad_axis_converter (guint16 axis,
+ RetroAnalogIndex *index,
+ RetroAnalogId *id);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]