mirror of
https://github.com/mauiaaron/apple2.git
synced 2025-03-14 05:31:43 +00:00
Add ability to hide joystick controls overlay
This commit is contained in:
parent
704c381ea8
commit
5df1e2400e
@ -204,12 +204,12 @@ public class Apple2JoystickSettingsMenu extends Apple2AbstractMenu {
|
||||
JOYSTICK_ADVANCED {
|
||||
@Override
|
||||
public final String getTitle(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced);
|
||||
return activity.getResources().getString(R.string.settings_advanced);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String getSummary(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced_summary);
|
||||
return activity.getResources().getString(R.string.settings_advanced_joystick_summary);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -272,6 +272,30 @@ public class Apple2JoystickSettingsMenu extends Apple2AbstractMenu {
|
||||
}
|
||||
|
||||
protected enum SETTINGS implements Apple2AbstractMenu.IMenuEnum {
|
||||
JOYSTICK_VISIBILITY {
|
||||
@Override
|
||||
public final String getTitle(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_visible);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String getSummary(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_visible_summary);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(final Apple2Activity activity, View convertView) {
|
||||
convertView = _basicView(activity, this, convertView);
|
||||
CheckBox cb = _addCheckbox(activity, this, convertView, Apple2Preferences.JOYSTICK_VISIBILITY.booleanValue(activity));
|
||||
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
Apple2Preferences.JOYSTICK_VISIBILITY.saveBoolean(activity, isChecked);
|
||||
}
|
||||
});
|
||||
return convertView;
|
||||
}
|
||||
},
|
||||
JOYSTICK_AXIS_ON_LEFT {
|
||||
@Override
|
||||
public final String getTitle(Apple2Activity activity) {
|
||||
|
@ -133,12 +133,12 @@ public class Apple2KeypadSettingsMenu extends Apple2AbstractMenu {
|
||||
KEYPAD_ADVANCED {
|
||||
@Override
|
||||
public final String getTitle(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced);
|
||||
return activity.getResources().getString(R.string.settings_advanced);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String getSummary(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced_summary);
|
||||
return activity.getResources().getString(R.string.settings_advanced_joystick_summary);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -263,12 +263,12 @@ public class Apple2KeypadSettingsMenu extends Apple2AbstractMenu {
|
||||
JOYSTICK_ADVANCED {
|
||||
@Override
|
||||
public final String getTitle(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced);
|
||||
return activity.getResources().getString(R.string.settings_advanced_joystick);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String getSummary(Apple2Activity activity) {
|
||||
return activity.getResources().getString(R.string.joystick_advanced_summary);
|
||||
return activity.getResources().getString(R.string.settings_advanced_joystick_summary);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -334,6 +334,17 @@ public enum Apple2Preferences {
|
||||
return activity.getPreferences(Context.MODE_PRIVATE).getInt(toString(), JOYSTICK_DIVIDER_NUM_CHOICES >> 1);
|
||||
}
|
||||
},
|
||||
JOYSTICK_VISIBILITY {
|
||||
@Override
|
||||
public void load(Apple2Activity activity) {
|
||||
nativeSetTouchJoystickVisibility(booleanValue(activity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean booleanValue(Apple2Activity activity) {
|
||||
return activity.getPreferences(Context.MODE_PRIVATE).getBoolean(toString(), true);
|
||||
}
|
||||
},
|
||||
KEYPAD_KEYS {
|
||||
@Override
|
||||
public void load(Apple2Activity activity) {
|
||||
@ -841,6 +852,8 @@ public enum Apple2Preferences {
|
||||
|
||||
private static native void nativeSetTouchJoystickButtonSwitchThreshold(int delta);
|
||||
|
||||
private static native void nativeSetTouchJoystickVisibility(boolean visibility);
|
||||
|
||||
public static native void nativeSetTouchMenuEnabled(boolean enabled);
|
||||
|
||||
private static native void nativeSetTouchMenuVisibility(float alpha);
|
||||
|
@ -33,8 +33,6 @@
|
||||
<string name="input_first_keyboard">Touch keyboard</string>
|
||||
<string name="joystick">Joystick</string>
|
||||
<string name="joystickA">Touch Joystick</string>
|
||||
<string name="joystick_advanced">Advanced tuning…</string>
|
||||
<string name="joystick_advanced_summary">Various joystick/keypad configuration parameters</string>
|
||||
<string name="joystick_axis_sensitivity_summary">Tune joystick axis sensitivity (decelerate or accelerate)</string>
|
||||
<string name="joystick_button_axis_enable">Enable button axis</string>
|
||||
<string name="joystick_button_axis_enable_summary">Enable button axis</string>
|
||||
@ -53,11 +51,13 @@
|
||||
<string name="joystick_calibrate">Calibrate…</string>
|
||||
<string name="joystick_calibrate_summary">Configure and test current settings</string>
|
||||
<string name="joystick_configure">Configure joystick…</string>
|
||||
<string name="joystick_configure_summary">Axis touch/tilt, buttons, etc</string>
|
||||
<string name="joystick_configure_summary">Axis touch, buttons, etc</string>
|
||||
<string name="joystick_current">Current joystick flavor</string>
|
||||
<string name="joystick_current_summary">Emulated physical joystick or keypad</string>
|
||||
<string name="joystick_axisleft">Joystick/keypad axis on left</string>
|
||||
<string name="joystick_axisleft_summary">Joystick/keypad axis on left (buttons on right)</string>
|
||||
<string name="joystick_visible">Joystick/keypad visibility</string>
|
||||
<string name="joystick_visible_summary">Show controls overlay when engaged</string>
|
||||
<string name="key_closed_apple">[ClosedApple]</string>
|
||||
<string name="key_ctrl">[Ctrl]</string>
|
||||
<string name="key_down">↓</string>
|
||||
@ -69,6 +69,9 @@
|
||||
<string name="key_right">→</string>
|
||||
<string name="key_space">[Space]</string>
|
||||
<string name="key_up">↑</string>
|
||||
<string name="keyboard">Keyboard</string>
|
||||
<string name="keyboard_configure">Configure keyboard…</string>
|
||||
<string name="keyboard_configure_summary">Transparency, fading, custom keys</string>
|
||||
<string name="keyboard_visibility">Keyboard visibility</string>
|
||||
<string name="keyboard_visibility_summary">Keyboard visibility when inactive</string>
|
||||
<string name="keypad">Keypad Joystick</string>
|
||||
@ -84,7 +87,7 @@
|
||||
<string name="keypad_choose_current">Choose XXX Key: </string>
|
||||
<string name="keypad_chosen_keys">I,J,K,M [Space]</string>
|
||||
<string name="keypad_configure">Configure keypad joystick…</string>
|
||||
<string name="keypad_configure_summary">Axis touch/tilt, buttons, etc</string>
|
||||
<string name="keypad_configure_summary">@string/joystick_configure_summary</string>
|
||||
<string name="keypad_key_axis_c">Center</string>
|
||||
<string name="keypad_key_axis_dn">Down</string>
|
||||
<string name="keypad_key_axis_dl">Down and Left</string>
|
||||
@ -106,9 +109,6 @@
|
||||
<string name="keypad_preset_left_right_space">←,→, tap spacebar</string>
|
||||
<string name="keypad_preset_wadx_space">W,A,D,X, tap spacebar</string>
|
||||
<string name="keypad_repeat_summary">Key repeat threshold in secs</string>
|
||||
<string name="keyboard">Keyboard</string>
|
||||
<string name="keyboard_configure">Configure keyboard…</string>
|
||||
<string name="keyboard_configure_summary">Transparency, fading, custom keys</string>
|
||||
<string name="max">Max</string>
|
||||
<string name="menu_disks">Load disk image…</string>
|
||||
<string name="menu_disks_summary">Insert a Disk ][ image file</string>
|
||||
@ -147,6 +147,8 @@
|
||||
<string name="settings_audio">Apple2ix audio settings</string>
|
||||
<string name="settings_advanced">Advanced settings</string>
|
||||
<string name="settings_advanced_summary">Warning: these settings may potentially degrade emulation performance</string>
|
||||
<string name="settings_advanced_joystick">Advanced joystick/keypad settings</string>
|
||||
<string name="settings_advanced_joystick_summary">Advanced settings and performance tuning</string>
|
||||
<string name="tab_general">General</string>
|
||||
<string name="tab_joystick">Joystick</string>
|
||||
<string name="title_activity_second">SecondActivity</string>
|
||||
|
@ -97,6 +97,11 @@ void Java_org_deadc0de_apple2ix_Apple2Preferences_nativeSetCurrentTouchDevice(JN
|
||||
}
|
||||
}
|
||||
|
||||
void Java_org_deadc0de_apple2ix_Apple2Preferences_nativeSetTouchJoystickVisibility(JNIEnv *env, jclass cls, jboolean visibility) {
|
||||
LOG("visibility: %d", visibility);
|
||||
joydriver_setShowControls(visibility);
|
||||
}
|
||||
|
||||
jint Java_org_deadc0de_apple2ix_Apple2Preferences_nativeGetCurrentTouchDevice(JNIEnv *env, jclass cls) {
|
||||
LOG("%s", "");
|
||||
if (joydriver_ownsScreen()) {
|
||||
|
@ -276,6 +276,7 @@ void (*joydriver_setAxisOnLeft)(bool axisIsOnLeft) = NULL;
|
||||
void (*joydriver_beginCalibration)(void) = NULL;
|
||||
void (*joydriver_endCalibration)(void) = NULL;
|
||||
bool (*joydriver_isCalibrating)(void) = NULL;
|
||||
void (*joydriver_setShowControls)(bool showControls) = NULL;
|
||||
void (*joydriver_setKeyRepeatThreshold)(float repeatThresholdSecs) = NULL;
|
||||
#endif
|
||||
|
||||
|
@ -122,6 +122,9 @@ extern void (*joydriver_endCalibration)(void);
|
||||
// end calibration mode
|
||||
extern bool (*joydriver_isCalibrating)(void);
|
||||
|
||||
// set controls visibility
|
||||
extern void (*joydriver_setShowControls)(bool showControls);
|
||||
|
||||
// set key repeat threshold (keypad joystick)
|
||||
extern void (*joydriver_setKeyRepeatThreshold)(float repeatThresholdSecs);
|
||||
|
||||
|
@ -108,6 +108,10 @@ static void _setup_axis_object(GLModel *parent) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!joyglobals.showControls) {
|
||||
return;
|
||||
}
|
||||
|
||||
GLModelHUDElement *hudElement = (GLModelHUDElement *)parent->custom;
|
||||
|
||||
if (hudElement->tpl == NULL) {
|
||||
@ -156,6 +160,10 @@ static void _setup_button_object(GLModel *parent) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!joyglobals.showControls) {
|
||||
return;
|
||||
}
|
||||
|
||||
GLModelHUDElement *hudElement = (GLModelHUDElement *)parent->custom;
|
||||
|
||||
if (hudElement->tpl == NULL) {
|
||||
@ -345,6 +353,9 @@ static void gltouchjoy_render(void) {
|
||||
if (!joyglobals.ownsScreen) {
|
||||
return;
|
||||
}
|
||||
if (!joyglobals.showControls) {
|
||||
return;
|
||||
}
|
||||
|
||||
glViewport(0, 0, touchport.width, touchport.height); // NOTE : show these HUD elements beyond the A2 framebuffer dimensions
|
||||
|
||||
@ -663,6 +674,10 @@ static bool gltouchjoy_ownsScreen(void) {
|
||||
return joyglobals.ownsScreen;
|
||||
}
|
||||
|
||||
static void gltouchjoy_setShowControls(bool showControls) {
|
||||
joyglobals.showControls = showControls;
|
||||
}
|
||||
|
||||
static void _animation_showTouchJoystick(void) {
|
||||
if (!joyglobals.isAvailable) {
|
||||
return;
|
||||
@ -845,6 +860,7 @@ static void _init_gltouchjoy(void) {
|
||||
|
||||
joyglobals.isEnabled = true;
|
||||
joyglobals.ownsScreen = true;
|
||||
joyglobals.showControls = true;
|
||||
joyglobals.screenDivider = 0.5f;
|
||||
joyglobals.axisIsOnLeft = true;
|
||||
joyglobals.switchThreshold = BUTTON_SWITCH_THRESHOLD_DEFAULT;
|
||||
@ -856,6 +872,7 @@ static void _init_gltouchjoy(void) {
|
||||
joydriver_setTouchJoystickEnabled = &gltouchjoy_setTouchJoystickEnabled;
|
||||
joydriver_setTouchJoystickOwnsScreen = &gltouchjoy_setTouchJoystickOwnsScreen;
|
||||
joydriver_ownsScreen = &gltouchjoy_ownsScreen;
|
||||
joydriver_setShowControls = &gltouchjoy_setShowControls;
|
||||
joydriver_setTouchButtonTypes = &gltouchjoy_setTouchButtonTypes;
|
||||
joydriver_setTapDelay = &gltouchjoy_setTapDelay;
|
||||
joydriver_setTouchAxisSensitivity = &gltouchjoy_setTouchAxisSensitivity;
|
||||
|
@ -26,6 +26,7 @@ typedef struct GLTouchJoyGlobals {
|
||||
bool isCalibrating; // Are we running in calibration mode?
|
||||
bool isEnabled; // Does player want touchjoy enabled?
|
||||
bool ownsScreen; // Does the touchjoy currently own the screen?
|
||||
bool showControls; // Are controls visible
|
||||
float minAlphaWhenOwnsScreen;
|
||||
float minAlpha;
|
||||
float screenDivider;
|
||||
|
Loading…
x
Reference in New Issue
Block a user