static Itdb_ArtworkFormat *g_value_to_image_format (GValue *value) { GHashTable *dict; Itdb_ArtworkFormat *img_spec; g_return_val_if_fail (G_VALUE_HOLDS (value, G_TYPE_HASH_TABLE), NULL); dict = g_value_get_boxed (value); g_return_val_if_fail (dict != NULL, NULL); img_spec = g_new0 (Itdb_ArtworkFormat, 1); if (img_spec == NULL) { return NULL; } if (!set_pixel_format (img_spec, dict)) { g_free (img_spec); return NULL; } set_back_color (img_spec, dict); dict_to_struct (dict, sysinfo_image_format_fields_mapping, img_spec); if (get_boolean (dict, "AlignRowBytes") && (img_spec->row_bytes_alignment == 0)) { /* at least the nano3g has the AlignRowBytes key with no * RowBytesAlignment key. */ img_spec->row_bytes_alignment = 4; } return img_spec; }
static gboolean environment_core_command (RetroCore *self, unsigned cmd, gpointer data) { if (!self) return FALSE; switch (cmd) { case RETRO_ENVIRONMENT_GET_CAN_DUPE: return get_can_dupe (self, (gboolean *) data); case RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY: return get_content_directory (self, (const gchar **) data); case RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES: return get_input_device_capabilities (self, (guint64 *) data); case RETRO_ENVIRONMENT_GET_LANGUAGE: return get_language (self, (unsigned *) data); case RETRO_ENVIRONMENT_GET_LIBRETRO_PATH: return get_libretro_path (self, (const gchar **) data); case RETRO_ENVIRONMENT_GET_LOG_INTERFACE: return get_log_callback (self, (RetroLogCallback *) data); case RETRO_ENVIRONMENT_GET_OVERSCAN: return get_overscan (self, (gboolean *) data); case RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE: return get_rumble_callback (self, (RetroRumbleCallback *) data); case RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY: return get_save_directory (self, (const gchar **) data); case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY: return get_system_directory (self, (const gchar **) data); case RETRO_ENVIRONMENT_GET_VARIABLE: return get_variable (self, (RetroVariable *) data); case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE: return get_variable_update (self, (bool *) data); case RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE: return set_disk_control_interface (self, (RetroDiskControlCallback *) data); case RETRO_ENVIRONMENT_SET_GEOMETRY: return set_geometry (self, (RetroGameGeometry *) data); case RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS: return set_input_descriptors (self, (RetroInputDescriptor *) data); case RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK: return set_keyboard_callback (self, (RetroKeyboardCallback *) data); case RETRO_ENVIRONMENT_SET_MESSAGE: return set_message (self, (RetroMessage *) data); case RETRO_ENVIRONMENT_SET_PIXEL_FORMAT: return set_pixel_format (self, (RetroPixelFormat *) data); case RETRO_ENVIRONMENT_SET_ROTATION: return set_rotation (self, (RetroRotation *) data); case RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME: return set_support_no_game (self, (gboolean *) data); case RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO: return set_system_av_info (self, (RetroSystemAvInfo *) data); case RETRO_ENVIRONMENT_SET_VARIABLES: return set_variables (self, (RetroVariable *) data); case RETRO_ENVIRONMENT_SHUTDOWN: return shutdown (self); case RETRO_ENVIRONMENT_GET_CAMERA_INTERFACE: case RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER: case RETRO_ENVIRONMENT_GET_HW_RENDER_INTERFACE: case RETRO_ENVIRONMENT_GET_LOCATION_INTERFACE: case RETRO_ENVIRONMENT_GET_PERF_INTERFACE: case RETRO_ENVIRONMENT_GET_SENSOR_INTERFACE: case RETRO_ENVIRONMENT_GET_USERNAME: case RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK: case RETRO_ENVIRONMENT_SET_CONTROLLER_INFO: case RETRO_ENVIRONMENT_SET_FRAME_TIME_CALLBACK: case RETRO_ENVIRONMENT_SET_HW_RENDER: case RETRO_ENVIRONMENT_SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE: case RETRO_ENVIRONMENT_SET_MEMORY_MAPS: case RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL: case RETRO_ENVIRONMENT_SET_PROC_ADDRESS_CALLBACK: case RETRO_ENVIRONMENT_SET_SERIALIZATION_QUIRKS: case RETRO_ENVIRONMENT_SET_SUBSYSTEM_INFO: case RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS: default: return FALSE; } }