[retro-gtk] core-view: Add set_as_default_controller() method



commit f8c4ebd153df3882822de50c14d75d3847590192
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Mon Nov 6 09:18:57 2017 +0100

    core-view: Add set_as_default_controller() method
    
    This simplifies controller management.

 retro-gtk/retro-core-view.c |   26 ++++++++++++++++++++++++++
 retro-gtk/retro-core-view.h |    2 ++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/retro-gtk/retro-core-view.c b/retro-gtk/retro-core-view.c
index cd50d37..2db4e99 100644
--- a/retro-gtk/retro-core-view.c
+++ b/retro-gtk/retro-core-view.c
@@ -619,6 +619,32 @@ retro_core_view_as_controller (RetroCoreView       *self,
 }
 
 /**
+ * retro_core_view_set_as_default_controller:
+ * @self: a #RetroCoreView
+ * @core: (nullable): a #RetroCore
+ *
+ * Sets the @self as the default controllers of @core.
+ */
+void
+retro_core_view_set_as_default_controller (RetroCoreView *self,
+                                           RetroCore     *core)
+{
+  RetroControllerType type;
+  RetroController *controller;
+
+  g_return_if_fail (RETRO_IS_CORE_VIEW (self));
+  g_return_if_fail (RETRO_IS_CORE (core));
+
+  for (type = RETRO_CONTROLLER_TYPE_NONE;
+       type < RETRO_CONTROLLER_TYPE_COUNT;
+       type++) {
+    controller = retro_core_view_as_controller (self, type);
+    retro_core_set_default_controller (core, controller);
+    g_object_unref (controller);
+  }
+}
+
+/**
  * retro_core_view_get_input_state:
  * @self: a #RetroCoreView
  * @input: a #RetroInput to query @self
diff --git a/retro-gtk/retro-core-view.h b/retro-gtk/retro-core-view.h
index baaaeb0..b90e089 100644
--- a/retro-gtk/retro-core-view.h
+++ b/retro-gtk/retro-core-view.h
@@ -30,6 +30,8 @@ void retro_core_view_set_filter (RetroCoreView    *self,
                                  RetroVideoFilter  filter);
 RetroController *retro_core_view_as_controller (RetroCoreView       *self,
                                                 RetroControllerType  controller_type);
+void retro_core_view_set_as_default_controller (RetroCoreView *self,
+                                                RetroCore     *core);
 gint16 retro_core_view_get_input_state (RetroCoreView *self,
                                         RetroInput    *input);
 guint64 retro_core_view_get_controller_capabilities (RetroCoreView *self);


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