[gnome-games/wip/abhinavsingh/gamepad-config] gamepad: Add 'name' property to RawGamepad
- From: Abhinav Singh <abhinavsingh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/abhinavsingh/gamepad-config] gamepad: Add 'name' property to RawGamepad
- Date: Fri, 12 May 2017 08:24:45 +0000 (UTC)
commit ae3d8931bb139ee34db7a971bb916290a5c4896a
Author: theawless <theawless gmail com>
Date: Fri May 12 12:55:43 2017 +0530
gamepad: Add 'name' property to RawGamepad
This will be used to show the name of gamepad during configuration and
mapping.
src/gamepad/linux/linux-raw-gamepad.c | 17 +++++++++++++++++
src/gamepad/raw-gamepad.c | 14 ++++++++++++++
src/gamepad/raw-gamepad.h | 2 ++
src/gamepad/raw-gamepad.vapi | 1 +
4 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/src/gamepad/linux/linux-raw-gamepad.c b/src/gamepad/linux/linux-raw-gamepad.c
index b98ce28..9de5271 100644
--- a/src/gamepad/linux/linux-raw-gamepad.c
+++ b/src/gamepad/linux/linux-raw-gamepad.c
@@ -25,6 +25,7 @@ struct _GamesLinuxRawGamepad {
guint8 abs_map[ABS_MAX];
struct input_absinfo abs_info[ABS_MAX];
gchar *guid;
+ gchar *name;
};
static void games_raw_gamepad_interface_init (GamesRawGamepadInterface *interface);
@@ -97,6 +98,19 @@ get_guid (GamesRawGamepad *base)
return self->guid;
}
+static const gchar *
+get_name (GamesRawGamepad *base)
+{
+ GamesLinuxRawGamepad *self;
+
+ self = GAMES_LINUX_RAW_GAMEPAD (base);
+
+ if (self->name == NULL)
+ self->name = libevdev_get_name (self->device);
+
+ return self->name;
+}
+
static struct input_absinfo *_abs_info_dup (struct input_absinfo *self);
static GamesStandardGamepadAxis
@@ -427,6 +441,8 @@ games_linux_raw_gamepad_finalize (GObject *object)
libevdev_free (self->device);
if (self->guid == NULL)
g_free (self->guid);
+ if (self->name == NULL)
+ g_free (self->name);
G_OBJECT_CLASS (games_linux_raw_gamepad_parent_class)->finalize (object);
}
@@ -443,6 +459,7 @@ static void
games_raw_gamepad_interface_init (GamesRawGamepadInterface *interface)
{
interface->get_guid = get_guid;
+ interface->get_name = get_name;
}
static void
diff --git a/src/gamepad/raw-gamepad.c b/src/gamepad/raw-gamepad.c
index b79893d..d1e63b7 100644
--- a/src/gamepad/raw-gamepad.c
+++ b/src/gamepad/raw-gamepad.c
@@ -44,6 +44,20 @@ games_raw_gamepad_get_guid (GamesRawGamepad *self)
return GAMES_RAW_GAMEPAD_GET_IFACE (self)->get_guid (self);
}
+/**
+ * games_raw_gamepad_get_name:
+ * @self: a #GamesRawGamepad
+ *
+ * Returns the name reprensenting this gamepad.
+ **/
+const gchar *
+games_raw_gamepad_get_name (GamesRawGamepad *self)
+{
+ g_return_val_if_fail (self != NULL, NULL);
+
+ return GAMES_RAW_GAMEPAD_GET_IFACE (self)->get_name (self);
+}
+
/* Type */
static void
diff --git a/src/gamepad/raw-gamepad.h b/src/gamepad/raw-gamepad.h
index acf0d97..262e00a 100644
--- a/src/gamepad/raw-gamepad.h
+++ b/src/gamepad/raw-gamepad.h
@@ -15,9 +15,11 @@ struct _GamesRawGamepadInterface {
GTypeInterface parent;
const gchar *(*get_guid) (GamesRawGamepad *self);
+ const gchar *(*get_name) (GamesRawGamepad *self);
};
const gchar *games_raw_gamepad_get_guid (GamesRawGamepad *self);
+const gchar *games_raw_gamepad_get_name (GamesRawGamepad *self);
G_END_DECLS
diff --git a/src/gamepad/raw-gamepad.vapi b/src/gamepad/raw-gamepad.vapi
index dde4c8e..86d46b5 100644
--- a/src/gamepad/raw-gamepad.vapi
+++ b/src/gamepad/raw-gamepad.vapi
@@ -9,4 +9,5 @@ private interface Games.RawGamepad : GLib.Object {
public abstract signal void dpad_event (int dpad, int axis, int value);
public abstract signal void unplugged ();
public abstract string guid { get; }
+ public abstract string name { get; }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]