diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2016-01-30 10:55:11 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2016-01-30 10:55:11 -0500 |
| commit | 8e8e6f3234ef6bf4b0ecedd304e47ca73b702ea8 (patch) | |
| tree | 877c4f2d8dc6f0236a450c3f51b888743971dc81 /Source/Android | |
| parent | c2c1f839dd3302249db9dbc04e64f320fa4586d0 (diff) | |
| parent | 92158788684c0d2d37e1124eb861539128e03e91 (diff) | |
Merge pull request #3581 from sigmabeta/android-input-config
[Android] Implement Gamecube Input setting screen
Diffstat (limited to 'Source/Android')
28 files changed, 239 insertions, 30 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java index 275bd051cf..38ea670f5e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -19,7 +19,7 @@ import org.dolphinemu.dolphinemu.utils.Log; */ public final class NativeLibrary { - private static EmulationActivity mEmulationActivity; + public static EmulationActivity sEmulationActivity; /** * Button type for use in onTouchEvent @@ -403,12 +403,12 @@ public final class NativeLibrary public static void displayAlertMsg(final String alert) { Log.error("[NativeLibrary] Alert: " + alert); - mEmulationActivity.runOnUiThread(new Runnable() + sEmulationActivity.runOnUiThread(new Runnable() { @Override public void run() { - Toast.makeText(mEmulationActivity, "Panic Alert: " + alert, Toast.LENGTH_LONG).show(); + Toast.makeText(sEmulationActivity, "Panic Alert: " + alert, Toast.LENGTH_LONG).show(); } }); } @@ -416,12 +416,12 @@ public final class NativeLibrary public static void endEmulationActivity() { Log.verbose("[NativeLibrary]Ending EmulationActivity."); - mEmulationActivity.exitWithAnimation(); + sEmulationActivity.exitWithAnimation(); } public static void setEmulationActivity(EmulationActivity emulationActivity) { Log.verbose("[NativeLibrary]Registering EmulationActivity."); - mEmulationActivity = emulationActivity; + sEmulationActivity = emulationActivity; } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index 36b75c1a75..2f38df3373 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -118,7 +118,7 @@ public final class EmulationActivity extends AppCompatActivity setTheme(themeId); super.onCreate(savedInstanceState); - Java_GCAdapter.our_activity = this; + Java_GCAdapter.manager = (UsbManager) getSystemService(Context.USB_SERVICE); // Picasso will take a while to load these big-ass screenshots. So don't run diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragment.java new file mode 100644 index 0000000000..346a16741d --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragment.java @@ -0,0 +1,6 @@ +package org.dolphinemu.dolphinemu.ui.input.gamecube; + + +public class ControllerFragment +{ +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentPresenter.java new file mode 100644 index 0000000000..d8916ccf08 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentPresenter.java @@ -0,0 +1,6 @@ +package org.dolphinemu.dolphinemu.ui.input.gamecube; + + +public class ControllerFragmentPresenter +{ +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentView.java new file mode 100644 index 0000000000..77c8b7b3a7 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/input/gamecube/ControllerFragmentView.java @@ -0,0 +1,6 @@ +package org.dolphinemu.dolphinemu.ui.input.gamecube; + + +public interface ControllerFragmentView +{ +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java index c1052fc42a..42b3231c8c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java @@ -50,6 +50,10 @@ public final class MainPresenter mView.launchSettingsActivity(SettingsFile.FILE_NAME_GFX); return true; + case R.id.menu_settings_gcpad: + mView.launchSettingsActivity(SettingsFile.FILE_NAME_GCPAD); + return true; + case R.id.menu_refresh: mView.refresh(); return true; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java index b1103998b3..bf9087bef1 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java @@ -237,6 +237,10 @@ public final class TvMainActivity extends Activity implements MainView R.drawable.ic_settings_graphics_tv, R.string.grid_menu_video_settings)); + rowItems.add(new TvSettingsItem(R.id.menu_settings_gcpad, + R.drawable.ic_settings_gcpad, + R.string.grid_menu_gcpad_settings)); + rowItems.add(new TvSettingsItem(R.id.button_add_directory, R.drawable.ic_add_tv, R.string.add_directory_title)); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java index 70d3cfbb86..206d6432dd 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java @@ -150,6 +150,12 @@ public final class SettingsActivity extends AppCompatActivity implements Setting mPresenter.onSettingChanged(); } + @Override + public void onGcPadSettingChanged(String key, int value) + { + mPresenter.onGcPadSettingChanged(key, value); + } + private SettingsFragment getFragment() { return (SettingsFragment) getFragmentManager().findFragmentByTag(SettingsFragment.FRAGMENT_TAG); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java index 8c16443cec..59d4cbee77 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java @@ -39,6 +39,21 @@ public final class SettingsActivityPresenter if (savedInstanceState == null) { + // TODO DI should be able to get rid of this hack + if (filename.equals(SettingsFile.FILE_NAME_GCPAD)) + { + // Psyche! Don't actually load that file (yet). + mFileName = SettingsFile.FILE_NAME_DOLPHIN; + + // But do display its fragment, as if we had. + mView.showSettingsFragment(SettingsFile.FILE_NAME_GCPAD, false); + } + else + { + mFileName = filename; + mView.showSettingsFragment(mFileName, false); + } + SettingsFile.readFile(mFileName) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -60,8 +75,6 @@ public final class SettingsActivityPresenter mView.onSettingsFileNotFound(); } }); - - mView.showSettingsFragment(mFileName, false); } else { @@ -147,4 +160,18 @@ public final class SettingsActivityPresenter { outState.putBoolean(SHOULD_SAVE, mShouldSave); } + + public void onGcPadSettingChanged(String key, int value) + { + switch (value) + { + case 6: + mView.showToastMessage("Configuration coming soon. Settings from old versions will still work."); + break; + + case 12: + mView.showSettingsFragment(key, true); + break; + } + } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java index 0a14440087..4307ec891b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java @@ -69,4 +69,13 @@ public interface SettingsActivityView * unless this has been called, the Activity will not save to disk. */ void onSettingChanged(); + + /** + * Called by a containing Fragment to tell the containing Activity that a GCPad's setting + * was modified. + * + * @param key Identifier for the GCPad that was modified. + * @param value New setting for the GCPad. + */ + void onGcPadSettingChanged(String key, int value); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java index 72ff6049b1..4028af87a2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java @@ -189,6 +189,11 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde int value = getValueForSingleChoiceSelection(scSetting, which); + if (scSetting.getKey().startsWith(SettingsFile.KEY_GCPAD_TYPE)) + { + mView.onGcPadSettingChanged(scSetting.getKey(), value); + } + // Get the backing Setting, which may be null (if for example it was missing from the file) IntSetting setting = scSetting.setSelectedValue(value); if (setting != null) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java index d265c9b824..6ccd5f1a22 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java @@ -151,6 +151,12 @@ public final class SettingsFragment extends Fragment implements SettingsFragment mActivity.onSettingChanged(); } + @Override + public void onGcPadSettingChanged(String key, int value) + { + mActivity.onGcPadSettingChanged(key, value); + } + public static final String FRAGMENT_TAG = BuildConfig.APPLICATION_ID + ".fragment.settings"; public static final String ARGUMENT_MENU_TAG = FRAGMENT_TAG + ".menu_tag"; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java index 6c697bfb3d..72eaad9187 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java @@ -26,6 +26,8 @@ public final class SettingsFragmentPresenter private HashMap<String, SettingSection> mSettings; private ArrayList<SettingsItem> mSettingsList; + private int mGcPadNumber; + public SettingsFragmentPresenter(SettingsFragmentView view) { mView = view; @@ -33,7 +35,15 @@ public final class SettingsFragmentPresenter public void onCreate(String menuTag) { - mMenuTag = menuTag; + if (menuTag.startsWith(SettingsFile.KEY_GCPAD_TYPE)) + { + mMenuTag = SettingsFile.KEY_GCPAD_TYPE; + mGcPadNumber = Integer.valueOf(menuTag.substring(menuTag.length() - 1)); + } + else + { + mMenuTag = menuTag; + } } public void onViewCreated(HashMap<String, SettingSection> settings) @@ -92,6 +102,10 @@ public final class SettingsFragmentPresenter addGraphicsSettings(sl); break; + case SettingsFile.FILE_NAME_GCPAD: + addGcPadSettings(sl); + break; + case SettingsFile.SECTION_GFX_ENHANCEMENTS: addEnhanceSettings(sl); break; @@ -100,6 +114,10 @@ public final class SettingsFragmentPresenter addHackSettings(sl); break; + case SettingsFile.KEY_GCPAD_TYPE: + addGcAdapterSettings(sl, mGcPadNumber); + break; + default: mView.showToastMessage("Unimplemented menu."); return; @@ -139,6 +157,19 @@ public final class SettingsFragmentPresenter } + private void addGcPadSettings(ArrayList<SettingsItem> sl) + { + if (mSettings != null) + { + for (int i = 0; i < 4; i++) + { + // TODO This controller_0 + i business is quite the hack. It should work, but only if the definitions are kept together and in order. + Setting gcPadSetting = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_GCPAD_TYPE + i); + sl.add(new SingleChoiceSetting(SettingsFile.KEY_GCPAD_TYPE + i, SettingsFile.SECTION_CORE, R.string.controller_0 + i, 0, R.array.gcpadTypeEntries, R.array.gcpadTypeValues, 0, gcPadSetting)); + } + } + } + private void addGraphicsSettings(ArrayList<SettingsItem> sl) { Setting showFps = null; @@ -229,6 +260,15 @@ public final class SettingsFragmentPresenter sl.add(new SingleChoiceSetting(SettingsFile.KEY_ASPECT_RATIO, SettingsFile.SECTION_GFX_HACKS, R.string.aspect_ratio, R.string.aspect_ratio_descrip, R.array.aspectRatioEntries, R.array.aspectRatioValues, 0, aspectRatio)); } + private void addGcAdapterSettings(ArrayList<SettingsItem> sl, int gcPadNumber) + { + Setting rumble = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber); + Setting bongos = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber); + + sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_rumble, R.string.gc_adapter_rumble_description, false, rumble)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber, SettingsFile.SECTION_CORE, R.string.gc_adapter_bongos, R.string.gc_adapter_bongos_description, false, bongos)); + } + private int getXfbValue() { int xfbValue; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java index 66ea466b54..8cdf4361e7 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java @@ -76,4 +76,12 @@ public interface SettingsFragmentView * Have the fragment tell the containing Activity that a setting was modified. */ void onSettingChanged(); + + /** + * Have the fragment tell the containing Activity that a GCPad's setting was modified. + * + * @param key Identifier for the GCPad that was modified. + * @param value New setting for the GCPad. + */ + void onGcPadSettingChanged(String key, int value); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java index 2b2286d5c7..87d816d93e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java @@ -1,8 +1,6 @@ package org.dolphinemu.dolphinemu.utils; -import android.app.Activity; import android.app.PendingIntent; -import android.content.Context; import android.content.Intent; import android.hardware.usb.UsbConfiguration; import android.hardware.usb.UsbConstants; @@ -12,6 +10,7 @@ import android.hardware.usb.UsbEndpoint; import android.hardware.usb.UsbInterface; import android.hardware.usb.UsbManager; +import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.services.USBPermService; import java.util.HashMap; @@ -20,9 +19,7 @@ import java.util.Map; public class Java_GCAdapter { public static UsbManager manager; - public static Activity our_activity; static byte[] controller_payload = new byte[37]; - static byte HasRead; static UsbDeviceConnection usb_con; static UsbInterface usb_intf; @@ -41,8 +38,8 @@ public class Java_GCAdapter { { Intent intent = new Intent(); PendingIntent pend_intent; - intent.setClass(our_activity, USBPermService.class); - pend_intent = PendingIntent.getService(our_activity, 0, intent, 0); + intent.setClass(NativeLibrary.sEmulationActivity, USBPermService.class); + pend_intent = PendingIntent.getService(NativeLibrary.sEmulationActivity, 0, intent, 0); manager.requestPermission(dev, pend_intent); } } @@ -79,13 +76,29 @@ public class Java_GCAdapter { } public static int Input() { - int read = usb_con.bulkTransfer(usb_in, controller_payload, controller_payload.length, 16); - return read; + if (usb_in != null) + { + int read = usb_con.bulkTransfer(usb_in, controller_payload, controller_payload.length, 16); + return read; + } + else + { + // TODO Is this right? + return 0; + } } public static int Output(byte[] rumble) { - int size = usb_con.bulkTransfer(usb_out, rumble, 5, 16); - return size; + if (usb_out != null) + { + int size = usb_con.bulkTransfer(usb_out, rumble, 5, 16); + return size; + } + else + { + // TODO Is this right? + return 0; + } } public static void OpenAdapter() diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java index 865e3371ae..12221cb0fe 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java @@ -70,8 +70,13 @@ public final class SettingsFile public static final String KEY_TEXCACHE_ACCURACY = "SafeTextureCacheColorSamples"; public static final String KEY_XFB = "UseXFB"; public static final String KEY_XFB_REAL = "UseRealXFB"; - public static final String KEY_FAST_DEPTH= "FastDepthCalc"; - public static final String KEY_ASPECT_RATIO= "AspectRatio"; + public static final String KEY_FAST_DEPTH = "FastDepthCalc"; + public static final String KEY_ASPECT_RATIO = "AspectRatio"; + + public static final String KEY_GCPAD_TYPE = "SIDevice"; + + public static final String KEY_GCADAPTER_RUMBLE = "AdapterRumble"; + public static final String KEY_GCADAPTER_BONGOS = "SimulateKonga"; // Internal only, not actually found in settings file. public static final String KEY_XFB_METHOD = "XFBMethod"; diff --git a/Source/Android/app/src/main/res/drawable-hdpi/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable-hdpi/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..08346b24d3 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable-hdpi/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/drawable-mdpi/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable-mdpi/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..a109fe764f --- /dev/null +++ b/Source/Android/app/src/main/res/drawable-mdpi/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable-xhdpi/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..50f316a5d4 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable-xhdpi/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/drawable-xxhdpi/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable-xxhdpi/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..bc2daefaec --- /dev/null +++ b/Source/Android/app/src/main/res/drawable-xxhdpi/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/drawable-xxxhdpi/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable-xxxhdpi/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..c3860e1b51 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable-xxxhdpi/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/drawable/ic_settings_gcpad.png b/Source/Android/app/src/main/res/drawable/ic_settings_gcpad.png Binary files differnew file mode 100644 index 0000000000..c3860e1b51 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable/ic_settings_gcpad.png diff --git a/Source/Android/app/src/main/res/layout/fragment_input_gc_list.xml b/Source/Android/app/src/main/res/layout/fragment_input_gc_list.xml new file mode 100644 index 0000000000..d656890320 --- /dev/null +++ b/Source/Android/app/src/main/res/layout/fragment_input_gc_list.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<org.dolphinemu.dolphinemu.ui.settings.SettingsFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/activity_horizontal_margin" + android:layout_marginStart="@dimen/activity_horizontal_margin" + android:background="@android:color/white" + android:elevation="@dimen/elevation_high" + android:orientation="vertical"> + + <include + android:id="@+id/list_item_controller_one" + layout="@layout/list_item_setting" + /> + + <include + android:id="@+id/list_item_controller_two" + layout="@layout/list_item_setting" + /> + + <include + android:id="@+id/list_item_controller_two" + layout="@layout/list_item_setting" + /> + + <include + android:id="@+id/list_item_controller_two" + layout="@layout/list_item_setting" + /> + </LinearLayout> + +</org.dolphinemu.dolphinemu.ui.settings.SettingsFrameLayout>
\ No newline at end of file diff --git a/Source/Android/app/src/main/res/menu/menu_game_grid.xml b/Source/Android/app/src/main/res/menu/menu_game_grid.xml index a87f89f32d..034da74ee0 100644 --- a/Source/Android/app/src/main/res/menu/menu_game_grid.xml +++ b/Source/Android/app/src/main/res/menu/menu_game_grid.xml @@ -2,11 +2,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item - android:id="@+id/menu_refresh" - android:title="@string/grid_menu_refresh" - android:icon="@drawable/ic_refresh" - app:showAsAction="ifRoom"/> - <item android:id="@+id/menu_settings_core" android:title="@string/grid_menu_core_settings" android:icon="@drawable/ic_settings_core" @@ -16,5 +11,15 @@ android:title="@string/grid_menu_video_settings" android:icon="@drawable/ic_settings_graphics" app:showAsAction="ifRoom"/> + <item + android:id="@+id/menu_settings_gcpad" + android:title="@string/grid_menu_gcpad_settings" + android:icon="@drawable/ic_settings_gcpad" + app:showAsAction="ifRoom"/> + <item + android:id="@+id/menu_refresh" + android:title="@string/grid_menu_refresh" + android:icon="@drawable/ic_refresh" + app:showAsAction="ifRoom"/> </menu>
\ No newline at end of file diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index bf2afc4527..d327a5004e 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -147,4 +147,16 @@ <item>Taiwan</item> <item>Unknown</item> </string-array> + + <string-array name="gcpadTypeEntries"> + <item>Disabled</item> + <item>Emulated</item> + <item>Gamecube Adapter</item> + </string-array> + <integer-array name="gcpadTypeValues"> + <item>0</item> + <item>6</item> + <item>12</item> + </integer-array> + </resources> diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index db5cc8355a..cf391e8ec8 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -78,10 +78,14 @@ <string name="controller_bindings">Controller Bindings</string> <string name="controller_gc">GameCube Controllers</string> <string name="controller_wii">Wii Controllers (Wiimotes)</string> + + <!-- WARNING Do not move these controller entries AT ALL COSTS! --> <string name="controller_0">GameCube Controller 1</string> <string name="controller_1">GameCube Controller 2</string> <string name="controller_2">GameCube Controller 3</string> <string name="controller_3">GameCube Controller 4</string> + <!-- END WARNING --> + <string name="enable_controller">Enable controller</string> <string name="controller_buttons">Buttons</string> <string name="controller_dpad">Directional Keys</string> @@ -317,8 +321,9 @@ <!-- Game Grid Screen--> - <string name="grid_menu_core_settings">Settings</string> + <string name="grid_menu_core_settings">CPU Settings</string> <string name="grid_menu_video_settings">Video Settings</string> + <string name="grid_menu_gcpad_settings">Gamecube Input</string> <string name="grid_menu_refresh">Refresh Library</string> <!-- Add Directory Screen--> @@ -340,7 +345,13 @@ <string name="emulation_toggle_input">Toggle Touch Controls</string> <string name="emulation_quicksave">Quick Save</string> <string name="emulation_quickload">Quick Load</string> - + + <!-- GC Adapter Menu--> + <string name="gc_adapter_rumble">Enable Vibration</string> + <string name="gc_adapter_rumble_description">Enable the vibration function for this Gamecube controller.</string> + <string name="gc_adapter_bongos">Bongo Controller</string> + <string name="gc_adapter_bongos_description">Enable this if you are using bongos on this port.</string> + <!-- Package Names--> <string name="application_id">org.dolphinemu.dolphinemu</string> </resources> diff --git a/Source/Android/build.gradle b/Source/Android/build.gradle index 469472dc22..ae2e54a2d9 100644 --- a/Source/Android/build.gradle +++ b/Source/Android/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-alpha7' + classpath 'com.android.tools.build:gradle:2.0.0-alpha8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/Source/Android/gradle.properties b/Source/Android/gradle.properties index 0907253421..ffbabe60d3 100644 --- a/Source/Android/gradle.properties +++ b/Source/Android/gradle.properties @@ -10,7 +10,7 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit |
