Rewrite the key assignment function to override default key
This commit is contained in:
parent
a63cede6bc
commit
f79cb1ecb7
|
@ -13,6 +13,32 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:stretchColumns="*" >
|
android:stretchColumns="*" >
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_marginTop="25dp"
|
||||||
|
android:gravity="center_vertical" >
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.5"
|
||||||
|
android:ems="10"
|
||||||
|
android:gravity="center_vertical|left"
|
||||||
|
android:text="@string/modified_layout" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="right"
|
||||||
|
android:orientation="vertical" >
|
||||||
|
|
||||||
|
<de.ankri.views.Switch
|
||||||
|
android:id="@+id/switchModifiedLayoutEnabled"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
<TableRow android:gravity="center_vertical" >
|
<TableRow android:gravity="center_vertical" >
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
<string name="select_controller_title">Select Controller</string>
|
<string name="select_controller_title">Select Controller</string>
|
||||||
<string name="select_controller_message">Press any button on the controller to assign to port</string>
|
<string name="select_controller_message">Press any button on the controller to assign to port</string>
|
||||||
<string name="controller_already_in_use">This controller is already in use!</string>
|
<string name="controller_already_in_use">This controller is already in use!</string>
|
||||||
|
<string name="modified_layout">Enable Custom Key Layout</string>
|
||||||
|
|
||||||
<string name="menu_edit_keycodes">Edit Key Bindings</string>
|
<string name="menu_edit_keycodes">Edit Key Bindings</string>
|
||||||
<string name="map_keycode_title">Modify Controller</string>
|
<string name="map_keycode_title">Modify Controller</string>
|
||||||
|
|
|
@ -217,46 +217,41 @@ public class GL2JNIActivity extends Activity {
|
||||||
|
|
||||||
if (playerNum != null) {
|
if (playerNum != null) {
|
||||||
|
|
||||||
if (InputDevice.getDevice(joys[i]).getName()
|
if (prefs.getBoolean("modified_key_layout", false)) {
|
||||||
|
map[playerNum] = setModifiedKeys();
|
||||||
|
} else if (InputDevice.getDevice(joys[i]).getName()
|
||||||
.equals("Sony PLAYSTATION(R)3 Controller")) {
|
.equals("Sony PLAYSTATION(R)3 Controller")) {
|
||||||
map[playerNum] = new int[] { OuyaController.BUTTON_Y,
|
map[playerNum] = new int[] {
|
||||||
key_CONT_Y, OuyaController.BUTTON_U,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
key_CONT_X, OuyaController.BUTTON_O,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
key_CONT_A, OuyaController.BUTTON_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
key_CONT_B,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
OuyaController.BUTTON_DPAD_LEFT,
|
|
||||||
key_CONT_DPAD_LEFT,
|
|
||||||
OuyaController.BUTTON_DPAD_RIGHT,
|
|
||||||
key_CONT_DPAD_RIGHT,
|
|
||||||
|
|
||||||
OuyaController.BUTTON_MENU, key_CONT_START,
|
OuyaController.BUTTON_MENU, key_CONT_START,
|
||||||
OuyaController.BUTTON_R1, key_CONT_START
|
OuyaController.BUTTON_R1, key_CONT_START
|
||||||
|
|
||||||
};
|
};
|
||||||
} else if (InputDevice.getDevice(joys[i]).getName()
|
} else if (InputDevice.getDevice(joys[i]).getName()
|
||||||
.equals("Microsoft X-Box 360 pad")) {
|
.equals("Microsoft X-Box 360 pad")) {
|
||||||
map[playerNum] = new int[] { OuyaController.BUTTON_O,
|
map[playerNum] = new int[] {
|
||||||
key_CONT_A, OuyaController.BUTTON_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
key_CONT_B, OuyaController.BUTTON_Y,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
key_CONT_Y, OuyaController.BUTTON_U,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
key_CONT_X,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
OuyaController.BUTTON_DPAD_LEFT,
|
|
||||||
key_CONT_DPAD_LEFT,
|
|
||||||
OuyaController.BUTTON_DPAD_RIGHT,
|
|
||||||
key_CONT_DPAD_RIGHT,
|
|
||||||
|
|
||||||
OuyaController.BUTTON_MENU, key_CONT_START,
|
OuyaController.BUTTON_MENU, key_CONT_START,
|
||||||
OuyaController.BUTTON_R1, key_CONT_START };
|
OuyaController.BUTTON_R1, key_CONT_START
|
||||||
|
};
|
||||||
|
|
||||||
xbox[playerNum] = true;
|
xbox[playerNum] = true;
|
||||||
|
|
||||||
|
@ -264,45 +259,38 @@ public class GL2JNIActivity extends Activity {
|
||||||
globalLS_Y[playerNum] = previousLS_Y[playerNum] = 0.0f;
|
globalLS_Y[playerNum] = previousLS_Y[playerNum] = 0.0f;
|
||||||
} else if (InputDevice.getDevice(joys[i]).getName()
|
} else if (InputDevice.getDevice(joys[i]).getName()
|
||||||
.contains("NVIDIA Corporation NVIDIA Controller")) {
|
.contains("NVIDIA Corporation NVIDIA Controller")) {
|
||||||
map[playerNum] = new int[] { OuyaController.BUTTON_O,
|
map[playerNum] = new int[] {
|
||||||
key_CONT_A, OuyaController.BUTTON_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
key_CONT_B, OuyaController.BUTTON_Y,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
key_CONT_Y, OuyaController.BUTTON_U,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
key_CONT_X,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
OuyaController.BUTTON_DPAD_LEFT,
|
|
||||||
key_CONT_DPAD_LEFT,
|
|
||||||
OuyaController.BUTTON_DPAD_RIGHT,
|
|
||||||
key_CONT_DPAD_RIGHT,
|
|
||||||
|
|
||||||
OuyaController.BUTTON_MENU, key_CONT_START,
|
OuyaController.BUTTON_MENU, key_CONT_START,
|
||||||
OuyaController.BUTTON_R1, key_CONT_START };
|
OuyaController.BUTTON_R1, key_CONT_START
|
||||||
|
};
|
||||||
nVidia[playerNum] = true;
|
nVidia[playerNum] = true;
|
||||||
|
|
||||||
globalLS_X[playerNum] = previousLS_X[playerNum] = 0.0f;
|
globalLS_X[playerNum] = previousLS_X[playerNum] = 0.0f;
|
||||||
globalLS_Y[playerNum] = previousLS_Y[playerNum] = 0.0f;
|
globalLS_Y[playerNum] = previousLS_Y[playerNum] = 0.0f;
|
||||||
} else if (!moga.isActive) { // Ouya controller
|
} else if (!moga.isActive) { // Ouya controller
|
||||||
map[playerNum] = new int[] { OuyaController.BUTTON_O,
|
map[playerNum] = new int[] {
|
||||||
key_CONT_A, OuyaController.BUTTON_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
key_CONT_B, OuyaController.BUTTON_Y,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
key_CONT_Y, OuyaController.BUTTON_U,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
key_CONT_X,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
OuyaController.BUTTON_DPAD_LEFT,
|
|
||||||
key_CONT_DPAD_LEFT,
|
|
||||||
OuyaController.BUTTON_DPAD_RIGHT,
|
|
||||||
key_CONT_DPAD_RIGHT,
|
|
||||||
|
|
||||||
OuyaController.BUTTON_MENU, key_CONT_START,
|
OuyaController.BUTTON_MENU, key_CONT_START,
|
||||||
OuyaController.BUTTON_R1, key_CONT_START };
|
OuyaController.BUTTON_R1, key_CONT_START };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,42 +310,21 @@ public class GL2JNIActivity extends Activity {
|
||||||
Toast.makeText(getApplicationContext(),
|
Toast.makeText(getApplicationContext(),
|
||||||
"Press the back button for a menu", Toast.LENGTH_SHORT).show();
|
"Press the back button for a menu", Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int[] setModifiedKeys() {
|
||||||
|
return new int[] {
|
||||||
|
prefs.getInt("a_button", OuyaController.BUTTON_O), key_CONT_A,
|
||||||
|
prefs.getInt("b_button", OuyaController.BUTTON_A), key_CONT_B,
|
||||||
|
prefs.getInt("y_button", OuyaController.BUTTON_Y), key_CONT_Y,
|
||||||
|
prefs.getInt("x_button", OuyaController.BUTTON_U), key_CONT_X,
|
||||||
|
|
||||||
private int getModifiedKey(int KeyCode) {
|
prefs.getInt("dpad_up", OuyaController.BUTTON_DPAD_UP), key_CONT_DPAD_UP,
|
||||||
if (prefs.getInt("a_button", -1) == KeyCode) {
|
prefs.getInt("dpad_down", OuyaController.BUTTON_DPAD_DOWN), key_CONT_DPAD_DOWN,
|
||||||
return OuyaController.BUTTON_O;
|
prefs.getInt("dpad_left", OuyaController.BUTTON_DPAD_LEFT), key_CONT_DPAD_LEFT,
|
||||||
}
|
prefs.getInt("dpad_right", OuyaController.BUTTON_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
|
||||||
if (prefs.getInt("b_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_A;
|
prefs.getInt("start_button", OuyaController.BUTTON_MENU), key_CONT_START,
|
||||||
}
|
};
|
||||||
if (prefs.getInt("x_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_U;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("y_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_Y;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("l_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_L1;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("r_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_R1;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_left", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_DPAD_LEFT;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_right", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_DPAD_RIGHT;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_up", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_DPAD_UP;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_down", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_DPAD_DOWN;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("start_button", -1) == KeyCode) {
|
|
||||||
return OuyaController.BUTTON_MENU;
|
|
||||||
}
|
|
||||||
return KeyCode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -491,22 +458,22 @@ public class GL2JNIActivity extends Activity {
|
||||||
Integer playerNum = deviceDescriptor_PlayerNum
|
Integer playerNum = deviceDescriptor_PlayerNum
|
||||||
.get(deviceId_deviceDescriptor.get(event.getDeviceId()));
|
.get(deviceId_deviceDescriptor.get(event.getDeviceId()));
|
||||||
|
|
||||||
return handle_key(playerNum, getModifiedKey(keyCode), false)
|
return handle_key(playerNum, keyCode, false)
|
||||||
|| super.onKeyUp(getModifiedKey(keyCode), event);
|
|| super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
Integer playerNum = deviceDescriptor_PlayerNum
|
Integer playerNum = deviceDescriptor_PlayerNum
|
||||||
.get(deviceId_deviceDescriptor.get(event.getDeviceId()));
|
.get(deviceId_deviceDescriptor.get(event.getDeviceId()));
|
||||||
|
|
||||||
if (handle_key(playerNum, getModifiedKey(keyCode), true)) {
|
if (handle_key(playerNum, keyCode, true)) {
|
||||||
if (playerNum == 0)
|
if (playerNum == 0)
|
||||||
JNIdc.hide_osd();
|
JNIdc.hide_osd();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getModifiedKey(keyCode) == KeyEvent.KEYCODE_MENU
|
if (keyCode == KeyEvent.KEYCODE_MENU
|
||||||
|| getModifiedKey(keyCode) == KeyEvent.KEYCODE_BACK) {
|
|| keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
if (!popUp.isShowing()) {
|
if (!popUp.isShowing()) {
|
||||||
popUp.showAtLocation(mView, Gravity.BOTTOM, 0, 0);
|
popUp.showAtLocation(mView, Gravity.BOTTOM, 0, 0);
|
||||||
popUp.update(LayoutParams.WRAP_CONTENT,
|
popUp.update(LayoutParams.WRAP_CONTENT,
|
||||||
|
@ -518,7 +485,7 @@ public class GL2JNIActivity extends Activity {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
return super.onKeyDown(getModifiedKey(keyCode), event);
|
return super.onKeyDown(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.reicast.emulator;
|
package com.reicast.emulator;
|
||||||
|
|
||||||
|
import de.ankri.views.Switch;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
@ -14,12 +15,15 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
import android.widget.CompoundButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||||
|
|
||||||
public class InputModFragment extends Fragment {
|
public class InputModFragment extends Fragment {
|
||||||
|
|
||||||
private Activity parentActivity;
|
private Activity parentActivity;
|
||||||
private SharedPreferences mPrefs;
|
private SharedPreferences mPrefs;
|
||||||
|
private Switch switchModifiedLayoutEnabled;
|
||||||
|
|
||||||
// Container Activity must implement this interface
|
// Container Activity must implement this interface
|
||||||
public interface OnClickListener {
|
public interface OnClickListener {
|
||||||
|
@ -40,6 +44,25 @@ public class InputModFragment extends Fragment {
|
||||||
mPrefs = PreferenceManager
|
mPrefs = PreferenceManager
|
||||||
.getDefaultSharedPreferences(parentActivity);
|
.getDefaultSharedPreferences(parentActivity);
|
||||||
|
|
||||||
|
OnCheckedChangeListener modified_layout = new OnCheckedChangeListener() {
|
||||||
|
public void onCheckedChanged(CompoundButton buttonView,
|
||||||
|
boolean isChecked) {
|
||||||
|
mPrefs.edit()
|
||||||
|
.putBoolean("modified_key_layout", isChecked)
|
||||||
|
.commit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
switchModifiedLayoutEnabled = (Switch) getView().findViewById(
|
||||||
|
R.id.switchModifiedLayoutEnabled);
|
||||||
|
boolean layout = mPrefs.getBoolean(
|
||||||
|
"modified_key_layout", true);
|
||||||
|
if (layout) {
|
||||||
|
switchModifiedLayoutEnabled.setChecked(true);
|
||||||
|
} else {
|
||||||
|
switchModifiedLayoutEnabled.setChecked(false);
|
||||||
|
}
|
||||||
|
switchModifiedLayoutEnabled.setOnCheckedChangeListener(modified_layout);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
|
||||||
|
|
||||||
final TextView a_button_text = (TextView) getView()
|
final TextView a_button_text = (TextView) getView()
|
||||||
|
@ -118,6 +141,9 @@ public class InputModFragment extends Fragment {
|
||||||
mapKeyCode("joystick", joystick_text);
|
mapKeyCode("joystick", joystick_text);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
joystick.setEnabled(false);
|
||||||
|
mPrefs.edit().remove("joystick").commit();
|
||||||
|
// Still needs better support for identifying the entire stick
|
||||||
|
|
||||||
final TextView dpad_left_text = (TextView) getView()
|
final TextView dpad_left_text = (TextView) getView()
|
||||||
.findViewById(R.id.dpad_left_key);
|
.findViewById(R.id.dpad_left_key);
|
||||||
|
@ -176,7 +202,7 @@ public class InputModFragment extends Fragment {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Notify the user they got here by mistake
|
switchModifiedLayoutEnabled.setEnabled(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,18 +47,18 @@ public class MOGAInput
|
||||||
private static final int key_CONT_X = 0x0400;
|
private static final int key_CONT_X = 0x0400;
|
||||||
|
|
||||||
int[] map = new int[] {
|
int[] map = new int[] {
|
||||||
KeyEvent.KEYCODE_BUTTON_B, key_CONT_B,
|
KeyEvent.KEYCODE_BUTTON_B, key_CONT_B,
|
||||||
KeyEvent.KEYCODE_BUTTON_A, key_CONT_A,
|
KeyEvent.KEYCODE_BUTTON_A, key_CONT_A,
|
||||||
KeyEvent.KEYCODE_BUTTON_X, key_CONT_X,
|
KeyEvent.KEYCODE_BUTTON_X, key_CONT_X,
|
||||||
KeyEvent.KEYCODE_BUTTON_Y, key_CONT_Y,
|
KeyEvent.KEYCODE_BUTTON_Y, key_CONT_Y,
|
||||||
|
|
||||||
KeyEvent.KEYCODE_DPAD_UP, key_CONT_DPAD_UP,
|
KeyEvent.KEYCODE_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
KeyEvent.KEYCODE_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
KeyEvent.KEYCODE_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
KeyEvent.KEYCODE_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
KeyEvent.KEYCODE_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
KeyEvent.KEYCODE_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
KeyEvent.KEYCODE_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
|
|
||||||
KeyEvent.KEYCODE_BUTTON_START, key_CONT_START,
|
KeyEvent.KEYCODE_BUTTON_START, key_CONT_START,
|
||||||
};
|
};
|
||||||
|
|
||||||
Activity act;
|
Activity act;
|
||||||
public MOGAInput()
|
public MOGAInput()
|
||||||
|
@ -98,9 +98,7 @@ public class MOGAInput
|
||||||
protected void onCreate(Activity act)
|
protected void onCreate(Activity act)
|
||||||
{
|
{
|
||||||
this.act = act;
|
this.act = act;
|
||||||
|
setModifiedKeys();
|
||||||
prefs = PreferenceManager
|
|
||||||
.getDefaultSharedPreferences(act.getApplicationContext());
|
|
||||||
|
|
||||||
mController = Controller.getInstance(act);
|
mController = Controller.getInstance(act);
|
||||||
mController.init();
|
mController.init();
|
||||||
|
@ -145,41 +143,24 @@ public class MOGAInput
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getModifiedKey(int KeyCode) {
|
private void setModifiedKeys() {
|
||||||
if (prefs.getInt("a_button", -1) == KeyCode) {
|
prefs = PreferenceManager
|
||||||
return KeyEvent.KEYCODE_BUTTON_A;
|
.getDefaultSharedPreferences(act.getApplicationContext());
|
||||||
|
if (prefs.getBoolean("modified_key_layout", false)) {
|
||||||
|
map = new int[] {
|
||||||
|
prefs.getInt("b_button", KeyEvent.KEYCODE_BUTTON_B), key_CONT_B,
|
||||||
|
prefs.getInt("a_button", KeyEvent.KEYCODE_BUTTON_A), key_CONT_A,
|
||||||
|
prefs.getInt("x_button", KeyEvent.KEYCODE_BUTTON_X), key_CONT_X,
|
||||||
|
prefs.getInt("l_button", KeyEvent.KEYCODE_BUTTON_Y), key_CONT_Y,
|
||||||
|
|
||||||
|
prefs.getInt("dpad_up", KeyEvent.KEYCODE_DPAD_UP), key_CONT_DPAD_UP,
|
||||||
|
prefs.getInt("dpad_down", KeyEvent.KEYCODE_DPAD_DOWN), key_CONT_DPAD_DOWN,
|
||||||
|
prefs.getInt("dpad_left", KeyEvent.KEYCODE_DPAD_LEFT), key_CONT_DPAD_LEFT,
|
||||||
|
prefs.getInt("dpad_right", KeyEvent.KEYCODE_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
|
||||||
|
|
||||||
|
prefs.getInt("start_button", KeyEvent.KEYCODE_BUTTON_START), key_CONT_START,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
if (prefs.getInt("b_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_B;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("x_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_X;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("y_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_Y;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("l_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_L2;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("r_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_R2;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_left", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_DPAD_LEFT;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_right", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_DPAD_RIGHT;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_up", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_DPAD_UP;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("dpad_down", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_DPAD_DOWN;
|
|
||||||
}
|
|
||||||
if (prefs.getInt("start_button", -1) == KeyCode) {
|
|
||||||
return KeyEvent.KEYCODE_BUTTON_START;
|
|
||||||
}
|
|
||||||
return KeyCode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExampleControllerListener implements ControllerListener
|
class ExampleControllerListener implements ControllerListener
|
||||||
|
@ -195,7 +176,7 @@ public class MOGAInput
|
||||||
JNIdc.hide_osd();
|
JNIdc.hide_osd();
|
||||||
|
|
||||||
for (int i = 0; i < map.length; i += 2) {
|
for (int i = 0; i < map.length; i += 2) {
|
||||||
if (map[i + 0] == getModifiedKey(event.getKeyCode())) {
|
if (map[i + 0] == event.getKeyCode()) {
|
||||||
if (event.getAction() == 0) //FIXME to const
|
if (event.getAction() == 0) //FIXME to const
|
||||||
GL2JNIView.kcode_raw[playerNum] &= ~map[i + 1];
|
GL2JNIView.kcode_raw[playerNum] &= ~map[i + 1];
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue