[retro-gtk] core: Remove the system-info property



commit d2d00f29f0ad2673a2ac75bd1d70889b1d76dbc7
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Thu Aug 3 11:36:23 2017 +0200

    core: Remove the system-info property
    
    It is barely used and it is better to not expose it and only use it
    internally, to expose a simpler, higher level API.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777489

 retro-gtk/core.vala           |   13 -------
 retro-gtk/retro-core.c        |   77 ++++++++++++++++++++++++++++------------
 retro-gtk/retro-core.h        |    1 +
 retro-gtk/retro-environment.c |    6 ++--
 4 files changed, 58 insertions(+), 39 deletions(-)
---
diff --git a/retro-gtk/core.vala b/retro-gtk/core.vala
index b43c3d9..e969d5d 100644
--- a/retro-gtk/core.vala
+++ b/retro-gtk/core.vala
@@ -40,19 +40,6 @@ public class Core : Object {
                get { return get_api_version_real (); }
        }
 
-
-       private extern SystemInfo get_system_info_real (out unowned SystemInfo system_info);
-       /**
-        * The system informations.
-        */
-       public SystemInfo system_info {
-               get {
-                       unowned SystemInfo info;
-                       get_system_info_real (out info);
-                       return info;
-               }
-       }
-
        /**
         * The file name of the module.
         */
diff --git a/retro-gtk/retro-core.c b/retro-gtk/retro-core.c
index 32b6ef2..46ca8d2 100644
--- a/retro-gtk/retro-core.c
+++ b/retro-gtk/retro-core.c
@@ -78,6 +78,58 @@ retro_core_get_cb_data (void)
   return result;
 }
 
+/**
+ * retro_core_get_system_info:
+ * @self: A #RetroCore
+ * @system_info: (out) (transfer none): A location for a #RetroSystemInfo
+ *
+ * Gives basic informations on how to handle the Libretro core.
+ */
+static void
+retro_core_get_system_info (RetroCore       *self,
+                            RetroSystemInfo *system_info)
+{
+  RetroCoreEnvironmentInternal *internal;
+  RetroGetSystemInfo get_system_info;
+
+  g_return_if_fail (self != NULL);
+  g_return_if_fail (system_info != NULL);
+
+  internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+  retro_core_push_cb_data (self);
+  get_system_info = retro_module_get_get_system_info (internal->module);
+  get_system_info (system_info);
+  retro_core_pop_cb_data ();
+}
+
+static gboolean
+retro_core_get_needs_full_path (RetroCore *self)
+{
+  RetroSystemInfo system_info = { 0 };
+
+  retro_core_get_system_info (self, &system_info);
+
+  return system_info.need_fullpath;
+}
+
+// FIXME Make static as soon as possible.
+/**
+ * retro_core_get_name:
+ * @self: A #RetroCore
+ *
+ * Returns: (transfer none): The name of the Libretro core.
+ */
+gchar *
+retro_core_get_name (RetroCore *self)
+{
+  RetroSystemInfo system_info = { 0 };
+
+  retro_core_get_system_info (self, &system_info);
+
+  return system_info.library_name;
+}
+
 static void
 init_controller_device (guint             port,
                         RetroInputDevice *device,
@@ -236,8 +288,7 @@ retro_core_load_discs (RetroCore  *self,
     return;
   }
 
-  retro_core_get_system_info (self, &system_info);
-  fullpath = system_info.need_fullpath;
+  fullpath = retro_core_get_needs_full_path (self);
   for (index = 0; index < length; index++) {
     file = g_file_new_for_uri (internal->media_uris[index]);
     path = g_file_get_path (file);
@@ -370,8 +421,7 @@ retro_core_load_medias (RetroCore* self,
   uri = g_strdup (internal->media_uris[0]);
   file = g_file_new_for_uri (uri);
   path = g_file_get_path (file);
-  retro_core_get_system_info (self, &system_info);
-  fullpath = system_info.need_fullpath;
+  fullpath = retro_core_get_needs_full_path (self);
   if (fullpath) {
     retro_game_info_destroy (&game_info);
     retro_game_info_init (&game_info, path);
@@ -435,25 +485,6 @@ retro_core_get_api_version_real (RetroCore *self)
   return result;
 }
 
-// FIXME Make static as soon as possible.
-void
-retro_core_get_system_info_real (RetroCore       *self,
-                                 RetroSystemInfo *system_info)
-{
-  RetroCoreEnvironmentInternal *internal;
-  RetroGetSystemInfo get_system_info;
-
-  g_return_if_fail (self != NULL);
-  g_return_if_fail (system_info != NULL);
-
-  internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
-
-  retro_core_push_cb_data (self);
-  get_system_info = retro_module_get_get_system_info (internal->module);
-  get_system_info (system_info);
-  retro_core_pop_cb_data ();
-}
-
 void retro_core_set_environment_interface (RetroCore *self);
 void retro_core_set_callbacks (RetroCore *self);
 
diff --git a/retro-gtk/retro-core.h b/retro-gtk/retro-core.h
index 1dde4e5..b8a9427 100644
--- a/retro-gtk/retro-core.h
+++ b/retro-gtk/retro-core.h
@@ -29,6 +29,7 @@ struct _RetroCoreEnvironmentInternal {
   RetroKeyboardCallback keyboard_callback;
 };
 
+gchar *retro_core_get_name (RetroCore *self);
 void retro_core_set_system_av_info (RetroCore         *self,
                                     RetroSystemAvInfo *system_av_info);
 void retro_core_set_controller_port_device (RetroCore       *self,
diff --git a/retro-gtk/retro-environment.c b/retro-gtk/retro-environment.c
index bc63b40..301013b 100644
--- a/retro-gtk/retro-environment.c
+++ b/retro-gtk/retro-environment.c
@@ -54,6 +54,7 @@ on_log (guint level, const gchar *format, ...)
 {
   RetroCore *self;
   RetroSystemInfo info = { 0 };
+  const gchar *log_domain;
   GLogLevelFlags log_level;
   gchar *message;
   va_list args;
@@ -91,9 +92,8 @@ on_log (guint level, const gchar *format, ...)
   va_start (args, format);
   message = g_strdup_vprintf (format, args);
 
-  retro_core_get_system_info (self, &info);
-
-  g_signal_emit_by_name (self, "log", info.library_name, log_level, message);
+  log_domain = retro_core_get_name (self);
+  g_signal_emit_by_name (self, "log", log_domain, log_level, message);
 
   g_free (message);
 }


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