(Android) Add back button behavior option

This commit is contained in:
twinaphex 2013-03-07 15:21:17 +01:00
parent e07c4872db
commit 6899434609
7 changed files with 37 additions and 0 deletions

View File

@ -367,6 +367,12 @@ static void android_input_poll(void *data)
&& input_state > 0)
{
}
else if (g_settings.input.back_behavior == BACK_BUTTON_MENU_TOGGLE)
{
*lifecycle_state |= (1ULL << RARCH_RMENU_TOGGLE);
AInputQueue_finishEvent(android_app->inputQueue, event, handled);
break;
}
else
{
*lifecycle_state |= (1ULL << RARCH_QUIT_KEY);

View File

@ -1,5 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="back_options">
<item>Quit</item>
<item>Menu toggle</item>
</string-array>
<string-array name="back_options_values">
<item>0</item>
<item>1</item>
</string-array>
<string-array name="aspect_ratios">
<item>Full screen</item>
<item>Auto</item>

View File

@ -187,6 +187,14 @@
</PreferenceCategory>
</PreferenceScreen>
<PreferenceScreen android:title="Input Settings" >
<PreferenceCategory android:title="General" >
<ListPreference
android:entries="@array/back_options"
android:entryValues="@array/back_options_values"
android:key="input_back_behavior"
android:summary="Select how you want the Back button to behave."
android:title="Back behavior" />
</PreferenceCategory>
<PreferenceCategory android:title="Configuration Autodetect" >
<CheckBoxPreference
android:defaultValue="true"

View File

@ -363,6 +363,7 @@ public class RetroArch extends Activity implements
config.setBoolean("video_vsync", prefs.getBoolean("video_vsync", true));
config.setBoolean("input_autodetect_enable", prefs.getBoolean("input_autodetect_enable", true));
config.setBoolean("input_debug_enable", prefs.getBoolean("input_debug_enable", false));
config.setInt("input_back_behavior", Integer.valueOf(prefs.getString("input_back_behavior", "0")));
config.setInt("input_autodetect_icade_profile_pad1", Integer.valueOf(prefs.getString("input_autodetect_icade_profile_pad1", "0")));
config.setInt("input_autodetect_icade_profile_pad2", Integer.valueOf(prefs.getString("input_autodetect_icade_profile_pad2", "0")));
config.setInt("input_autodetect_icade_profile_pad3", Integer.valueOf(prefs.getString("input_autodetect_icade_profile_pad3", "0")));

View File

@ -242,6 +242,7 @@ struct settings
bool debug_enable;
#ifdef ANDROID
bool autodetect_enable;
unsigned back_behavior;
unsigned icade_profile[MAX_PLAYERS];
unsigned icade_count;
#endif

View File

@ -49,6 +49,14 @@ static inline void input_conv_analog_id_to_bind_id(unsigned index, unsigned id,
bool input_translate_coord_viewport(int mouse_x, int mouse_y,
int16_t *res_x, int16_t *res_y, int16_t *res_screen_x, int16_t *res_screen_y);
#ifdef ANDROID
enum back_button_enums
{
BACK_BUTTON_QUIT = 0,
BACK_BUTTON_MENU_TOGGLE,
};
#endif
typedef struct rarch_joypad_driver
{
bool (*init)(void);

View File

@ -239,6 +239,7 @@ void config_set_defaults(void)
g_settings.input.debug_enable = input_debug_enable;
#ifdef ANDROID
g_settings.input.autodetect_enable = input_autodetect_enable;
g_settings.input.back_behavior = BACK_BUTTON_QUIT;
#endif
for (int i = 0; i < MAX_PLAYERS; i++)
@ -699,6 +700,7 @@ bool config_load_file(const char *path)
#ifdef ANDROID
CONFIG_GET_BOOL(input.autodetect_enable, "input_autodetect_enable");
CONFIG_GET_INT(input.back_behavior, "input_back_behavior");
CONFIG_GET_INT(input.icade_profile[0], "input_autodetect_icade_profile_pad1");
CONFIG_GET_INT(input.icade_profile[1], "input_autodetect_icade_profile_pad2");
CONFIG_GET_INT(input.icade_profile[2], "input_autodetect_icade_profile_pad3");
@ -1197,6 +1199,7 @@ bool config_save_file(const char *path)
config_set_string(conf, "audio_resampler", g_settings.audio.resampler);
#ifdef ANDROID
config_set_int(conf, "input_back_behavior", input.back_behavior);
config_set_int(conf, "input_autodetect_icade_profile_pad1", input.icade_profile[0]);
config_set_int(conf, "input_autodetect_icade_profile_pad2", input.icade_profile[1]);
config_set_int(conf, "input_autodetect_icade_profile_pad3", input.icade_profile[2]);