[gnome-games/wip/aplazas/gamepad-event: 6/14] gamepad: Add the 'event' signal to RawGamepad



commit b8114ed933fd30591b1dcccf4bb78a77e69a54b3
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Fri May 12 06:53:57 2017 +0200

    gamepad: Add the 'event' signal to RawGamepad
    
    This will be used to propagate gamepad events in a simpler way.

 src/gamepad/raw-gamepad.c    |   15 +++++++++++++++
 src/gamepad/raw-gamepad.vapi |    1 +
 2 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/gamepad/raw-gamepad.c b/src/gamepad/raw-gamepad.c
index b79893d..b35f2ab 100644
--- a/src/gamepad/raw-gamepad.c
+++ b/src/gamepad/raw-gamepad.c
@@ -2,6 +2,7 @@
 
 #include "raw-gamepad.h"
 
+#include "../event/event.h"
 #include "standard-gamepad-axis.h"
 #include "standard-gamepad-button.h"
 
@@ -15,6 +16,7 @@ G_DEFINE_INTERFACE (GamesRawGamepad, games_raw_gamepad, G_TYPE_OBJECT)
 
 /* Signals */
 enum {
+  SIGNAL_EVENT,
   SIGNAL_STANDARD_BUTTON_EVENT,
   SIGNAL_BUTTON_EVENT,
   SIGNAL_STANDARD_AXIS_EVENT,
@@ -57,6 +59,19 @@ games_raw_gamepad_default_init (GamesRawGamepadInterface *iface)
   initialized = TRUE;
 
   /**
+   * GamesRawGamepad::event:
+   * @event: the event emitted by the gamepad
+   **/
+  signals[SIGNAL_EVENT] =
+    g_signal_new ("event",
+                  GAMES_TYPE_RAW_GAMEPAD,
+                  G_SIGNAL_RUN_LAST,
+                  0, NULL, NULL,
+                  g_cclosure_marshal_VOID__BOXED,
+                  G_TYPE_NONE, 1,
+                  GAMES_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
    * GamesRawGamepad::standard-button-event:
    * @button: the standard button emitting the event
    * @value: %TRUE if the button is pressed, %FALSE otherwise
diff --git a/src/gamepad/raw-gamepad.vapi b/src/gamepad/raw-gamepad.vapi
index dde4c8e..ed837f5 100644
--- a/src/gamepad/raw-gamepad.vapi
+++ b/src/gamepad/raw-gamepad.vapi
@@ -2,6 +2,7 @@
 
 [CCode (cheader_filename = "raw-gamepad.h")]
 private interface Games.RawGamepad : GLib.Object {
+       public abstract signal void event (Event event);
        public abstract signal void standard_button_event (StandardGamepadButton button, bool value);
        public abstract signal void button_event (int code, bool value);
        public abstract signal void standard_axis_event (StandardGamepadAxis axis, double value);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]