static void meh_screen_mapping_next_screen(App* app, Screen* screen) { g_assert(app != NULL); g_assert(screen != NULL); MappingData* data = meh_screen_mapping_get_data(screen); g_assert(data != NULL); /* build the mapping object */ Mapping* mapping = meh_model_mapping_new(data->device_configuring->text, data->up, data->down, data->left, data->right, data->start, data->select, data->a, data->b, data->l, data->r); /* delete an eventual mapping with the same id */ meh_db_delete_mapping(app->db, data->device_configuring->text); /* save the created mapping */ meh_db_save_mapping(app->db, mapping); /* re-assign the mapping */ meh_input_manager_assign_mapping(app->db, app->input_manager); /* create the child screen */ Screen* platform_screen = meh_screen_platform_list_new(app); Screen* fade_screen = meh_screen_fade_new(app, screen, platform_screen); meh_app_set_current_screen(app, fade_screen, TRUE); /* NOTE we don't free the memory of the starting screen, the fade screen * will do it. */ }
static void meh_screen_starting_go_to_next_screen(App* app, Screen* screen) { g_assert(app != NULL); g_assert(screen != NULL); /* create and switch to the platform list screen * if we don't need to configure a mapping */ if (meh_input_manager_has_something_plugged(app->input_manager) && !app->flags.configure_mapping) { Screen* platform_list_screen = meh_screen_platform_list_new(app); Screen* fade_screen = meh_screen_fade_new(app, screen, platform_list_screen); meh_app_set_current_screen(app, fade_screen, TRUE); } else { Screen* mapping_screen = meh_screen_mapping_new(app); Screen* fade_screen = meh_screen_fade_new(app, screen, mapping_screen); meh_app_set_current_screen(app, fade_screen, TRUE); } /* NOTE we don't free the memory of the starting screen, the fade screen * will do it. */ }