Ejemplo n.º 1
0
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. */
}
Ejemplo n.º 2
0
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. */
}