[retro-gtk/wip/aplazas/disk] core: Move usage of DiskControl to C



commit ded5b32c78cc57c0b3d3205f386b8223785cae5e
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Thu Aug 31 08:46:38 2017 +0200

    core: Move usage of DiskControl to C
    
    This will help porting DiskControl to C.

 retro-gtk/core.vala           |    7 -------
 retro-gtk/retro-core.c        |    9 +++++----
 retro-gtk/retro-core.h        |    1 +
 retro-gtk/retro-environment.c |    3 +--
 4 files changed, 7 insertions(+), 13 deletions(-)
---
diff --git a/retro-gtk/core.vala b/retro-gtk/core.vala
index e969d5d..ab07277 100644
--- a/retro-gtk/core.vala
+++ b/retro-gtk/core.vala
@@ -85,13 +85,6 @@ public class Core : Object {
                get { return _frames_per_second; }
        }
 
-       /**
-        * The disk controlling interface.
-        *
-        * The Core can set it to let the frontend insert and eject disks images.
-        */
-       internal DiskControl disk_control_interface { set; get; }
-
        private weak Input _input_interface;
        private ulong input_controller_connected_id;
        private ulong input_controller_disconnected_id;
diff --git a/retro-gtk/retro-core.c b/retro-gtk/retro-core.c
index 46ca8d2..a784e6b 100644
--- a/retro-gtk/retro-core.c
+++ b/retro-gtk/retro-core.c
@@ -261,7 +261,9 @@ retro_core_load_discs (RetroCore  *self,
 
   g_return_if_fail (self != NULL);
 
-  disk_control = retro_core_get_disk_control_interface (self);
+  internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+  disk_control = internal->disk_control_interface;
 
   retro_disk_control_set_eject_state (disk_control, TRUE, &tmp_error);
   if (G_UNLIKELY (tmp_error != NULL)) {
@@ -270,7 +272,6 @@ retro_core_load_discs (RetroCore  *self,
     return;
   }
 
-  internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
   length = g_strv_length (internal->media_uris);
   while (retro_disk_control_get_num_images (disk_control, &tmp_error) < length &&
          (tmp_error != NULL)) {
@@ -447,7 +448,7 @@ retro_core_load_medias (RetroCore* self,
 
     return;
   }
-  if (retro_core_get_disk_control_interface (self) != NULL) {
+  if (internal->disk_control_interface != NULL) {
     retro_core_load_discs (self, &tmp_error);
     if (G_UNLIKELY (tmp_error != NULL)) {
       g_propagate_error (error, tmp_error);
@@ -617,7 +618,7 @@ retro_core_set_current_media (RetroCore  *self,
 
   g_return_if_fail (media_index < length);
 
-  disk_control = retro_core_get_disk_control_interface (self);
+  disk_control = internal->disk_control_interface;
 
   if (disk_control == NULL)
     return;
diff --git a/retro-gtk/retro-core.h b/retro-gtk/retro-core.h
index f4bd94e..31e44ce 100644
--- a/retro-gtk/retro-core.h
+++ b/retro-gtk/retro-core.h
@@ -19,6 +19,7 @@ typedef struct _RetroCoreEnvironmentInternal RetroCoreEnvironmentInternal;
 
 struct _RetroCoreEnvironmentInternal {
   RetroModule *module;
+  RetroDiskControl *disk_control_interface;
   gchar **media_uris;
   RetroSystemInfo *system_info;
   gfloat aspect_ratio;
diff --git a/retro-gtk/retro-environment.c b/retro-gtk/retro-environment.c
index 301013b..d731838 100644
--- a/retro-gtk/retro-environment.c
+++ b/retro-gtk/retro-environment.c
@@ -218,8 +218,7 @@ static gboolean
 set_disk_control_interface (RetroCore                *self,
                             RetroDiskControlCallback *callback)
 {
-  // TODO Split this in two lines.
-  retro_core_set_disk_control_interface (self, RETRO_DISK_CONTROL (retro_disk_control_new (self, callback)));
+  RETRO_CORE_ENVIRONMENT_INTERNAL (self)->disk_control_interface = retro_disk_control_new (self, callback);
 
   return TRUE;
 }


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