コード例 #1
0
ファイル: retro-environment.c プロジェクト: GNOME/retro-gtk
// TODO This is internal, make it private as soon as possible.
void
retro_core_set_callbacks (RetroCore *self)
{
  RetroModule *module;
  RetroCallbackSetter set_video_refresh;
  RetroCallbackSetter set_audio_sample;
  RetroCallbackSetter set_audio_sample_batch;
  RetroCallbackSetter set_input_poll;
  RetroCallbackSetter set_input_state;

  module = self->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);
  set_input_poll = retro_module_get_set_input_poll (module);
  set_input_state = retro_module_get_set_input_state (module);

  retro_core_push_cb_data (self);
  set_video_refresh (on_video_refresh);
  set_audio_sample (on_audio_sample);
  set_audio_sample_batch (on_audio_sample_batch);
  set_input_poll (on_input_poll);
  set_input_state (on_input_state);
  retro_core_pop_cb_data ();
}
コード例 #2
0
ファイル: retro-environment.c プロジェクト: GNOME/retro-gtk
// TODO This is internal, make it private as soon as possible.
void
retro_core_set_environment_interface (RetroCore *self)
{
  RetroModule *module;
  RetroCallbackSetter set_environment;

  module = self->module;
  set_environment = retro_module_get_set_environment (module);

  retro_core_push_cb_data (self);
  set_environment (on_environment_interface);
  retro_core_pop_cb_data ();
}
コード例 #3
0
guint8* retro_core_get_memory (RetroCore* self, RetroMemoryType id, int* length) {
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (length != NULL, NULL);

	retro_core_push_cb_data (self);

	RetroModule* module = self->module;

	RetroGetMemoryData get_mem_data = retro_module_get_get_memory_data (module);
	RetroGetMemorySize get_mem_size = retro_module_get_get_memory_size (module);

	guint8* data = get_mem_data (id);
	gsize size = get_mem_size (id);

	retro_core_pop_cb_data ();

	data = g_memdup (data, size);
	*length = (gint) (data ? size : 0);

	return data;
}
コード例 #4
0
void retro_core_set_memory (RetroCore* self, RetroMemoryType id, guint8* data, int length) {
	g_return_if_fail (self != NULL);
	g_return_if_fail (data != NULL);
	g_return_if_fail (length > 0);

	retro_core_push_cb_data (self);

	RetroModule* module = self->module;

	RetroGetMemoryData get_mem_region = retro_module_get_get_memory_data (module);
	RetroGetMemorySize get_mem_region_size = retro_module_get_get_memory_size (module);

	guint8* memory_region = get_mem_region (id);
	gsize memory_region_size = get_mem_region_size (id);

	retro_core_pop_cb_data ();

	g_return_if_fail (memory_region != NULL);
	g_return_if_fail (memory_region_size == length);

	memcpy (memory_region, data, length);
}