[retro-gtk] core: Move the module to the C part of Core
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [retro-gtk] core: Move the module to the C part of Core
- Date: Thu, 3 Aug 2017 12:07:46 +0000 (UTC)
commit bdd79bf938287f14988c4a27c65e96eff05dc3dd
Author: Adrien Plazas <kekun plazas laposte net>
Date: Thu Aug 3 01:07:39 2017 +0200
core: Move the module to the C part of Core
This prepares the port of Module to C.
https://bugzilla.gnome.org/show_bug.cgi?id=777489
retro-gtk/core.vala | 1 -
retro-gtk/retro-core.c | 94 ++++++++++++++++++++++++++++++-----------
retro-gtk/retro-core.h | 1 +
retro-gtk/retro-environment.c | 10 ++++-
4 files changed, 78 insertions(+), 28 deletions(-)
---
diff --git a/retro-gtk/core.vala b/retro-gtk/core.vala
index 27fa302..b43c3d9 100644
--- a/retro-gtk/core.vala
+++ b/retro-gtk/core.vala
@@ -158,7 +158,6 @@ public class Core : Object {
*/
public signal bool message (string message, uint frames);
- internal Module module;
internal Variables variables_interface;
internal void *environment_internal;
diff --git a/retro-gtk/retro-core.c b/retro-gtk/retro-core.c
index ba64a64..32b6ef2 100644
--- a/retro-gtk/retro-core.c
+++ b/retro-gtk/retro-core.c
@@ -287,6 +287,7 @@ static gboolean
retro_core_load_game (RetroCore *self,
RetroGameInfo *game)
{
+ RetroCoreEnvironmentInternal *internal;
RetroUnloadGame unload_game;
RetroLoadGame load_game;
RetroGetSystemAvInfo get_system_av_info;
@@ -296,18 +297,20 @@ retro_core_load_game (RetroCore *self,
g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (game != NULL, FALSE);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
if (retro_core_get_game_loaded (self)) {
retro_core_push_cb_data (self);
- unload_game = retro_module_get_unload_game (self->module);
+ unload_game = retro_module_get_unload_game (internal->module);
unload_game ();
retro_core_pop_cb_data ();
}
retro_core_push_cb_data (self);
- load_game = retro_module_get_load_game (self->module);
+ load_game = retro_module_get_load_game (internal->module);
game_loaded = load_game (game);
retro_core_set_game_loaded (self, game_loaded);
- get_system_av_info = retro_module_get_get_system_av_info (self->module);
+ get_system_av_info = retro_module_get_get_system_av_info (internal->module);
get_system_av_info (&info);
retro_core_set_system_av_info (self, &info);
retro_core_pop_cb_data ();
@@ -317,6 +320,7 @@ retro_core_load_game (RetroCore *self,
static gboolean
retro_core_prepare (RetroCore* self) {
+ RetroCoreEnvironmentInternal *internal;
RetroLoadGame load_game;
RetroGetSystemAvInfo get_system_av_info;
gboolean game_loaded;
@@ -324,11 +328,13 @@ retro_core_prepare (RetroCore* self) {
g_return_val_if_fail (self != NULL, FALSE);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- load_game = retro_module_get_load_game (self->module);
+ load_game = retro_module_get_load_game (internal->module);
game_loaded = load_game (NULL);
retro_core_set_game_loaded (self, game_loaded);
- get_system_av_info = retro_module_get_get_system_av_info (self->module);
+ get_system_av_info = retro_module_get_get_system_av_info (internal->module);
get_system_av_info (&info);
retro_core_set_system_av_info (self, &info);
retro_core_pop_cb_data ();
@@ -413,13 +419,16 @@ retro_core_load_medias (RetroCore* self,
guint
retro_core_get_api_version_real (RetroCore *self)
{
+ RetroCoreEnvironmentInternal *internal;
guint result;
RetroApiVersion api_version;
g_return_val_if_fail (self != NULL, 0U);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- api_version = retro_module_get_api_version (self->module);
+ api_version = retro_module_get_api_version (internal->module);
result = api_version ();
retro_core_pop_cb_data ();
@@ -431,13 +440,16 @@ 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 (self->module);
+ get_system_info = retro_module_get_get_system_info (internal->module);
get_system_info (system_info);
retro_core_pop_cb_data ();
}
@@ -450,6 +462,7 @@ void
retro_core_constructor (RetroCore *self,
const gchar *file_name)
{
+ RetroCoreEnvironmentInternal *internal;
GFile *file;
GFile *relative_path_file;
gchar *libretro_path;
@@ -458,7 +471,8 @@ retro_core_constructor (RetroCore *self,
retro_core_set_file_name (self, file_name);
- self->environment_internal = g_new0 (RetroCoreEnvironmentInternal, 1);
+ internal = g_new0 (RetroCoreEnvironmentInternal, 1);
+ self->environment_internal = internal;
file = g_file_new_for_path (file_name);
relative_path_file = g_file_resolve_relative_path (file, "");
@@ -470,7 +484,7 @@ retro_core_constructor (RetroCore *self,
g_object_unref (relative_path_file);
retro_core_set_libretro_path (self, libretro_path);
- self->module = retro_module_new (libretro_path);
+ internal->module = retro_module_new (libretro_path);
g_free (libretro_path);
@@ -492,10 +506,10 @@ retro_core_destructor (RetroCore *self)
retro_core_push_cb_data (self);
if (retro_core_get_game_loaded (self)) {
- unload_game = retro_module_get_unload_game (self->module);
+ unload_game = retro_module_get_unload_game (internal->module);
unload_game ();
}
- deinit = retro_module_get_deinit (self->module);
+ deinit = retro_module_get_deinit (internal->module);
deinit ();
retro_core_pop_cb_data ();
@@ -511,15 +525,18 @@ void
retro_core_init (RetroCore *self,
GError **error)
{
+ RetroCoreEnvironmentInternal *internal;
RetroInit init;
GError *tmp_error = NULL;
g_return_if_fail (self != NULL);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_set_environment_interface (self);
retro_core_push_cb_data (self);
- init = retro_module_get_init (self->module);
+ init = retro_module_get_init (internal->module);
init ();
retro_core_pop_cb_data ();
@@ -601,12 +618,15 @@ retro_core_set_controller_port_device (RetroCore *self,
guint port,
RetroDeviceType device)
{
+ RetroCoreEnvironmentInternal *internal;
RetroSetControllerPortDevice set_controller_port_device;
g_return_if_fail (self != NULL);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- set_controller_port_device = retro_module_get_set_controller_port_device (self->module);
+ set_controller_port_device = retro_module_get_set_controller_port_device (internal->module);
set_controller_port_device (port, device);
retro_core_pop_cb_data ();
}
@@ -614,12 +634,15 @@ retro_core_set_controller_port_device (RetroCore *self,
void
retro_core_reset (RetroCore* self)
{
+ RetroCoreEnvironmentInternal *internal;
RetroReset reset;
g_return_if_fail (self != NULL);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- reset = retro_module_get_reset (self->module);
+ reset = retro_module_get_reset (internal->module);
reset ();
retro_core_pop_cb_data ();
}
@@ -627,12 +650,15 @@ retro_core_reset (RetroCore* self)
void
retro_core_run (RetroCore* self)
{
+ RetroCoreEnvironmentInternal *internal;
RetroRun run;
g_return_if_fail (self != NULL);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- run = retro_module_get_run (self->module);
+ run = retro_module_get_run (internal->module);
run ();
retro_core_pop_cb_data ();
}
@@ -640,13 +666,16 @@ retro_core_run (RetroCore* self)
gboolean
retro_core_supports_serialization (RetroCore *self)
{
+ RetroCoreEnvironmentInternal *internal;
RetroSerializeSize serialize_size = NULL;
gsize size;
g_return_val_if_fail (self != NULL, FALSE);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- serialize_size = retro_module_get_serialize_size (self->module);
+ serialize_size = retro_module_get_serialize_size (internal->module);
size = serialize_size ();
retro_core_pop_cb_data ();
@@ -658,6 +687,7 @@ retro_core_serialize_state (RetroCore *self,
gsize *length,
GError **error)
{
+ RetroCoreEnvironmentInternal *internal;
RetroSerializeSize serialize_size = NULL;
RetroSerialize serialize = NULL;
guint8 *data;
@@ -667,7 +697,9 @@ retro_core_serialize_state (RetroCore *self,
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (length != NULL, NULL);
- serialize_size = retro_module_get_serialize_size (self->module);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ serialize_size = retro_module_get_serialize_size (internal->module);
retro_core_push_cb_data (self);
size = serialize_size ();
@@ -682,7 +714,7 @@ retro_core_serialize_state (RetroCore *self,
return NULL;
}
- serialize = retro_module_get_serialize (self->module);
+ serialize = retro_module_get_serialize (internal->module);
data = g_new0 (guint8, size);
retro_core_push_cb_data (self);
@@ -710,6 +742,7 @@ retro_core_deserialize_state (RetroCore *self,
gsize length,
GError **error)
{
+ RetroCoreEnvironmentInternal *internal;
RetroSerializeSize serialize_size = NULL;
RetroUnserialize unserialize = NULL;
gsize size;
@@ -718,7 +751,9 @@ retro_core_deserialize_state (RetroCore *self,
g_return_if_fail (self != NULL);
g_return_if_fail (data != NULL);
- serialize_size = retro_module_get_serialize_size (self->module);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ serialize_size = retro_module_get_serialize_size (internal->module);
retro_core_push_cb_data (self);
size = serialize_size ();
@@ -742,7 +777,7 @@ retro_core_deserialize_state (RetroCore *self,
return;
}
- unserialize = retro_module_get_unserialize (self->module);
+ unserialize = retro_module_get_unserialize (internal->module);
retro_core_push_cb_data (self);
success = unserialize (data, length);
@@ -760,13 +795,16 @@ gsize
retro_core_get_memory_size (RetroCore *self,
RetroMemoryType id)
{
+ RetroCoreEnvironmentInternal *internal;
gsize size;
RetroGetMemorySize get_memory_size;
g_return_val_if_fail (self != NULL, 0UL);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
retro_core_push_cb_data (self);
- get_memory_size = retro_module_get_get_memory_size (self->module);
+ get_memory_size = retro_module_get_get_memory_size (internal->module);
size = get_memory_size (id);
retro_core_pop_cb_data ();
@@ -778,6 +816,7 @@ retro_core_get_memory (RetroCore *self,
RetroMemoryType id,
gint *length)
{
+ RetroCoreEnvironmentInternal *internal;
RetroGetMemoryData get_mem_data;
RetroGetMemorySize get_mem_size;
guint8 *data;
@@ -786,8 +825,10 @@ retro_core_get_memory (RetroCore *self,
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (length != NULL, NULL);
- get_mem_data = retro_module_get_get_memory_data (self->module);
- get_mem_size = retro_module_get_get_memory_size (self->module);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ get_mem_data = retro_module_get_get_memory_data (internal->module);
+ get_mem_size = retro_module_get_get_memory_size (internal->module);
retro_core_push_cb_data (self);
data = get_mem_data (id);
@@ -806,6 +847,7 @@ retro_core_set_memory (RetroCore *self,
guint8 *data,
gint length)
{
+ RetroCoreEnvironmentInternal *internal;
RetroGetMemoryData get_mem_region;
RetroGetMemorySize get_mem_region_size;
guint8 *memory_region;
@@ -815,8 +857,10 @@ retro_core_set_memory (RetroCore *self,
g_return_if_fail (data != NULL);
g_return_if_fail (length > 0);
- get_mem_region = retro_module_get_get_memory_data (self->module);
- get_mem_region_size = retro_module_get_get_memory_size (self->module);
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ get_mem_region = retro_module_get_get_memory_data (internal->module);
+ get_mem_region_size = retro_module_get_get_memory_size (internal->module);
retro_core_push_cb_data (self);
memory_region = get_mem_region (id);
diff --git a/retro-gtk/retro-core.h b/retro-gtk/retro-core.h
index a971a93..eaa3a3c 100644
--- a/retro-gtk/retro-core.h
+++ b/retro-gtk/retro-core.h
@@ -17,6 +17,7 @@ typedef struct {
typedef struct _RetroCoreEnvironmentInternal RetroCoreEnvironmentInternal;
struct _RetroCoreEnvironmentInternal {
+ RetroModule *module;
gchar **media_uris;
gfloat aspect_ratio;
gboolean overscan;
diff --git a/retro-gtk/retro-environment.c b/retro-gtk/retro-environment.c
index a9a7a99..bc63b40 100644
--- a/retro-gtk/retro-environment.c
+++ b/retro-gtk/retro-environment.c
@@ -549,10 +549,13 @@ on_input_state (guint port,
void
retro_core_set_environment_interface (RetroCore *self)
{
+ RetroCoreEnvironmentInternal *internal;
RetroModule *module;
RetroCallbackSetter set_environment;
- module = self->module;
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ module = internal->module;
set_environment = retro_module_get_set_environment (module);
retro_core_push_cb_data (self);
@@ -564,6 +567,7 @@ retro_core_set_environment_interface (RetroCore *self)
void
retro_core_set_callbacks (RetroCore *self)
{
+ RetroCoreEnvironmentInternal *internal;
RetroModule *module;
RetroCallbackSetter set_video_refresh;
RetroCallbackSetter set_audio_sample;
@@ -571,7 +575,9 @@ retro_core_set_callbacks (RetroCore *self)
RetroCallbackSetter set_input_poll;
RetroCallbackSetter set_input_state;
- module = self->module;
+ internal = RETRO_CORE_ENVIRONMENT_INTERNAL (self);
+
+ module = internal->module;
set_video_refresh = retro_module_get_set_video_refresh (module);
set_audio_sample = retro_module_get_set_audio_sample (module);
set_audio_sample_batch = retro_module_get_set_audio_sample_batch (module);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]