Răsfoiți Sursa

Merge branch 'master' of http://8.136.234.80:10002/WangYongJun/GameConsole

wangyongj 1 an în urmă
părinte
comite
790030d28f

+ 9 - 6
app/src/main/cpp/frontend/drivers/platform_unix.c

@@ -920,29 +920,32 @@ JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCom
 //   command_event(CMD_EVENT_VIDEO_APPLY_STATE_CHANGES, NULL);
 }
 
+#if 0
 JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindValidNative
         (JNIEnv *env, jobject thiz, jint port, jint id, jboolean valid) {
     input_config_binds[port][id].valid = valid;
 }
 JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindJoyKeyNative
         (JNIEnv *env, jobject thiz, jint port, jint id, jint joy_key) {
-    input_config_binds[port][id].joykey = joy_key;
+    input_config_binds[port][id].joykey = (uint16_t)joy_key;
     input_config_binds[port][id].joyaxis = AXIS_NONE;
 }
 JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindJoyAxisNative
         (JNIEnv *env, jobject thiz, jint port, jint id, jint joy_axis) {
     input_config_binds[port][id].joykey = NO_BTN;
-    input_config_binds[port][id].joyaxis = joy_axis;
+    input_config_binds[port][id].joyaxis = (uint32_t)joy_axis;
 }
-JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindJoypadNative
+#endif
+
+JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindNative
         (JNIEnv *env, jobject thiz, jint port, jintArray jjoy_keys, jintArray jjoy_axiss) {
     int i;
     int* cjoyaxiss = (*env)->GetIntArrayElements(env, jjoy_axiss, NULL);
     int* cjoykeys = (*env)->GetIntArrayElements(env, jjoy_keys, NULL);
 
-    for (i = 0; i < RARCH_FIRST_CUSTOM_BIND; ++i) {
-        input_config_binds[port][i].joykey = cjoykeys[i];
-        input_config_binds[port][i].joyaxis = cjoyaxiss[i];
+    for (i = 0; i < RARCH_LIGHTGUN_BIND_LIST_END; ++i) {
+        input_config_binds[port][i].joykey  = (uint16_t)cjoykeys[i];
+        input_config_binds[port][i].joyaxis = (uint32_t)cjoyaxiss[i];
     }
 
     (*env)->ReleaseIntArrayElements(env, jjoy_keys, cjoykeys, 0);

+ 106 - 38
app/src/main/java/com/xugame/bean/InputCode.java

@@ -1,43 +1,111 @@
 package com.xugame.bean;
 
+import android.view.KeyEvent;
+
 public class InputCode {
-    public static final int JOYPAD_B = 0;
-    public static final int JOYPAD_Y = 1;
-    public static final int JOYPAD_SELECT = 2;
-    public static final int JOYPAD_START = 3;
-    public static final int JOYPAD_UP = 4;
-    public static final int JOYPAD_DOWN = 5;     
-    public static final int JOYPAD_LEFT = 6;     
-    public static final int JOYPAD_RIGHT = 7;
-    public static final int JOYPAD_A = 8;        
-    public static final int JOYPAD_X = 9;        
-    public static final int JOYPAD_L = 10;       
-    public static final int JOYPAD_R = 11;
-    public static final int JOYPAD_L2 = 12;      
-    public static final int JOYPAD_R2 = 13;      
-    public static final int JOYPAD_L3 = 14;      
-    public static final int JOYPAD_R3 = 15;
-
-    public static final int JOYPAD_BASE_BIND_END = 16;
-
-    public static final int JOYPAD_NO_KEY = 0xFFFF;
-    public static final int JOYPAD_HAT_UP_SHIFT = 15;
-    public static final int JOYPAD_HAT_DOWN_SHIFT = 14;
-    public static final int JOYPAD_HAT_LEFT_SHIFT = 13;
-    public static final int JOYPAD_HAT_RIGHT_SHIFT = 12;
-    public static final int JOYPAD_HAT_UP_MASK = 1 << JOYPAD_HAT_UP_SHIFT;
-    public static final int JOYPAD_HAT_DOWN_MASK = 1 << JOYPAD_HAT_DOWN_SHIFT;
-    public static final int JOYPAD_HAT_LEFT_MASK = 1 << JOYPAD_HAT_LEFT_SHIFT;
-    public static final int JOYPAD_HAT_RIGHT_MASK = 1 << JOYPAD_HAT_RIGHT_SHIFT;
-
-    public static final int ANALOG_LEFT_X_PLUS = 16;
-    public static final int ANALOG_LEFT_X_MINUS = 17;
-    public static final int ANALOG_LEFT_Y_PLUS = 18;
-    public static final int ANALOG_LEFT_Y_MINUS = 19;
-    public static final int ANALOG_RIGHT_X_PLUS = 20;
-    public static final int ANALOG_RIGHT_X_MINUS = 21;
-    public static final int ANALOG_RIGHT_Y_PLUS = 22;
-    public static final int ANALOG_RIGHT_Y_MINUS = 23;
+    public static class JoypadBindSet {
+        // Joypad
+        public static final int JOYPAD_BIND_START = 0;
+
+        public static final int JOYPAD_B = 0;
+        public static final int JOYPAD_Y = 1;
+        public static final int JOYPAD_SELECT = 2;
+        public static final int JOYPAD_START = 3;
+        public static final int JOYPAD_UP = 4;
+        public static final int JOYPAD_DOWN = 5;     
+        public static final int JOYPAD_LEFT = 6;     
+        public static final int JOYPAD_RIGHT = 7;
+        public static final int JOYPAD_A = 8;        
+        public static final int JOYPAD_X = 9;        
+        public static final int JOYPAD_L = 10;       
+        public static final int JOYPAD_R = 11;
+        public static final int JOYPAD_L2 = 12;      
+        public static final int JOYPAD_R2 = 13;      
+        public static final int JOYPAD_L3 = 14;      
+        public static final int JOYPAD_R3 = 15;
+
+        public static final int JOYPAD_BIND_END = 16;
+    }
+
+    public static class AnalogBindSet {
+        // Analog
+        public static final int LIGHTGUN_BIND_START = 16;
+
+        public static final int ANALOG_LEFT_X_PLUS = 16;
+        public static final int ANALOG_LEFT_X_MINUS = 17;
+        public static final int ANALOG_LEFT_Y_PLUS = 18;
+        public static final int ANALOG_LEFT_Y_MINUS = 19;
+        public static final int ANALOG_RIGHT_X_PLUS = 20;
+        public static final int ANALOG_RIGHT_X_MINUS = 21;
+        public static final int ANALOG_RIGHT_Y_PLUS = 22;
+        public static final int ANALOG_RIGHT_Y_MINUS = 23;
+        public static final int ANALOG_BIND_LIST_END = 24;
+
+        public static final int ANALOG_BIND_END = 25;
+    }
+
+    public static class LightgunBindSet {
+        public static final int LIGHTGUN_BIND_START = 37;
+
+        public static final int LIGHTGUN_TRIGGER = 25;
+        public static final int LIGHTGUN_RELOAD = 26;
+        public static final int LIGHTGUN_AUX_A = 27;
+        public static final int LIGHTGUN_AUX_B = 28;
+        public static final int LIGHTGUN_AUX_C = 29;
+        public static final int LIGHTGUN_START = 30;
+        public static final int LIGHTGUN_SELECT = 31;
+        public static final int LIGHTGUN_DPAD_UP = 32;
+        public static final int LIGHTGUN_DPAD_DOWN = 33;
+        public static final int LIGHTGUN_DPAD_LEFT = 34;
+        public static final int LIGHTGUN_DPAD_RIGHT = 35;
+        public static final int LIGHTGUN_BIND_LIST_END = 36;
+
+        public static final int LIGHTGUN_BIND_END = 37;
+    }
+
+    public static class JoypadBindKeySet {
+        public static final int JOYPAD_NONE                = -1;
+        public static final int JOYPAD_BTN_B               = KeyEvent.KEYCODE_BUTTON_B;
+        public static final int JOYPAD_BTN_Y               = KeyEvent.KEYCODE_BUTTON_Y;
+        public static final int JOYPAD_BTN_SELECT          = KeyEvent.KEYCODE_BUTTON_SELECT;
+        public static final int JOYPAD_BTN_START           = KeyEvent.KEYCODE_BUTTON_START;
+        // public static final int JOYPAD_BTN_UP              = KeyEvent.KEYCODE_DPAD_UP;
+        // public static final int JOYPAD_BTN_DOWN            = KeyEvent.KEYCODE_DPAD_DOWN;
+        // public static final int JOYPAD_BTN_LEFT            = KeyEvent.KEYCODE_DPAD_LEFT;
+        // public static final int JOYPAD_BTN_RIGHT           = KeyEvent.KEYCODE_DPAD_RIGHT;
+        public static final int JOYPAD_BTN_A               = KeyEvent.KEYCODE_BUTTON_A;
+        public static final int JOYPAD_BTN_X               = KeyEvent.KEYCODE_BUTTON_X;
+        public static final int JOYPAD_BTN_L               = KeyEvent.KEYCODE_BUTTON_L1;
+        public static final int JOYPAD_BTN_R               = KeyEvent.KEYCODE_BUTTON_R1;
+        public static final int JOYPAD_BTN_L2              = KeyEvent.KEYCODE_BUTTON_L2;
+        public static final int JOYPAD_BTN_R2              = KeyEvent.KEYCODE_BUTTON_R2;
+        public static final int JOYPAD_BTN_L3              = KeyEvent.KEYCODE_BUTTON_THUMBL;
+        public static final int JOYPAD_BTN_R3              = KeyEvent.KEYCODE_BUTTON_THUMBR;
+        public static final int JOYPAD_HAT_UP              = 1 << 15;
+        public static final int JOYPAD_HAT_DOWN            = 1 << 14;
+        public static final int JOYPAD_HAT_LEFT            = 1 << 13;
+        public static final int JOYPAD_HAT_RIGHT           = 1 << 12;
+        public static final int JOYPAD_AXIS_X_PLUS         = 0 - 65536;
+        public static final int JOYPAD_AXIS_X_MINIS        = 0 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_Y_PLUS         = 1 - 65536;
+        public static final int JOYPAD_AXIS_Y_MINIS        = 1 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_Z_PLUS         = 2 - 65536;
+        public static final int JOYPAD_AXIS_Z_MINIS        = 2 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_RZ_PLUS        = 3 - 65536;
+        public static final int JOYPAD_AXIS_RZ_MINIS       = 3 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_HAT_X_PLUS     = 4 - 65536;
+        public static final int JOYPAD_AXIS_HAT_X_MINIS    = 4 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_HAT_Y_PLUS     = 5 - 65536;
+        public static final int JOYPAD_AXIS_HAT_Y_MINIS    = 5 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_LTRIGGER_PLUS  = 6 - 65536;
+        public static final int JOYPAD_AXIS_LTRIGGER_MINIS = 6 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_RTRIGGER_PLUS  = 7 - 65536;
+        public static final int JOYPAD_AXIS_RTRIGGER_MINIS = 7 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_BRAKE_PLUS     = 2 - 65536;
+        public static final int JOYPAD_AXIS_BRAKE_MINIS    = 2 * 65536 + 65535;
+        public static final int JOYPAD_AXIS_GAS_PLUS       = 3 - 65536;
+        public static final int JOYPAD_AXIS_GAS_MINIS      = 3 * 65536 + 65535;
+    }
 
     public static final int INPUT_CODE_END = 24;
-}
+}

+ 8 - 9
app/src/main/java/com/xugame/gameconsole/emulator/RetroArchEmulatorActivity.java

@@ -87,26 +87,26 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera
                         if (descriptors[i].getId() == AppSystem.DEVICE_ID_ANALOG_X) {
                             if (descriptors[i].getIndex() == AppSystem.DEVICE_INDEX_ANALOG_LEFT) {
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_LEFT_X_PLUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_LEFT_X_PLUS] = descriptors[i].getDescription();
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_LEFT_X_MINUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_LEFT_X_MINUS] = descriptors[i].getDescription();
                             } else if (descriptors[i].getIndex() == AppSystem.DEVICE_INDEX_ANALOG_RIGHT) {
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_RIGHT_X_PLUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_RIGHT_X_PLUS] = descriptors[i].getDescription();
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_RIGHT_X_MINUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_RIGHT_X_MINUS] = descriptors[i].getDescription();
                             }
                         } else if (descriptors[i].getId() == AppSystem.DEVICE_ID_ANALOG_Y) {
                             if (descriptors[i].getIndex() == AppSystem.DEVICE_INDEX_ANALOG_LEFT) {
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_LEFT_Y_PLUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_LEFT_Y_PLUS] = descriptors[i].getDescription();
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_LEFT_Y_MINUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_LEFT_Y_MINUS] = descriptors[i].getDescription();
                             } else if (descriptors[i].getIndex() == AppSystem.DEVICE_INDEX_ANALOG_RIGHT) {
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_RIGHT_Y_PLUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_RIGHT_Y_PLUS] = descriptors[i].getDescription();
                                 system.inputDescriptors[descriptors[i].getPort()]
-                                        [InputCode.ANALOG_RIGHT_Y_MINUS] = descriptors[i].getDescription();
+                                        [InputCode.AnalogBindSet.ANALOG_RIGHT_Y_MINUS] = descriptors[i].getDescription();
                             }
                         } else if (descriptors[i].getId() == AppSystem.DEVICE_ID_JOYPAD_L2
                                 || descriptors[i].getId() == AppSystem.DEVICE_ID_JOYPAD_R2
@@ -137,7 +137,6 @@ public class RetroArchEmulatorActivity extends RetroActivityCamera
         mEmulatorMonitor = new EmulatorMonitor(this, this);
     }
 
-
     @Override
     public void showLocalExitDialog() {
 //        runOnUiThread(new Runnable() {