Cleanup menu_action.c

This commit is contained in:
twinaphex 2014-10-16 17:19:48 +02:00
parent 97f26dfae1
commit be4c043735
3 changed files with 47 additions and 76 deletions

View File

@ -20,7 +20,7 @@
#include "menu_entries.h" #include "menu_entries.h"
#include "menu_shader.h" #include "menu_shader.h"
static int setting_handler( int setting_handler(
rarch_setting_t *setting, unsigned action) rarch_setting_t *setting, unsigned action)
{ {
switch (action) switch (action)
@ -53,24 +53,6 @@ static int setting_handler(
return 0; return 0;
} }
int menu_action_setting_boolean(
rarch_setting_t *setting, unsigned action)
{
return setting_handler(setting, action);
}
int menu_action_setting_unsigned_integer(
rarch_setting_t *setting, unsigned action)
{
return setting_handler(setting, action);
}
int menu_action_setting_fraction(
rarch_setting_t *setting, unsigned action)
{
return setting_handler(setting, action);
}
int menu_action_setting_set_current_string( int menu_action_setting_set_current_string(
rarch_setting_t *setting, const char *str) rarch_setting_t *setting, const char *str)
{ {
@ -155,58 +137,53 @@ int menu_action_handle_setting(rarch_setting_t *setting,
if (!setting) if (!setting)
return -1; return -1;
if (setting->type == ST_BOOL) switch (setting->type)
return menu_action_setting_boolean(setting, action);
if (setting->type == ST_UINT)
return menu_action_setting_unsigned_integer(setting, action);
if (setting->type == ST_FLOAT)
return menu_action_setting_fraction(setting, action);
if (setting->type == ST_PATH)
return menu_entries_set_current_path_selection(setting,
setting->default_value.string, setting->name, type, action);
if (setting->type == ST_DIR)
{ {
switch (action) case ST_BOOL:
{ case ST_UINT:
case MENU_ACTION_START: case ST_FLOAT:
*setting->value.string = '\0'; return setting_handler(setting, action);
case ST_PATH:
return menu_entries_set_current_path_selection(setting,
setting->default_value.string, setting->name, type, action);
case ST_DIR:
switch (action)
{
case MENU_ACTION_START:
*setting->value.string = '\0';
if (setting->change_handler) if (setting->change_handler)
setting->change_handler(setting); setting->change_handler(setting);
if (setting->flags & SD_FLAG_EXIT if (setting->flags & SD_FLAG_EXIT
&& setting->cmd_trigger.triggered) && setting->cmd_trigger.triggered)
{ {
setting->cmd_trigger.triggered = false; setting->cmd_trigger.triggered = false;
return -1; return -1;
} }
break; break;
} }
break;
return 0; case ST_STRING:
} switch (action)
{
if (setting->type == ST_STRING) case MENU_ACTION_LEFT:
{ case MENU_ACTION_RIGHT:
switch (action) if (setting->action_toggle)
{ return setting->action_toggle(setting, action);
case MENU_ACTION_LEFT: break;
case MENU_ACTION_RIGHT: case MENU_ACTION_START:
if (setting->action_toggle) if (setting->action_start)
return setting->action_toggle(setting, action); return setting->action_start(setting);
break; break;
case MENU_ACTION_START: case MENU_ACTION_OK:
if (setting->action_start) if (setting->action_ok)
return setting->action_start(setting); return setting->action_ok(setting, action);
break; break;
case MENU_ACTION_OK: }
if (setting->action_ok) break;
return setting->action_ok(setting, action); default:
break; break;
}
return 0;
} }
return 0; return 0;

View File

@ -23,13 +23,7 @@
extern "C" { extern "C" {
#endif #endif
int menu_action_setting_boolean( int setting_handler(
rarch_setting_t *setting, unsigned action);
int menu_action_setting_fraction(
rarch_setting_t *setting, unsigned action);
int menu_action_setting_unsigned_integer(
rarch_setting_t *setting, unsigned action); rarch_setting_t *setting, unsigned action);
int menu_action_set_current_string_based_on_label( int menu_action_set_current_string_based_on_label(

View File

@ -917,7 +917,7 @@ static int action_toggle_shader_filter_default(unsigned type, const char *label,
rarch_setting_t *current_setting = NULL; rarch_setting_t *current_setting = NULL;
if ((current_setting = setting_data_find_setting( if ((current_setting = setting_data_find_setting(
driver.menu->list_settings, "video_smooth"))) driver.menu->list_settings, "video_smooth")))
menu_action_setting_boolean(current_setting, action); setting_handler(current_setting, action);
#endif #endif
return 0; return 0;
} }