Update action toggle handler

This commit is contained in:
twinaphex 2015-03-09 04:18:47 +01:00
parent 184879f2bd
commit eb63e78cf6
3 changed files with 20 additions and 14 deletions

View File

@ -54,7 +54,7 @@ static void setting_handler(rarch_setting_t *setting, unsigned action)
case MENU_ACTION_LEFT: case MENU_ACTION_LEFT:
case MENU_ACTION_RIGHT: case MENU_ACTION_RIGHT:
if (setting->action_toggle) if (setting->action_toggle)
setting->action_toggle(setting, action); setting->action_toggle(setting, action, false);
break; break;
case MENU_ACTION_OK: case MENU_ACTION_OK:
if (setting->action_ok) if (setting->action_ok)
@ -79,7 +79,7 @@ int menu_setting_handler(rarch_setting_t *setting, unsigned action)
} }
static int menu_action_handle_setting(rarch_setting_t *setting, static int menu_action_handle_setting(rarch_setting_t *setting,
unsigned type, unsigned action) unsigned type, unsigned action, bool wraparound)
{ {
if (!setting) if (!setting)
return -1; return -1;
@ -128,5 +128,6 @@ int menu_setting_set(unsigned type, const char *label,
if (!setting) if (!setting)
return 0; return 0;
return menu_action_handle_setting(setting, type, action); return menu_action_handle_setting(setting,
type, action, wraparound);
} }

View File

@ -472,7 +472,8 @@ static int setting_data_bind_action_start(void *data)
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
**/ **/
static int setting_data_action_toggle_analog_dpad_mode(void *data, unsigned action) static int setting_data_action_toggle_analog_dpad_mode(void *data,
unsigned action, bool wraparound)
{ {
unsigned port = 0; unsigned port = 0;
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -512,7 +513,7 @@ static int setting_data_action_toggle_analog_dpad_mode(void *data, unsigned acti
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
**/ **/
static int setting_data_action_toggle_libretro_device_type( static int setting_data_action_toggle_libretro_device_type(
void *data, unsigned action) void *data, unsigned action, bool wraparound)
{ {
unsigned current_device, current_idx, i, devices[128], unsigned current_device, current_idx, i, devices[128],
types = 0, port = 0; types = 0, port = 0;
@ -591,7 +592,7 @@ static int setting_data_action_toggle_libretro_device_type(
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
**/ **/
static int setting_data_action_toggle_savestates( static int setting_data_action_toggle_savestates(
void *data, unsigned action) void *data, unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -624,7 +625,8 @@ static int setting_data_action_toggle_savestates(
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
**/ **/
static int setting_data_action_toggle_bind_device(void *data, unsigned action) static int setting_data_action_toggle_bind_device(void *data,
unsigned action, bool wraparound)
{ {
unsigned *p = NULL; unsigned *p = NULL;
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -651,7 +653,8 @@ static int setting_data_action_toggle_bind_device(void *data, unsigned action)
return 0; return 0;
} }
static int setting_data_bool_action_toggle_default(void *data, unsigned action) static int setting_data_bool_action_toggle_default(void *data,
unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -669,7 +672,8 @@ static int setting_data_bool_action_toggle_default(void *data, unsigned action)
return 0; return 0;
} }
static int setting_data_uint_action_toggle_default(void *data, unsigned action) static int setting_data_uint_action_toggle_default(void *data,
unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -706,7 +710,7 @@ static int setting_data_uint_action_toggle_default(void *data, unsigned action)
} }
static int setting_data_fraction_action_toggle_default( static int setting_data_fraction_action_toggle_default(
void *data, unsigned action) void *data, unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -742,7 +746,7 @@ static int setting_data_fraction_action_toggle_default(
} }
static int setting_data_string_action_toggle_driver(void *data, static int setting_data_string_action_toggle_driver(void *data,
unsigned action) unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t*)data; rarch_setting_t *setting = (rarch_setting_t*)data;
@ -762,7 +766,7 @@ static int setting_data_string_action_toggle_driver(void *data,
return 0; return 0;
} }
static int core_list_action_toggle(void *data, unsigned action) static int core_list_action_toggle(void *data, unsigned action, bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t *)data; rarch_setting_t *setting = (rarch_setting_t *)data;
@ -790,7 +794,8 @@ static int core_list_action_toggle(void *data, unsigned action)
* *
* Returns: 0 on success, -1 on error. * Returns: 0 on success, -1 on error.
**/ **/
static int load_content_action_toggle(void *data, unsigned action) static int load_content_action_toggle(void *data, unsigned action,
bool wraparound)
{ {
rarch_setting_t *setting = (rarch_setting_t *)data; rarch_setting_t *setting = (rarch_setting_t *)data;

View File

@ -88,7 +88,7 @@ enum setting_list_flags
#define SL_FLAG_ALL_SETTINGS (SL_FLAG_ALL - SL_FLAG_MAIN_MENU) #define SL_FLAG_ALL_SETTINGS (SL_FLAG_ALL - SL_FLAG_MAIN_MENU)
typedef void (*change_handler_t )(void *data); typedef void (*change_handler_t )(void *data);
typedef int (*action_toggle_handler_t )(void *data, unsigned action); typedef int (*action_toggle_handler_t )(void *data, unsigned action, bool wraparound);
typedef int (*action_up_or_down_handler_t )(void *data, unsigned action); typedef int (*action_up_or_down_handler_t )(void *data, unsigned action);
typedef int (*action_start_handler_t )(void *data); typedef int (*action_start_handler_t )(void *data);
typedef int (*action_iterate_handler_t )(unsigned action); typedef int (*action_iterate_handler_t )(unsigned action);