diff --git a/driver.c b/driver.c index 6c538082cc..e72aa40092 100644 --- a/driver.c +++ b/driver.c @@ -189,6 +189,30 @@ static const input_driver_t *input_drivers[] = { NULL, }; +// JM: This is a very painful function to write, especially because +// we'll have to do it to all the drivers. +const char* config_get_input_driver_options(void) { + int input_option_k = 0; + int input_options_len = 0; + while (input_drivers[input_option_k]) { + const char *opt = input_drivers[input_option_k]->ident; + input_options_len += strlen(opt) + 1; + input_option_k++; + } + uint offset = 0; + char *input_options = (char*)calloc(input_options_len, sizeof(char)); + for (int i = 0; i < input_option_k; i++) { + const char *opt = input_drivers[i]->ident; + strlcpy(input_options + offset, opt, input_options_len - offset); + offset += strlen(opt); + input_options[offset] = '|'; + offset += 1; + } + input_options[input_options_len] = '\0'; + + return input_options; +} + static const input_osk_driver_t *osk_drivers[] = { #ifdef __CELLOS_LV2__ &input_ps3_osk, diff --git a/driver.h b/driver.h index 1dd25c68f8..448f12dbd4 100644 --- a/driver.h +++ b/driver.h @@ -675,6 +675,8 @@ extern input_driver_t input_qnx; extern input_driver_t input_rwebinput; extern input_driver_t input_null; + const char* config_get_input_driver_options(void); + extern camera_driver_t camera_v4l2; extern camera_driver_t camera_android; extern camera_driver_t camera_rwebcam; diff --git a/settings_data.c b/settings_data.c index ee8d7565bf..09ca242c4d 100644 --- a/settings_data.c +++ b/settings_data.c @@ -14,6 +14,7 @@ * If not, see . */ +#include "driver.h" #include "settings_data.h" #include "dynamic.h" #include @@ -2883,30 +2884,6 @@ static bool setting_data_append_list_main_menu_options( return true; } -// JM: This is a very painful function to write, especially because -// we'll have to do it to all the drivers. -const char* config_get_input_driver_options(void) { - int input_option_k = 0; - int input_options_len = 0; - while (input_drivers[input_option_k]) { - const char *opt = input_drivers[input_option_k]->ident; - input_options_len += strlen(opt) + 1; - input_option_k++; - } - uint offset = 0; - char *input_options = (char*)calloc(input_options_len, sizeof(char)); - for (int i = 0; i < input_option_k; i++) { - const char *opt = input_drivers[i]->ident; - strlcpy(input_options + offset, opt, input_options_len - offset); - offset += strlen(opt); - input_options[offset] = '|'; - offset += 1; - } - input_options[input_options_len] = '\0'; - - return input_options; -} - static bool setting_data_append_list_driver_options( rarch_setting_t **list, rarch_setting_info_t *list_info)