Merge pull request #1376 from reicast/ac/android
Android: Complete conversion to API 26 standards (Cont.)
This commit is contained in:
commit
eacbae5b30
|
@ -27,6 +27,7 @@ import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -62,21 +63,22 @@ public class AboutFragment extends Fragment {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
new retrieveGitTask().execute(Config.git_api);
|
new retrieveGitTask(this).execute(Config.git_api);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class retrieveGitTask extends
|
private static class retrieveGitTask extends
|
||||||
AsyncTask<String, Integer, ArrayList<HashMap<String, String>>> {
|
AsyncTask<String, Integer, ArrayList<HashMap<String, String>>> {
|
||||||
|
|
||||||
@Override
|
private WeakReference<AboutFragment> ref;
|
||||||
protected void onPreExecute() {
|
|
||||||
|
|
||||||
|
retrieveGitTask(AboutFragment context) {
|
||||||
|
ref = new WeakReference<>(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ArrayList<HashMap<String, String>> doInBackground(
|
protected ArrayList<HashMap<String, String>> doInBackground(
|
||||||
String... paths) {
|
String... paths) {
|
||||||
ArrayList<HashMap<String, String>> commitList = new ArrayList<HashMap<String, String>>();
|
ArrayList<HashMap<String, String>> commitList = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
JSONArray gitObject = getContent(paths[0]);
|
JSONArray gitObject = getContent(paths[0]);
|
||||||
for (int i = 0; i < gitObject.length(); i++) {
|
for (int i = 0; i < gitObject.length(); i++) {
|
||||||
|
@ -89,7 +91,7 @@ public class AboutFragment extends Fragment {
|
||||||
String author = commitArray.getJSONObject("author").getString("name");
|
String author = commitArray.getJSONObject("author").getString("name");
|
||||||
String committer = commitArray.getJSONObject("committer").getString("name");
|
String committer = commitArray.getJSONObject("committer").getString("name");
|
||||||
|
|
||||||
String avatar = null;
|
String avatar;
|
||||||
if (!jsonObject.getString("committer").equals("null")) {
|
if (!jsonObject.getString("committer").equals("null")) {
|
||||||
avatar = jsonObject.getJSONObject("committer").getString("avatar_url");
|
avatar = jsonObject.getJSONObject("committer").getString("avatar_url");
|
||||||
committer = committer + " (" + jsonObject
|
committer = committer + " (" + jsonObject
|
||||||
|
@ -109,7 +111,7 @@ public class AboutFragment extends Fragment {
|
||||||
.replace("https://api.github.com/repos", "https://github.com")
|
.replace("https://api.github.com/repos", "https://github.com")
|
||||||
.replace("commits", "commit");
|
.replace("commits", "commit");
|
||||||
|
|
||||||
String title = "No commit heading attached";
|
String title;
|
||||||
String message = "No commit message attached";
|
String message = "No commit message attached";
|
||||||
|
|
||||||
if (commitArray.getString("message").contains("\n\n")) {
|
if (commitArray.getString("message").contains("\n\n")) {
|
||||||
|
@ -121,7 +123,7 @@ public class AboutFragment extends Fragment {
|
||||||
title = commitArray.getString("message");
|
title = commitArray.getString("message");
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, String> map = new HashMap<String, String>();
|
HashMap<String, String> map = new HashMap<>();
|
||||||
map.put("Date", date);
|
map.put("Date", date);
|
||||||
map.put("Committer", committer);
|
map.put("Committer", committer);
|
||||||
map.put("Title", title);
|
map.put("Title", title);
|
||||||
|
@ -130,7 +132,7 @@ public class AboutFragment extends Fragment {
|
||||||
map.put("Url", curl);
|
map.put("Url", curl);
|
||||||
map.put("Author", author);
|
map.put("Author", author);
|
||||||
map.put("Avatar", avatar);
|
map.put("Avatar", avatar);
|
||||||
map.put("Build", buildId);
|
map.put("Build", ref.get().buildId);
|
||||||
commitList.add(map);
|
commitList.add(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,14 +148,15 @@ public class AboutFragment extends Fragment {
|
||||||
protected void onPostExecute(
|
protected void onPostExecute(
|
||||||
ArrayList<HashMap<String, String>> commitList) {
|
ArrayList<HashMap<String, String>> commitList) {
|
||||||
if (commitList != null && commitList.size() > 0) {
|
if (commitList != null && commitList.size() > 0) {
|
||||||
ListView list = (ListView) getView().findViewById(R.id.list);
|
ListView list = (ListView) ref.get().getView().findViewById(R.id.list);
|
||||||
list.setSelector(R.drawable.list_selector);
|
list.setSelector(R.drawable.list_selector);
|
||||||
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
||||||
GitAdapter adapter = new GitAdapter(getActivity(), commitList);
|
GitAdapter adapter = new GitAdapter(ref.get().getActivity(), commitList);
|
||||||
// Set adapter as specified collection
|
// Set adapter as specified collection
|
||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
} else {
|
} else {
|
||||||
showToastMessage(getActivity().getString(R.string.git_broken), Snackbar.LENGTH_SHORT);
|
ref.get().showToastMessage(ref.get().getActivity().getString(
|
||||||
|
R.string.git_broken), Snackbar.LENGTH_SHORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,13 +239,13 @@ public class FileBrowser extends Fragment {
|
||||||
filter[i] = new FilenameFilter() {
|
filter[i] = new FilenameFilter() {
|
||||||
|
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
return (!dir.getName().equals("obb") && !dir.getName().equals("cache")
|
return !dir.getName().equals("obb") && !dir.getName().equals("cache")
|
||||||
&& !dir.getName().startsWith(".") && !name.startsWith("."))
|
&& !dir.getName().startsWith(".") && !name.startsWith(".")
|
||||||
&& (array != R.array.flash && name.startsWith("dc_"))
|
&& (array != R.array.flash || name.startsWith("dc_"))
|
||||||
&& (browser.get().searchQuery == null
|
&& (browser.get().searchQuery == null
|
||||||
|| name.toLowerCase(Locale.getDefault()).contains(
|
|| name.toLowerCase(Locale.getDefault()).contains(
|
||||||
browser.get().searchQuery.toLowerCase(Locale.getDefault())))
|
browser.get().searchQuery.toLowerCase(Locale.getDefault())))
|
||||||
&& StringUtils.endsWithIgnoreCase(name, "." + type);
|
&& StringUtils.endsWithIgnoreCase(name, "." + type);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
i++;
|
i++;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.reicast.emulator;
|
package com.reicast.emulator;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
@ -134,7 +135,7 @@ public class GL2JNIActivity extends Activity {
|
||||||
new int[][] { p1periphs, p2periphs, p3periphs, p4periphs });
|
new int[][] { p1periphs, p2periphs, p3periphs, p4periphs });
|
||||||
int joys[] = InputDevice.getDeviceIds();
|
int joys[] = InputDevice.getDeviceIds();
|
||||||
for (int joy: joys) {
|
for (int joy: joys) {
|
||||||
String descriptor = null;
|
String descriptor;
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
descriptor = InputDevice.getDevice(joy).getDescriptor();
|
descriptor = InputDevice.getDevice(joy).getDescriptor();
|
||||||
} else {
|
} else {
|
||||||
|
@ -148,11 +149,13 @@ public class GL2JNIActivity extends Activity {
|
||||||
pad.deviceId_deviceDescriptor.put(joy, descriptor);
|
pad.deviceId_deviceDescriptor.put(joy, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int joy :joys) {
|
boolean detected = false;
|
||||||
|
for (int joy : joys) {
|
||||||
Integer playerNum = pad.deviceDescriptor_PlayerNum
|
Integer playerNum = pad.deviceDescriptor_PlayerNum
|
||||||
.get(pad.deviceId_deviceDescriptor.get(joy));
|
.get(pad.deviceId_deviceDescriptor.get(joy));
|
||||||
|
|
||||||
if (playerNum != null) {
|
if (playerNum != null) {
|
||||||
|
detected = true;
|
||||||
String id = pad.portId[playerNum];
|
String id = pad.portId[playerNum];
|
||||||
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
||||||
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
||||||
|
@ -186,11 +189,9 @@ public class GL2JNIActivity extends Activity {
|
||||||
pad.getCompatibilityMap(playerNum, id, prefs);
|
pad.getCompatibilityMap(playerNum, id, prefs);
|
||||||
}
|
}
|
||||||
pad.initJoyStickLayout(playerNum);
|
pad.initJoyStickLayout(playerNum);
|
||||||
} else {
|
|
||||||
pad.runCompatibilityMode(joy, prefs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (joys.length == 0) {
|
if (joys.length == 0 || !detected) {
|
||||||
pad.fullCompatibilityMode(prefs);
|
pad.fullCompatibilityMode(prefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,6 +248,7 @@ public class GL2JNIActivity extends Activity {
|
||||||
fpsPop.update(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
fpsPop.update(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("RtlHardcoded")
|
||||||
public void toggleVmu() {
|
public void toggleVmu() {
|
||||||
boolean showFloating = !prefs.getBoolean(Config.pref_vmu, false);
|
boolean showFloating = !prefs.getBoolean(Config.pref_vmu, false);
|
||||||
if (showFloating) {
|
if (showFloating) {
|
||||||
|
@ -305,14 +307,14 @@ public class GL2JNIActivity extends Activity {
|
||||||
|
|
||||||
private boolean showMenu() {
|
private boolean showMenu() {
|
||||||
if (popUp != null) {
|
if (popUp != null) {
|
||||||
if (!menu.dismissPopUps()) {
|
if (menu.dismissPopUps()) {
|
||||||
|
popUp.dismiss();
|
||||||
|
} else {
|
||||||
if (!popUp.isShowing()) {
|
if (!popUp.isShowing()) {
|
||||||
displayPopUp(popUp);
|
displayPopUp(popUp);
|
||||||
} else {
|
} else {
|
||||||
popUp.dismiss();
|
popUp.dismiss();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
popUp.dismiss();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -433,7 +435,7 @@ public class GL2JNIActivity extends Activity {
|
||||||
|
|
||||||
boolean rav = false;
|
boolean rav = false;
|
||||||
for (int i = 0; i < pad.map[playerNum].length; i += 2) {
|
for (int i = 0; i < pad.map[playerNum].length; i += 2) {
|
||||||
if (pad.map[playerNum][i + 0] == kc) {
|
if (pad.map[playerNum][i] == kc) {
|
||||||
if (down)
|
if (down)
|
||||||
GL2JNIView.kcode_raw[playerNum] &= ~pad.map[playerNum][i + 1];
|
GL2JNIView.kcode_raw[playerNum] &= ~pad.map[playerNum][i + 1];
|
||||||
else
|
else
|
||||||
|
@ -509,10 +511,6 @@ public class GL2JNIActivity extends Activity {
|
||||||
return super.onKeyDown(keyCode, event);
|
return super.onKeyDown(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GL2JNIView getGameView() {
|
|
||||||
return mView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.reicast.emulator;
|
package com.reicast.emulator;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.NativeActivity;
|
import android.app.NativeActivity;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
@ -136,32 +137,29 @@ public class GL2JNINative extends NativeActivity {
|
||||||
new int[][] { p1periphs, p2periphs, p3periphs, p4periphs });
|
new int[][] { p1periphs, p2periphs, p3periphs, p4periphs });
|
||||||
int joys[] = InputDevice.getDeviceIds();
|
int joys[] = InputDevice.getDeviceIds();
|
||||||
for (int joy : joys) {
|
for (int joy : joys) {
|
||||||
String descriptor = descriptor = InputDevice.getDevice(joy).getDescriptor();
|
String descriptor = InputDevice.getDevice(joy).getDescriptor();
|
||||||
Log.d("reicast", "InputDevice ID: " + joy);
|
Log.d("reicast", "InputDevice ID: " + joy);
|
||||||
Log.d("reicast", "InputDevice Name: " + InputDevice.getDevice(joy).getName());
|
Log.d("reicast", "InputDevice Name: " + InputDevice.getDevice(joy).getName());
|
||||||
Log.d("reicast", "InputDevice Descriptor: " + descriptor);
|
Log.d("reicast", "InputDevice Descriptor: " + descriptor);
|
||||||
pad.deviceId_deviceDescriptor.put(joy, descriptor);
|
pad.deviceId_deviceDescriptor.put(joy, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean detected = false;
|
||||||
for (int joy : joys) {
|
for (int joy : joys) {
|
||||||
Integer playerNum = pad.deviceDescriptor_PlayerNum
|
Integer playerNum = pad.deviceDescriptor_PlayerNum
|
||||||
.get(pad.deviceId_deviceDescriptor.get(joy));
|
.get(pad.deviceId_deviceDescriptor.get(joy));
|
||||||
|
|
||||||
if (playerNum != null) {
|
if (playerNum != null) {
|
||||||
|
detected = true;
|
||||||
String id = pad.portId[playerNum];
|
String id = pad.portId[playerNum];
|
||||||
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
||||||
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
||||||
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_merged + id, false);
|
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_merged + id, false);
|
||||||
if (InputDevice.getDevice(joy).getName()
|
if (InputDevice.getDevice(joy).getName().contains(Gamepad.controllers_gamekey)) {
|
||||||
.contains(Gamepad.controllers_gamekey)) {
|
|
||||||
// if (pad.custom[playerNum]) {
|
|
||||||
// setCustomMapping(id, playerNum);
|
|
||||||
// } else {
|
|
||||||
// pad.map[playerNum] = pad.getConsoleController();
|
|
||||||
// }
|
|
||||||
new Handler().post(new Runnable() {
|
new Handler().post(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
Toast.makeText(getApplicationContext(), R.string.controller_unavailable,
|
Toast.makeText(getApplicationContext(),
|
||||||
|
R.string.controller_unavailable,
|
||||||
Toast.LENGTH_SHORT).show();
|
Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
@ -189,10 +187,11 @@ public class GL2JNINative extends NativeActivity {
|
||||||
}
|
}
|
||||||
pad.initJoyStickLayout(playerNum);
|
pad.initJoyStickLayout(playerNum);
|
||||||
pad.playerNumX.put(joy, playerNum);
|
pad.playerNumX.put(joy, playerNum);
|
||||||
} else {
|
|
||||||
pad.runCompatibilityMode(joy, prefs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (joys.length == 0 || !detected) {
|
||||||
|
pad.fullCompatibilityMode(prefs);
|
||||||
|
}
|
||||||
|
|
||||||
app.loadConfigurationPrefs();
|
app.loadConfigurationPrefs();
|
||||||
|
|
||||||
|
@ -242,6 +241,7 @@ public class GL2JNINative extends NativeActivity {
|
||||||
return pad;
|
return pad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("RtlHardcoded")
|
||||||
public void displayFPS() {
|
public void displayFPS() {
|
||||||
fpsPop.showAtLocation(mView, Gravity.TOP | Gravity.LEFT, 20, 20);
|
fpsPop.showAtLocation(mView, Gravity.TOP | Gravity.LEFT, 20, 20);
|
||||||
fpsPop.update(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
fpsPop.update(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
||||||
|
@ -305,14 +305,14 @@ public class GL2JNINative extends NativeActivity {
|
||||||
|
|
||||||
private boolean showMenu() {
|
private boolean showMenu() {
|
||||||
if (popUp != null) {
|
if (popUp != null) {
|
||||||
if (!menu.dismissPopUps()) {
|
if (menu.dismissPopUps()) {
|
||||||
|
popUp.dismiss();
|
||||||
|
} else {
|
||||||
if (!popUp.isShowing()) {
|
if (!popUp.isShowing()) {
|
||||||
displayPopUp(popUp);
|
displayPopUp(popUp);
|
||||||
} else {
|
} else {
|
||||||
popUp.dismiss();
|
popUp.dismiss();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
popUp.dismiss();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -436,7 +436,7 @@ public class GL2JNINative extends NativeActivity {
|
||||||
|
|
||||||
boolean rav = false;
|
boolean rav = false;
|
||||||
for (int i = 0; i < pad.map[playerNum].length; i += 2) {
|
for (int i = 0; i < pad.map[playerNum].length; i += 2) {
|
||||||
if (pad.map[playerNum][i + 0] == kc) {
|
if (pad.map[playerNum][i] == kc) {
|
||||||
if (down)
|
if (down)
|
||||||
GL2JNIView.kcode_raw[playerNum] &= ~pad.map[playerNum][i + 1];
|
GL2JNIView.kcode_raw[playerNum] &= ~pad.map[playerNum][i + 1];
|
||||||
else
|
else
|
||||||
|
@ -474,7 +474,7 @@ public class GL2JNINative extends NativeActivity {
|
||||||
|
|
||||||
public boolean OnNativeKeyPress(int device, int keyCode, int action, int metaState) {
|
public boolean OnNativeKeyPress(int device, int keyCode, int action, int metaState) {
|
||||||
Integer playerNum = pad.playerNumX.get(device);
|
Integer playerNum = pad.playerNumX.get(device);
|
||||||
if (playerNum != null && playerNum != -1) {
|
if (playerNum != -1) {
|
||||||
String id = pad.portId[playerNum];
|
String id = pad.portId[playerNum];
|
||||||
if (action == KeyEvent.ACTION_DOWN) {
|
if (action == KeyEvent.ACTION_DOWN) {
|
||||||
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id, KeyEvent.KEYCODE_BUTTON_L1))
|
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id, KeyEvent.KEYCODE_BUTTON_L1))
|
||||||
|
@ -500,10 +500,9 @@ public class GL2JNINative extends NativeActivity {
|
||||||
|
|
||||||
// public boolean OnNativeMotion(int device, int source, int action, int x,
|
// public boolean OnNativeMotion(int device, int source, int action, int x,
|
||||||
// int y, boolean newEvent) {
|
// int y, boolean newEvent) {
|
||||||
public boolean OnNativeMotion(int device, int source, int action, int x,
|
public boolean OnNativeMotion(int device, int source, int action, int x, int y) {
|
||||||
int y) {
|
|
||||||
Integer playerNum = pad.playerNumX.get(device);
|
Integer playerNum = pad.playerNumX.get(device);
|
||||||
if (playerNum != null && playerNum != -1) {
|
if (playerNum != -1) {
|
||||||
Log.d("reicast", playerNum + " - " + device + ": " + source);
|
Log.d("reicast", playerNum + " - " + device + ": " + source);
|
||||||
// if (newEvent && source == Gamepad.Xperia_Touchpad) {
|
// if (newEvent && source == Gamepad.Xperia_Touchpad) {
|
||||||
if (source == Gamepad.Xperia_Touchpad) {
|
if (source == Gamepad.Xperia_Touchpad) {
|
||||||
|
@ -526,8 +525,8 @@ public class GL2JNINative extends NativeActivity {
|
||||||
// The y-axis is inverted from normal layout
|
// The y-axis is inverted from normal layout
|
||||||
// Imagine it as a small MacBook touch mouse
|
// Imagine it as a small MacBook touch mouse
|
||||||
|
|
||||||
GL2JNIView.jx[playerNum] = (int) (x * 126);
|
GL2JNIView.jx[playerNum] = x * 126;
|
||||||
GL2JNIView.jy[playerNum] = (int) (y * 126);
|
GL2JNIView.jy[playerNum] = y * 126;
|
||||||
mView.pushInput();
|
mView.pushInput();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -535,10 +534,6 @@ public class GL2JNINative extends NativeActivity {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GL2JNIView getGameView() {
|
|
||||||
return mView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
|
|
@ -14,6 +14,7 @@ import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.constraint.ConstraintLayout;
|
import android.support.constraint.ConstraintLayout;
|
||||||
import android.support.design.widget.NavigationView;
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.design.widget.Snackbar;
|
import android.support.design.widget.Snackbar;
|
||||||
|
@ -52,8 +53,6 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
private SharedPreferences mPrefs;
|
private SharedPreferences mPrefs;
|
||||||
private boolean hasAndroidMarket = false;
|
private boolean hasAndroidMarket = false;
|
||||||
|
|
||||||
private UncaughtExceptionHandler mUEHandler;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -64,7 +63,6 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
public void onSystemUiVisibilityChange(int visibility) {
|
public void onSystemUiVisibilityChange(int visibility) {
|
||||||
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
|
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
|
||||||
getWindow().getDecorView().setSystemUiVisibility(
|
getWindow().getDecorView().setSystemUiVisibility(
|
||||||
// View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
|
||||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||||
|
@ -85,7 +83,7 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
displayLogOutput(prior_error);
|
displayLogOutput(prior_error);
|
||||||
mPrefs.edit().remove("prior_error").apply();
|
mPrefs.edit().remove("prior_error").apply();
|
||||||
} else {
|
} else {
|
||||||
mUEHandler = new Thread.UncaughtExceptionHandler() {
|
UncaughtExceptionHandler mUEHandler = new Thread.UncaughtExceptionHandler() {
|
||||||
public void uncaughtException(Thread t, Throwable error) {
|
public void uncaughtException(Thread t, Throwable error) {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
StringBuilder output = new StringBuilder();
|
StringBuilder output = new StringBuilder();
|
||||||
|
@ -95,6 +93,8 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
}
|
}
|
||||||
mPrefs.edit().putString("prior_error", output.toString()).apply();
|
mPrefs.edit().putString("prior_error", output.toString()).apply();
|
||||||
error.printStackTrace();
|
error.printStackTrace();
|
||||||
|
android.os.Process.killProcess(android.os.Process.myPid());
|
||||||
|
System.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -152,6 +152,7 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//noinspection deprecation
|
||||||
drawer.setDrawerListener(toggle);
|
drawer.setDrawerListener(toggle);
|
||||||
toggle.syncState();
|
toggle.syncState();
|
||||||
|
|
||||||
|
@ -262,7 +263,6 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
getSupportFragmentManager().beginTransaction().replace(
|
getSupportFragmentManager().beginTransaction().replace(
|
||||||
R.id.fragment_container, optsFrag, "OPTIONS_FRAG").commit();
|
R.id.fragment_container, optsFrag, "OPTIONS_FRAG").commit();
|
||||||
setTitle(R.string.settings);
|
setTitle(R.string.settings);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -327,8 +327,7 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
Fragment fragment = (FileBrowser) getSupportFragmentManager()
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag("MAIN_BROWSER");
|
||||||
.findFragmentByTag("MAIN_BROWSER");
|
|
||||||
if (fragment != null && fragment.isVisible()) {
|
if (fragment != null && fragment.isVisible()) {
|
||||||
boolean readyToQuit = true;
|
boolean readyToQuit = true;
|
||||||
if (fragment.getArguments() != null) {
|
if (fragment.getArguments() != null) {
|
||||||
|
@ -380,9 +379,8 @@ public class MainActivity extends AppCompatActivity implements
|
||||||
super.onPostCreate(savedInstanceState);
|
super.onPostCreate(savedInstanceState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("StatementWithEmptyBody")
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onNavigationItemSelected(MenuItem item) {
|
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
||||||
// Handle navigation view item clicks here.
|
// Handle navigation view item clicks here.
|
||||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
initializeDefaults();
|
initializeDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGameID(String id) {
|
private void setGameID(String id) {
|
||||||
this.gameId = id;
|
this.gameId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
protected String doInBackground(String... params) {
|
protected String doInBackground(String... params) {
|
||||||
String filename = game_name = params[0];
|
String filename = game_name = params[0];
|
||||||
if (isNetworkAvailable() && mPrefs.getBoolean(Config.pref_gamedetails, false)) {
|
if (isNetworkAvailable() && mPrefs.getBoolean(Config.pref_gamedetails, false)) {
|
||||||
String xmlUrl = "";
|
String xmlUrl;
|
||||||
if (gameId != null) {
|
if (gameId != null) {
|
||||||
xmlUrl = "http://legacy.thegamesdb.net/api/GetGame.php?platform=sega+dreamcast&id=" + gameId;
|
xmlUrl = "http://legacy.thegamesdb.net/api/GetGame.php?platform=sega+dreamcast&id=" + gameId;
|
||||||
} else {
|
} else {
|
||||||
|
@ -187,6 +187,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
game_icon = new BitmapDrawable(
|
game_icon = new BitmapDrawable(
|
||||||
mContext.get().getResources(), gameImage);
|
mContext.get().getResources(), gameImage);
|
||||||
} else {
|
} else {
|
||||||
|
//noinspection deprecation
|
||||||
game_icon = new BitmapDrawable(gameImage);
|
game_icon = new BitmapDrawable(gameImage);
|
||||||
}
|
}
|
||||||
((ImageView) childview.get().findViewById(
|
((ImageView) childview.get().findViewById(
|
||||||
|
@ -235,18 +236,6 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Drawable getGameIcon() {
|
|
||||||
return game_icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGameTitle() {
|
|
||||||
return game_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGameDetails() {
|
|
||||||
return game_details;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Document getDomElement(String xml) {
|
private Document getDomElement(String xml) {
|
||||||
Document doc = null;
|
Document doc = null;
|
||||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||||
|
@ -339,9 +328,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
Bitmap bitmap = BitmapFactory.decodeStream(bis, null, options);
|
Bitmap bitmap = BitmapFactory.decodeStream(bis, null, options);
|
||||||
bis.close();
|
bis.close();
|
||||||
im.close();
|
im.close();
|
||||||
bis = null;
|
OutputStream fOut;
|
||||||
im = null;
|
|
||||||
OutputStream fOut = null;
|
|
||||||
if (!file.getParentFile().exists()) {
|
if (!file.getParentFile().exists()) {
|
||||||
file.getParentFile().mkdir();
|
file.getParentFile().mkdir();
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,8 +170,6 @@ public class GenerateLogs extends AsyncTask<String, Integer, String> {
|
||||||
log.append(separator);
|
log.append(separator);
|
||||||
}
|
}
|
||||||
reader.close();
|
reader.close();
|
||||||
mLogcatProc = null;
|
|
||||||
reader = null;
|
|
||||||
File memory = new File(mContext.get().getFilesDir(), "mem_alloc.txt");
|
File memory = new File(mContext.get().getFilesDir(), "mem_alloc.txt");
|
||||||
if (memory.exists()) {
|
if (memory.exists()) {
|
||||||
log.append(separator);
|
log.append(separator);
|
||||||
|
@ -186,9 +184,7 @@ public class GenerateLogs extends AsyncTask<String, Integer, String> {
|
||||||
log.append(separator);
|
log.append(separator);
|
||||||
}
|
}
|
||||||
fis.close();
|
fis.close();
|
||||||
fis = null;
|
|
||||||
reader.close();
|
reader.close();
|
||||||
reader = null;
|
|
||||||
}
|
}
|
||||||
BufferedWriter writer = new BufferedWriter(new FileWriter(logFile));
|
BufferedWriter writer = new BufferedWriter(new FileWriter(logFile));
|
||||||
writer.write(log.toString());
|
writer.write(log.toString());
|
||||||
|
|
|
@ -352,9 +352,9 @@ public class GL2JNIView extends GLSurfaceView
|
||||||
|
|
||||||
int pre = 255;
|
int pre = 255;
|
||||||
|
|
||||||
if (y>vjoy[j][1] && y<=(vjoy[j][1]+vjoy[j][3]))
|
if (y > vjoy[j][1] && y <= (vjoy[j][1]+vjoy[j][3]))
|
||||||
{
|
{
|
||||||
if (vjoy[j][4]>=-2)
|
if (vjoy[j][4] >= -2)
|
||||||
{
|
{
|
||||||
if (vjoy[j][5]==0)
|
if (vjoy[j][5]==0)
|
||||||
if (!editVjoyMode && touchVibrationEnabled)
|
if (!editVjoyMode && touchVibrationEnabled)
|
||||||
|
@ -363,7 +363,7 @@ public class GL2JNIView extends GLSurfaceView
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (vjoy[j][4]==-3)
|
if (vjoy[j][4] == -3)
|
||||||
{
|
{
|
||||||
if (editVjoyMode) {
|
if (editVjoyMode) {
|
||||||
selectedVjoyElement = 5; // Analog
|
selectedVjoyElement = 5; // Analog
|
||||||
|
@ -375,39 +375,35 @@ public class GL2JNIView extends GLSurfaceView
|
||||||
JNIdc.vjoy(j+1, vjoy[j+1][0], vjoy[j+1][1] , vjoy[j+1][2], vjoy[j+1][3]);
|
JNIdc.vjoy(j+1, vjoy[j+1][0], vjoy[j+1][1] , vjoy[j+1][2], vjoy[j+1][3]);
|
||||||
anal_id=event.getPointerId(i);
|
anal_id=event.getPointerId(i);
|
||||||
}
|
}
|
||||||
}
|
} else if (vjoy[j][4] != -4) {
|
||||||
else if (vjoy[j][4]==-4);
|
if (vjoy[j][4] == -1) {
|
||||||
else if(vjoy[j][4]==-1) {
|
if (editVjoyMode) {
|
||||||
if (editVjoyMode) {
|
selectedVjoyElement = 3; // Left Trigger
|
||||||
selectedVjoyElement = 3; // Left Trigger
|
resetEditMode();
|
||||||
resetEditMode();
|
} else {
|
||||||
|
lt[0] = pre;
|
||||||
|
lt_id = event.getPointerId(i);
|
||||||
|
}
|
||||||
|
} else if (vjoy[j][4] == -2) {
|
||||||
|
if (editVjoyMode) {
|
||||||
|
selectedVjoyElement = 4; // Right Trigger
|
||||||
|
resetEditMode();
|
||||||
|
} else {
|
||||||
|
rt[0] = pre;
|
||||||
|
rt_id = event.getPointerId(i);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
lt[0]=pre;
|
if (editVjoyMode) {
|
||||||
lt_id=event.getPointerId(i);
|
selectedVjoyElement = getElementIdFromButtonId(j);
|
||||||
|
resetEditMode();
|
||||||
|
} else
|
||||||
|
rv &= ~(int) vjoy[j][4];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vjoy[j][4]==-2) {
|
|
||||||
if (editVjoyMode) {
|
|
||||||
selectedVjoyElement = 4; // Right Trigger
|
|
||||||
resetEditMode();
|
|
||||||
} else{
|
|
||||||
rt[0]=pre;
|
|
||||||
rt_id=event.getPointerId(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (editVjoyMode) {
|
|
||||||
selectedVjoyElement = getElementIdFromButtonId(j);
|
|
||||||
resetEditMode();
|
|
||||||
} else
|
|
||||||
rv&=~(int)vjoy[j][4];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (x<vjoy[11][0])
|
if (x<vjoy[11][0])
|
||||||
x=vjoy[11][0];
|
x=vjoy[11][0];
|
||||||
else if (x>(vjoy[11][0]+vjoy[11][2]))
|
else if (x>(vjoy[11][0]+vjoy[11][2]))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.reicast.emulator.emu;
|
package com.reicast.emulator.emu;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -44,12 +45,12 @@ public class OnScreenMenu {
|
||||||
|
|
||||||
public OnScreenMenu(Activity context, SharedPreferences prefs) {
|
public OnScreenMenu(Activity context, SharedPreferences prefs) {
|
||||||
if (context instanceof GL2JNINative) {
|
if (context instanceof GL2JNINative) {
|
||||||
this.mContext = (GL2JNINative) context;
|
this.mContext = context;
|
||||||
}
|
}
|
||||||
if (context instanceof GL2JNIActivity) {
|
if (context instanceof GL2JNIActivity) {
|
||||||
this.mContext = (GL2JNIActivity) context;
|
this.mContext = context;
|
||||||
}
|
}
|
||||||
popups = new Vector<PopupWindow>();
|
popups = new Vector<>();
|
||||||
if (prefs != null) {
|
if (prefs != null) {
|
||||||
masteraudio = !Emulator.nosound;
|
masteraudio = !Emulator.nosound;
|
||||||
audio = masteraudio;
|
audio = masteraudio;
|
||||||
|
@ -68,7 +69,7 @@ public class OnScreenMenu {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayDebugPopup(final PopupWindow popUp) {
|
private void displayDebugPopup() {
|
||||||
if (mContext instanceof GL2JNINative) {
|
if (mContext instanceof GL2JNINative) {
|
||||||
((GL2JNINative) mContext).displayDebug(new DebugPopup(mContext));
|
((GL2JNINative) mContext).displayDebug(new DebugPopup(mContext));
|
||||||
}
|
}
|
||||||
|
@ -114,8 +115,9 @@ public class OnScreenMenu {
|
||||||
|
|
||||||
public class DebugPopup extends PopupWindow {
|
public class DebugPopup extends PopupWindow {
|
||||||
|
|
||||||
public DebugPopup(Context c) {
|
DebugPopup(Context c) {
|
||||||
super(c);
|
super(c);
|
||||||
|
//noinspection deprecation
|
||||||
setBackgroundDrawable(new BitmapDrawable());
|
setBackgroundDrawable(new BitmapDrawable());
|
||||||
|
|
||||||
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_debug, null);
|
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_debug, null);
|
||||||
|
@ -171,7 +173,7 @@ public class OnScreenMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayConfigPopup(final PopupWindow popUp) {
|
private void displayConfigPopup() {
|
||||||
if (mContext instanceof GL2JNINative) {
|
if (mContext instanceof GL2JNINative) {
|
||||||
((GL2JNINative) mContext).displayConfig(new ConfigPopup(mContext));
|
((GL2JNINative) mContext).displayConfig(new ConfigPopup(mContext));
|
||||||
}
|
}
|
||||||
|
@ -189,8 +191,9 @@ public class OnScreenMenu {
|
||||||
private Button fdown;
|
private Button fdown;
|
||||||
private Button fup;
|
private Button fup;
|
||||||
|
|
||||||
public ConfigPopup(Context c) {
|
ConfigPopup(Context c) {
|
||||||
super(c);
|
super(c);
|
||||||
|
//noinspection deprecation
|
||||||
setBackgroundDrawable(new BitmapDrawable());
|
setBackgroundDrawable(new BitmapDrawable());
|
||||||
|
|
||||||
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_config, null);
|
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_config, null);
|
||||||
|
@ -471,7 +474,8 @@ public class OnScreenMenu {
|
||||||
private LinearLayout vmuIcon;
|
private LinearLayout vmuIcon;
|
||||||
LinearLayout.LayoutParams params;
|
LinearLayout.LayoutParams params;
|
||||||
|
|
||||||
private LinearLayout.LayoutParams setVmuParams() {
|
@SuppressLint("RtlHardcoded")
|
||||||
|
private LinearLayout.LayoutParams setVmuParams() {
|
||||||
int vpX = getPixelsFromDp(72, mContext);
|
int vpX = getPixelsFromDp(72, mContext);
|
||||||
int vpY = getPixelsFromDp(52, mContext);
|
int vpY = getPixelsFromDp(52, mContext);
|
||||||
LinearLayout.LayoutParams vmuParams = new LinearLayout.LayoutParams(
|
LinearLayout.LayoutParams vmuParams = new LinearLayout.LayoutParams(
|
||||||
|
@ -484,6 +488,7 @@ public class OnScreenMenu {
|
||||||
|
|
||||||
public MainPopup(Context c) {
|
public MainPopup(Context c) {
|
||||||
super(c);
|
super(c);
|
||||||
|
//noinspection deprecation
|
||||||
setBackgroundDrawable(new BitmapDrawable());
|
setBackgroundDrawable(new BitmapDrawable());
|
||||||
|
|
||||||
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_main, null);
|
View shell = mContext.getLayoutInflater().inflate(R.layout.menu_popup_main, null);
|
||||||
|
@ -515,7 +520,7 @@ public class OnScreenMenu {
|
||||||
|
|
||||||
OnClickListener clickOptions = new OnClickListener() {
|
OnClickListener clickOptions = new OnClickListener() {
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
displayConfigPopup(MainPopup.this);
|
displayConfigPopup();
|
||||||
popups.remove(MainPopup.this);
|
popups.remove(MainPopup.this);
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
|
@ -525,7 +530,7 @@ public class OnScreenMenu {
|
||||||
|
|
||||||
OnClickListener clickDebugging = new OnClickListener() {
|
OnClickListener clickDebugging = new OnClickListener() {
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
displayDebugPopup(MainPopup.this);
|
displayDebugPopup();
|
||||||
popups.remove(MainPopup.this);
|
popups.remove(MainPopup.this);
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
|
@ -552,11 +557,11 @@ public class OnScreenMenu {
|
||||||
OnClickListener clickExit = new OnClickListener() {
|
OnClickListener clickExit = new OnClickListener() {
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (Config.externalIntent) {
|
if (Config.externalIntent) {
|
||||||
((Activity) mContext).finish();
|
mContext.finish();
|
||||||
} else {
|
} else {
|
||||||
Intent inte = new Intent(mContext, MainActivity.class);
|
Intent inte = new Intent(mContext, MainActivity.class);
|
||||||
mContext.startActivity(inte);
|
mContext.startActivity(inte);
|
||||||
((Activity) mContext).finish();
|
mContext.finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class Gamepad {
|
||||||
public static final String pref_player2 = "device_descriptor_player_2";
|
public static final String pref_player2 = "device_descriptor_player_2";
|
||||||
public static final String pref_player3 = "device_descriptor_player_3";
|
public static final String pref_player3 = "device_descriptor_player_3";
|
||||||
public static final String pref_player4 = "device_descriptor_player_4";
|
public static final String pref_player4 = "device_descriptor_player_4";
|
||||||
public static final String pref_pad = "controller";
|
private static final String pref_pad = "controller";
|
||||||
|
|
||||||
public static final String pref_mic = "mic_plugged_in";
|
public static final String pref_mic = "mic_plugged_in";
|
||||||
|
|
||||||
|
@ -91,70 +91,70 @@ public class Gamepad {
|
||||||
|
|
||||||
public int[] getConsoleController() {
|
public int[] getConsoleController() {
|
||||||
return new int[] {
|
return new int[] {
|
||||||
OuyaController.BUTTON_O, key_CONT_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
OuyaController.BUTTON_A, key_CONT_B,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
OuyaController.BUTTON_U, key_CONT_X,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
OuyaController.BUTTON_Y, key_CONT_Y,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
|
|
||||||
getStartButtonCode(), key_CONT_START,
|
getStartButtonCode(), key_CONT_START,
|
||||||
getSelectButtonCode(), getSelectButtonCode()
|
getSelectButtonCode(), getSelectButtonCode()
|
||||||
// Redundant, but verifies it is mapped properly
|
// Redundant, but verifies it is mapped properly
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getOUYAController() {
|
public int[] getOUYAController() {
|
||||||
return new int[] {
|
return new int[] {
|
||||||
OuyaController.BUTTON_O, key_CONT_A,
|
OuyaController.BUTTON_O, key_CONT_A,
|
||||||
OuyaController.BUTTON_A, key_CONT_B,
|
OuyaController.BUTTON_A, key_CONT_B,
|
||||||
OuyaController.BUTTON_U, key_CONT_X,
|
OuyaController.BUTTON_U, key_CONT_X,
|
||||||
OuyaController.BUTTON_Y, key_CONT_Y,
|
OuyaController.BUTTON_Y, key_CONT_Y,
|
||||||
|
|
||||||
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
OuyaController.BUTTON_DPAD_UP, key_CONT_DPAD_UP,
|
||||||
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
OuyaController.BUTTON_DPAD_DOWN, key_CONT_DPAD_DOWN,
|
||||||
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
|
||||||
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
|
||||||
|
|
||||||
getStartButtonCode(), key_CONT_START,
|
getStartButtonCode(), key_CONT_START,
|
||||||
OuyaController.BUTTON_R3, key_CONT_START
|
OuyaController.BUTTON_R3, key_CONT_START
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getMogaController() {
|
public int[] getMogaController() {
|
||||||
return new int[] {
|
return new int[] {
|
||||||
KeyEvent.KEYCODE_BUTTON_A, key_CONT_A,
|
KeyEvent.KEYCODE_BUTTON_A, key_CONT_A,
|
||||||
KeyEvent.KEYCODE_BUTTON_B, key_CONT_B,
|
KeyEvent.KEYCODE_BUTTON_B, key_CONT_B,
|
||||||
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,
|
||||||
|
|
||||||
getStartButtonCode(), key_CONT_START,
|
getStartButtonCode(), key_CONT_START,
|
||||||
getSelectButtonCode(), getSelectButtonCode()
|
getSelectButtonCode(), getSelectButtonCode()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] setModifiedKeys(String id, int playerNum, SharedPreferences mPrefs) {
|
private int[] setModifiedKeys(String id, SharedPreferences mPrefs) {
|
||||||
return new int[] {
|
return new int[] {
|
||||||
mPrefs.getInt(pref_button_a + id, OuyaController.BUTTON_O), key_CONT_A,
|
mPrefs.getInt(pref_button_a + id, OuyaController.BUTTON_O), key_CONT_A,
|
||||||
mPrefs.getInt(pref_button_b + id, OuyaController.BUTTON_A), key_CONT_B,
|
mPrefs.getInt(pref_button_b + id, OuyaController.BUTTON_A), key_CONT_B,
|
||||||
mPrefs.getInt(pref_button_x + id, OuyaController.BUTTON_U), key_CONT_X,
|
mPrefs.getInt(pref_button_x + id, OuyaController.BUTTON_U), key_CONT_X,
|
||||||
mPrefs.getInt(pref_button_y + id, OuyaController.BUTTON_Y), key_CONT_Y,
|
mPrefs.getInt(pref_button_y + id, OuyaController.BUTTON_Y), key_CONT_Y,
|
||||||
|
|
||||||
mPrefs.getInt(pref_dpad_up + id, OuyaController.BUTTON_DPAD_UP), key_CONT_DPAD_UP,
|
mPrefs.getInt(pref_dpad_up + id, OuyaController.BUTTON_DPAD_UP), key_CONT_DPAD_UP,
|
||||||
mPrefs.getInt(pref_dpad_down + id, OuyaController.BUTTON_DPAD_DOWN), key_CONT_DPAD_DOWN,
|
mPrefs.getInt(pref_dpad_down + id, OuyaController.BUTTON_DPAD_DOWN), key_CONT_DPAD_DOWN,
|
||||||
mPrefs.getInt(pref_dpad_left + id, OuyaController.BUTTON_DPAD_LEFT), key_CONT_DPAD_LEFT,
|
mPrefs.getInt(pref_dpad_left + id, OuyaController.BUTTON_DPAD_LEFT), key_CONT_DPAD_LEFT,
|
||||||
mPrefs.getInt(pref_dpad_right + id, OuyaController.BUTTON_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
|
mPrefs.getInt(pref_dpad_right + id, OuyaController.BUTTON_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
|
||||||
|
|
||||||
mPrefs.getInt(pref_button_start + id, getStartButtonCode()), key_CONT_START,
|
mPrefs.getInt(pref_button_start + id, getStartButtonCode()), key_CONT_START,
|
||||||
mPrefs.getInt(pref_button_select + id, getSelectButtonCode()), getSelectButtonCode()
|
mPrefs.getInt(pref_button_select + id, getSelectButtonCode()), getSelectButtonCode()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ public class Gamepad {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStartButtonCode() {
|
private int getStartButtonCode() {
|
||||||
return KeyEvent.KEYCODE_BUTTON_START;
|
return KeyEvent.KEYCODE_BUTTON_START;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ public class Gamepad {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustomMapping(String id, int playerNum, SharedPreferences prefs) {
|
public void setCustomMapping(String id, int playerNum, SharedPreferences prefs) {
|
||||||
map[playerNum] = setModifiedKeys(id, playerNum, prefs);
|
map[playerNum] = setModifiedKeys(id, prefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initJoyStickLayout(int playerNum) {
|
public void initJoyStickLayout(int playerNum) {
|
||||||
|
@ -202,27 +202,21 @@ public class Gamepad {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void runCompatibilityMode(int joy, SharedPreferences prefs) {
|
|
||||||
for (int n = 0; n < 4; n++) {
|
|
||||||
if (compat[n]) {
|
|
||||||
String id = portId[n];
|
|
||||||
joystick[n] = prefs.getBoolean(Gamepad.pref_js_merged + id, false);
|
|
||||||
getCompatibilityMap(n, portId[n], prefs);
|
|
||||||
initJoyStickLayout(n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fullCompatibilityMode(SharedPreferences prefs) {
|
public void fullCompatibilityMode(SharedPreferences prefs) {
|
||||||
for (int n = 0; n < 4; n++) {
|
for (int joy = 0; joy < 4; joy++) {
|
||||||
runCompatibilityMode(n, prefs);
|
if (compat[joy]) {
|
||||||
|
String id = portId[joy];
|
||||||
|
joystick[joy] = prefs.getBoolean(Gamepad.pref_js_merged + id, false);
|
||||||
|
getCompatibilityMap(joy, portId[joy], prefs);
|
||||||
|
initJoyStickLayout(joy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getCompatibilityMap(int playerNum, String id, SharedPreferences prefs) {
|
public void getCompatibilityMap(int playerNum, String id, SharedPreferences prefs) {
|
||||||
name[playerNum] = prefs.getInt(Gamepad.pref_pad + id, -1);
|
name[playerNum] = prefs.getInt(Gamepad.pref_pad + id, -1);
|
||||||
if (name[playerNum] != -1) {
|
if (name[playerNum] != -1) {
|
||||||
map[playerNum] = setModifiedKeys(id, playerNum, prefs);
|
map[playerNum] = setModifiedKeys(id, prefs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,14 @@ import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
|
||||||
public class SipEmulator extends Thread {
|
public class SipEmulator extends Thread {
|
||||||
|
|
||||||
static final String TAG = "SipEmulator";
|
private static final String TAG = "SipEmulator";
|
||||||
|
|
||||||
//one second of audio data in bytes
|
//one second of audio data in bytes
|
||||||
static final int BUFFER_SIZE = 22050;
|
private static final int BUFFER_SIZE = 22050;
|
||||||
//this needs to get set to the amount the mic normally sends per data request
|
//this needs to get set to the amount the mic normally sends per data request
|
||||||
//...cant be bigger than a maple packet
|
//...cant be bigger than a maple packet
|
||||||
// 240 16 (or 14) bit samples
|
// 240 16 (or 14) bit samples
|
||||||
static final int ONE_BLIP_SIZE = 480; //ALSO DEFINED IN maple_devs.h
|
private static final int ONE_BLIP_SIZE = 480; //ALSO DEFINED IN maple_devs.h
|
||||||
|
|
||||||
private AudioRecord record;
|
private AudioRecord record;
|
||||||
private ConcurrentLinkedQueue<byte[]> bytesReadBuffer;
|
private ConcurrentLinkedQueue<byte[]> bytesReadBuffer;
|
||||||
|
@ -48,7 +48,7 @@ public class SipEmulator extends Thread {
|
||||||
AudioFormat.ENCODING_PCM_16BIT,
|
AudioFormat.ENCODING_PCM_16BIT,
|
||||||
BUFFER_SIZE);
|
BUFFER_SIZE);
|
||||||
|
|
||||||
bytesReadBuffer = new ConcurrentLinkedQueue<byte[]>();
|
bytesReadBuffer = new ConcurrentLinkedQueue<>();
|
||||||
|
|
||||||
continueRecording = false;
|
continueRecording = false;
|
||||||
firstGet = true;
|
firstGet = true;
|
||||||
|
|
|
@ -16,35 +16,32 @@ public class VJoy {
|
||||||
public static final int key_CONT_Y = 0x0200;
|
public static final int key_CONT_Y = 0x0200;
|
||||||
public static final int key_CONT_X = 0x0400;
|
public static final int key_CONT_X = 0x0400;
|
||||||
|
|
||||||
public static final int LAYER_TYPE_SOFTWARE = 1;
|
|
||||||
public static final int LAYER_TYPE_HARDWARE = 2;
|
|
||||||
|
|
||||||
public static int VJoyCount = 13;
|
public static int VJoyCount = 13;
|
||||||
|
|
||||||
public static float[][] baseVJoy() {
|
public static float[][] baseVJoy() {
|
||||||
return new float[][] {
|
return new float[][] {
|
||||||
new float[] { 24+0, 24+64, 64,64, VJoy.key_CONT_DPAD_LEFT, 0},
|
new float[] { 24, 24+64, 64,64, VJoy.key_CONT_DPAD_LEFT, 0},
|
||||||
new float[] { 24+64, 24+0, 64,64, VJoy.key_CONT_DPAD_UP, 0},
|
new float[] { 24+64, 24, 64,64, VJoy.key_CONT_DPAD_UP, 0},
|
||||||
new float[] { 24+128, 24+64, 64,64, VJoy.key_CONT_DPAD_RIGHT, 0},
|
new float[] { 24+128, 24+64, 64,64, VJoy.key_CONT_DPAD_RIGHT, 0},
|
||||||
new float[] { 24+64, 24+128, 64,64, VJoy.key_CONT_DPAD_DOWN, 0},
|
new float[] { 24+64, 24+128, 64,64, VJoy.key_CONT_DPAD_DOWN, 0},
|
||||||
|
|
||||||
new float[] { 440+0, 280+64, 64,64, VJoy.key_CONT_X, 0},
|
new float[] { 440, 280+64, 64,64, VJoy.key_CONT_X, 0},
|
||||||
new float[] { 440+64, 280+0, 64,64, VJoy.key_CONT_Y, 0},
|
new float[] { 440+64, 280, 64,64, VJoy.key_CONT_Y, 0},
|
||||||
new float[] { 440+128, 280+64, 64,64, VJoy.key_CONT_B, 0},
|
new float[] { 440+128, 280+64, 64,64, VJoy.key_CONT_B, 0},
|
||||||
new float[] { 440+64, 280+128, 64,64, VJoy.key_CONT_A, 0},
|
new float[] { 440+64, 280+128,64,64, VJoy.key_CONT_A, 0},
|
||||||
|
|
||||||
new float[] { 320-32, 360+32, 64,64, VJoy.key_CONT_START, 0},
|
new float[] { 320-32, 360+32, 64,64, VJoy.key_CONT_START, 0},
|
||||||
|
|
||||||
new float[] { 440, 200, 90,64, -1, 0},
|
new float[] { 440, 200, 90,64, -1, 0},
|
||||||
new float[] { 542, 200, 90,64, -2, 0},
|
new float[] { 542, 200, 90,64, -2, 0},
|
||||||
|
|
||||||
new float[] { 0, 128+224, 128,128, -3, 0},
|
new float[] { 0, 128+224,128,128,-3, 0},
|
||||||
new float[] { 96, 320, 32,32, -4, 0},
|
new float[] { 96, 320, 32,32, -4, 0},
|
||||||
|
|
||||||
new float[] { 20+0 , 288+0 , 64,64, key_CONT_DPAD_LEFT|key_CONT_DPAD_UP, 0},
|
new float[] { 20, 288, 64,64, key_CONT_DPAD_LEFT|key_CONT_DPAD_UP, 0},
|
||||||
new float[] { 20+128, 288+0 , 64,64, key_CONT_DPAD_RIGHT|key_CONT_DPAD_UP, 0},
|
new float[] { 20+128, 288, 64,64, key_CONT_DPAD_RIGHT|key_CONT_DPAD_UP, 0},
|
||||||
new float[] { 20+0 , 288+128, 64,64, key_CONT_DPAD_LEFT|key_CONT_DPAD_DOWN, 0},
|
new float[] { 20, 288+128,64,64, key_CONT_DPAD_LEFT|key_CONT_DPAD_DOWN, 0},
|
||||||
new float[] { 20+128, 288+128, 64,64, key_CONT_DPAD_RIGHT|key_CONT_DPAD_DOWN, 0},
|
new float[] { 20+128, 288+128,64,64, key_CONT_DPAD_RIGHT|key_CONT_DPAD_DOWN, 0},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,28 +78,45 @@ public class VJoy {
|
||||||
|
|
||||||
public static float[][] getVjoy_d(float[][] vjoy_d_custom) {
|
public static float[][] getVjoy_d(float[][] vjoy_d_custom) {
|
||||||
return new float[][] {
|
return new float[][] {
|
||||||
new float[] { 20+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT},
|
new float[] { 20*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
new float[] { 20+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_UP},
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT},
|
||||||
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT},
|
new float[] { 20+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
new float[] { 20+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_DOWN},
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_UP},
|
||||||
|
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT},
|
||||||
|
new float[] { 20+64*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_DOWN},
|
||||||
|
|
||||||
new float[] { 448+0*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][1], 64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_X},
|
new float[] { 448*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][1],
|
||||||
new float[] { 448+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+0*vjoy_d_custom[1][2]+vjoy_d_custom[1][1], 64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_Y},
|
64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_X},
|
||||||
new float[] { 448+128*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][1], 64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_B},
|
new float[] { 448+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288*vjoy_d_custom[1][2]+vjoy_d_custom[1][1],
|
||||||
new float[] { 448+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+128*vjoy_d_custom[1][2]+vjoy_d_custom[1][1], 64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_A},
|
64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_Y},
|
||||||
|
new float[] { 448+128*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][1],
|
||||||
|
64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_B},
|
||||||
|
new float[] { 448+64*vjoy_d_custom[1][2]+vjoy_d_custom[1][0], 288+128*vjoy_d_custom[1][2]+vjoy_d_custom[1][1],
|
||||||
|
64*vjoy_d_custom[1][2],64*vjoy_d_custom[1][2], key_CONT_A},
|
||||||
|
|
||||||
new float[] { 320-32+vjoy_d_custom[2][0], 288+128+vjoy_d_custom[2][1], 64*vjoy_d_custom[2][2],64*vjoy_d_custom[2][2], key_CONT_START},
|
new float[] { 320-32+vjoy_d_custom[2][0], 288+128+vjoy_d_custom[2][1],
|
||||||
|
64*vjoy_d_custom[2][2],64*vjoy_d_custom[2][2], key_CONT_START},
|
||||||
|
|
||||||
new float[] { 440+vjoy_d_custom[3][0], 200+vjoy_d_custom[3][1], 90*vjoy_d_custom[3][2],64*vjoy_d_custom[3][2], -1},
|
new float[] { 440+vjoy_d_custom[3][0], 200+vjoy_d_custom[3][1],
|
||||||
new float[] { 542+vjoy_d_custom[4][0], 200+vjoy_d_custom[4][1], 90*vjoy_d_custom[4][2],64*vjoy_d_custom[4][2], -2},
|
90*vjoy_d_custom[3][2],64*vjoy_d_custom[3][2], -1},
|
||||||
|
new float[] { 542+vjoy_d_custom[4][0], 200+vjoy_d_custom[4][1],
|
||||||
|
90*vjoy_d_custom[4][2],64*vjoy_d_custom[4][2], -2},
|
||||||
|
|
||||||
new float[] { 16+vjoy_d_custom[5][0], 24+32+vjoy_d_custom[5][1], 128*vjoy_d_custom[5][2],128*vjoy_d_custom[5][2], -3},
|
new float[] { 16+vjoy_d_custom[5][0], 24+32+vjoy_d_custom[5][1],
|
||||||
new float[] { 96+vjoy_d_custom[5][0], 320+vjoy_d_custom[5][1], 32*vjoy_d_custom[5][2],32*vjoy_d_custom[5][2], -4},
|
128*vjoy_d_custom[5][2],128*vjoy_d_custom[5][2],-3},
|
||||||
|
new float[] { 96+vjoy_d_custom[5][0], 320+vjoy_d_custom[5][1],
|
||||||
|
32*vjoy_d_custom[5][2],32*vjoy_d_custom[5][2], -4},
|
||||||
|
|
||||||
new float[] { 20+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT|key_CONT_DPAD_UP},
|
new float[] { 20*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT|key_CONT_DPAD_UP},
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT|key_CONT_DPAD_UP},
|
||||||
new float[] { 20+0*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT|key_CONT_DPAD_DOWN},
|
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1], 64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT|key_CONT_DPAD_DOWN},
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT|key_CONT_DPAD_UP},
|
||||||
|
new float[] { 20*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_LEFT|key_CONT_DPAD_DOWN},
|
||||||
|
new float[] { 20+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][0], 288+128*vjoy_d_custom[0][2]+vjoy_d_custom[0][1],
|
||||||
|
64*vjoy_d_custom[0][2],64*vjoy_d_custom[0][2], key_CONT_DPAD_RIGHT|key_CONT_DPAD_DOWN},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue