[retro-gtk] core: Remove the system-info property
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [retro-gtk] core: Remove the system-info property
- Date: Thu, 3 Aug 2017 12:07:57 +0000 (UTC)
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]