diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-06-18 07:09:20 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-06-18 07:09:38 -0500 |
| commit | 7223778520472bc2cca33632df56e451fc1d3796 (patch) | |
| tree | db11405cd792b4dd3de08c30a822033e2c2bbee2 /Source/Android | |
| parent | a518a1cbdcc311af1b01eeb940b3fb57f6f15554 (diff) | |
[Android] Gamepad input. Refactor JNI native functions to all pull from a single class instead of everywhere willy-nilly
Diffstat (limited to 'Source/Android')
11 files changed, 544 insertions, 254 deletions
diff --git a/Source/Android/.idea/workspace.xml b/Source/Android/.idea/workspace.xml index 2a518c17f3..dee70dcfd4 100644 --- a/Source/Android/.idea/workspace.xml +++ b/Source/Android/.idea/workspace.xml @@ -29,7 +29,7 @@ </layouts> </component> <component name="BookmarkManager"> - <bookmark url="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java" line="37" /> + <bookmark url="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java" line="27" /> </component> <component name="ChangeListManager"> <list default="true" id="682e8195-a9c2-48a7-a941-e8c10f5cb64a" name="Default" comment="" /> @@ -103,65 +103,42 @@ <file leaf-file-name="DolphinEmulator.java" pinned="false" current="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="164" column="4" selection-start="4729" selection-end="4729" vertical-scroll-proportion="0.0" vertical-offset="2445" max-vertical-offset="2640"> + <state line="171" column="88" selection-start="5001" selection-end="5001" vertical-scroll-proportion="0.0" vertical-offset="705" max-vertical-offset="2790"> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="AndroidManifest.xml" pinned="false" current="true" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/AndroidManifest.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state line="6" column="39" selection-start="248" selection-end="248" vertical-scroll-proportion="0.026223777" vertical-offset="75" max-vertical-offset="735"> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="GameListView.java" pinned="false" current="false" current-in-tab="false"> + <file leaf-file-name="GameListView.java" pinned="false" current="true" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListView.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="51" column="78" selection-start="1629" selection-end="1629" vertical-scroll-proportion="0.0" vertical-offset="750" max-vertical-offset="3420"> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="FolderBrowser.java" pinned="false" current="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/FolderBrowser.java"> - <provider selected="true" editor-type-id="text-editor"> - <state line="81" column="20" selection-start="2652" selection-end="2652" vertical-scroll-proportion="0.0" vertical-offset="1200" max-vertical-offset="1485"> - <folding /> + <state line="151" column="32" selection-start="5433" selection-end="5433" vertical-scroll-proportion="0.7396907" vertical-offset="1228" max-vertical-offset="2745"> + <folding> + <element signature="method#Fill#0;class#GameListView#0" expanded="false" /> + <element signature="e#5708#5722#0" expanded="true" /> + <element signature="e#6166#7251#0" expanded="true" /> + <element signature="e#7244#7245#0" expanded="true" /> + </folding> </state> </provider> </entry> </file> - <file leaf-file-name="prefs.xml" pinned="false" current="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/res/layout/prefs.xml"> - <provider editor-type-id="android-designer"> - <state /> - </provider> + <file leaf-file-name="NativeLibrary.java" pinned="false" current="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/NativeLibrary.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="495"> + <state line="11" column="56" selection-start="291" selection-end="291" vertical-scroll-proportion="0.0" vertical-offset="6" max-vertical-offset="615"> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="prefvalues.xml" pinned="false" current="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/res/values/prefvalues.xml"> + <file leaf-file-name="InputConfigActivity.java" pinned="false" current="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigActivity.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="14" column="31" selection-start="392" selection-end="392" vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="405"> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="PrefsActivity.java" pinned="false" current="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsActivity.java"> - <provider selected="true" editor-type-id="text-editor"> - <state line="14" column="0" selection-start="389" selection-end="389" vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="690"> - <folding /> + <state line="141" column="0" selection-start="4851" selection-end="4851" vertical-scroll-proportion="0.0" vertical-offset="1562" max-vertical-offset="2610"> + <folding> + <element signature="e#3481#3488#0" expanded="true" /> + </folding> </state> </provider> </entry> @@ -173,6 +150,11 @@ <setting name="OPEN_NEW_TAB" value="false" /> </FindUsagesManager> </component> + <component name="GenerateSignedApkSettings"> + <option name="KEY_STORE_PATH" value="$USER_HOME$/my-release-key.keystore" /> + <option name="KEY_ALIAS" value="ryanhkey" /> + <option name="REMEMBER_PASSWORDS" value="true" /> + </component> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." /> </component> @@ -184,22 +166,22 @@ <component name="IdeDocumentHistory"> <option name="changedFiles"> <list> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SideMenuItem.java" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SettingMenuItem.java" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SettingMenuAdapter.java" /> - <option value="$PROJECT_DIR$/res/layout/fragment_edit_name.xml" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/EditNameDialog.java" /> - <option value="$PROJECT_DIR$/res/values/array.xml" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsFragment.java" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsActivity.java" /> - <option value="$PROJECT_DIR$/res/values/prefs.xml" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SettingBrowser.java" /> - <option value="$PROJECT_DIR$/res/layout/prefs.xml" /> <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/FolderBrowser.java" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListView.java" /> <option value="$PROJECT_DIR$/res/values/prefvalues.xml" /> - <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigView.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfig.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListItem.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputClass.java" /> <option value="$PROJECT_DIR$/AndroidManifest.xml" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigAdapter.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsActivity.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigItem.java" /> + <option value="$PROJECT_DIR$/assets/GCPadNew.ini" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/NativeLibrary.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigActivity.java" /> + <option value="$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListView.java" /> </list> </option> </component> @@ -253,6 +235,7 @@ <sortByType /> </navigator> <panes> + <pane id="PackagesPane" /> <pane id="Scope"> <subPane subId="Project Files"> <PATH> @@ -288,18 +271,13 @@ <option name="myItemId" value="" /> <option name="myItemType" value="" /> </PATH_ELEMENT> - <PATH_ELEMENT USER_OBJECT="src"> - <option name="myItemId" value="" /> - <option name="myItemType" value="" /> - </PATH_ELEMENT> - <PATH_ELEMENT USER_OBJECT="org/dolphinemu/dolphinemu"> + <PATH_ELEMENT USER_OBJECT="assets"> <option name="myItemId" value="" /> <option name="myItemType" value="" /> </PATH_ELEMENT> </PATH> </subPane> </pane> - <pane id="PackagesPane" /> <pane id="ProjectPane"> <subPane> <PATH> @@ -341,23 +319,26 @@ </panes> </component> <component name="PropertiesComponent"> + <property name="recentsLimit" value="5" /> + <property name="options.splitter.main.proportions" value="0.3" /> + <property name="AndroidRunProguardForReleaseBuild" value="false" /> + <property name="dynamic.classpath" value="false" /> + <property name="GoToFile.includeJavaFiles" value="false" /> + <property name="MemberChooser.sorted" value="false" /> + <property name="GoToClass.includeLibraries" value="false" /> + <property name="ExportedModule" value="Android" /> <property name="options.searchVisible" value="true" /> - <property name="GoToClass.toSaveIncludeLibraries" value="false" /> <property name="FullScreen" value="false" /> - <property name="GoToFile.includeJavaFiles" value="false" /> + <property name="MemberChooser.showClasses" value="true" /> <property name="MemberChooser.copyJavadoc" value="false" /> - <property name="recentsLimit" value="5" /> + <property name="ExportedApkPath" value="$USER_HOME$/Desktop/DolphinEmu-Pre0.6-Android2.3.apk" /> <property name="options.lastSelected" value="android.dex.compiler" /> - <property name="restartRequiresConfirmation" value="true" /> - <property name="MemberChooser.sorted" value="false" /> - <property name="options.splitter.details.proportions" value="0.2" /> - <property name="options.splitter.main.proportions" value="0.3" /> <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS" value="192.168.0.188:5555" /> - <property name="GoToClass.includeLibraries" value="false" /> + <property name="restartRequiresConfirmation" value="true" /> + <property name="last_opened_file_path" value="$USER_HOME$/my-release-key.keystore" /> + <property name="GoToClass.toSaveIncludeLibraries" value="false" /> <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_AVD" value="YES" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$" /> - <property name="MemberChooser.showClasses" value="true" /> - <property name="dynamic.classpath" value="false" /> + <property name="options.splitter.details.proportions" value="0.2" /> </component> <component name="RunManager" selected="Android Application.Dolphin Emulator"> <configuration default="true" type="Remote" factoryName="Remote"> @@ -386,6 +367,19 @@ <option name="CLEAR_LOGCAT" value="false" /> <method /> </configuration> + <configuration default="true" type="Applet" factoryName="Applet"> + <module name="" /> + <option name="MAIN_CLASS_NAME" /> + <option name="HTML_FILE_NAME" /> + <option name="HTML_USED" value="false" /> + <option name="WIDTH" value="400" /> + <option name="HEIGHT" value="300" /> + <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> + <option name="VM_PARAMETERS" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <method /> + </configuration> <configuration default="true" type="JUnit" factoryName="JUnit"> <module name="" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> @@ -436,19 +430,6 @@ <envs /> <method /> </configuration> - <configuration default="true" type="Applet" factoryName="Applet"> - <module name="" /> - <option name="MAIN_CLASS_NAME" /> - <option name="HTML_FILE_NAME" /> - <option name="HTML_USED" value="false" /> - <option name="WIDTH" value="400" /> - <option name="HEIGHT" value="300" /> - <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> - <option name="VM_PARAMETERS" /> - <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> - <option name="ALTERNATIVE_JRE_PATH" /> - <method /> - </configuration> <configuration default="false" name="Dolphin Emulator" type="AndroidRunConfigurationType" factoryName="Android Application"> <module name="Android" /> <option name="ACTIVITY_CLASS" value="" /> @@ -553,29 +534,29 @@ <frame x="24" y="0" width="1342" height="744" extended-state="0" /> <editor active="true" /> <layout> - <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3110368" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.17851622" sideWeight="0.6912752" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.30769232" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> - <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32998455" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" /> - <window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.7466443" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.13678516" sideWeight="0.6912752" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32998326" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2179289" sideWeight="0.6912752" order="0" side_tool="false" content_ui="combo" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32998326" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" /> - <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.7466443" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32998455" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.30536914" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> + <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32998326" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2179289" sideWeight="0.69463086" order="0" side_tool="false" content_ui="combo" /> + <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32718122" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.17619784" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.30536914" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2496136" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.17619784" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32885906" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> </layout> </component> @@ -640,122 +621,103 @@ <breakpoint-manager /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/res/values/prefvalues.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <folding /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/FolderBrowser.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="58" column="30" selection-start="1963" selection-end="1963" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <folding /> - </state> + <state line="17" column="13" selection-start="417" selection-end="417" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1290" /> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/layout/prefs.xml"> - <provider editor-type-id="android-designer"> - <state /> - </provider> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListAdapter.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="21" column="41" selection-start="857" selection-end="857" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <folding /> - </state> + <state line="12" column="13" selection-start="300" selection-end="300" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="825" /> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListItem.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="30" column="64" selection-start="729" selection-end="729" vertical-scroll-proportion="-0.42105263" vertical-offset="0" max-vertical-offset="0"> - <folding /> - </state> + <state line="10" column="13" selection-start="231" selection-end="231" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1050" /> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SideMenuAdapter.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="11" column="13" selection-start="267" selection-end="267" vertical-scroll-proportion="0.082167834" vertical-offset="0" max-vertical-offset="0"> - <folding /> - </state> + <state line="11" column="13" selection-start="267" selection-end="267" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="720" /> </provider> </entry> - <entry file="jar://$APPLICATION_HOME_DIR$/sdk/platforms/android-17/android.jar!/android/app/Activity.class"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/SideMenuItem.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="132" column="0" selection-start="5190" selection-end="5190" vertical-scroll-proportion="2.0" vertical-offset="0" max-vertical-offset="0" /> + <state line="8" column="13" selection-start="168" selection-end="168" vertical-scroll-proportion="0.31007752" vertical-offset="0" max-vertical-offset="630" /> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/layout/folderbrowser.xml"> - <provider selected="true" editor-type-id="android-designer"> - <state /> - </provider> - <provider editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0" /> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java"> + <provider selected="true" editor-type-id="text-editor"> + <state line="6" column="13" selection-start="150" selection-end="150" vertical-scroll-proportion="0.15503876" vertical-offset="0" max-vertical-offset="885" /> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/layout/main.xml"> - <provider selected="true" editor-type-id="android-designer"> - <state /> - </provider> - <provider editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0" /> + <entry file="file://$PROJECT_DIR$/AndroidManifest.xml"> + <provider selected="true" editor-type-id="text-editor"> + <state line="6" column="69" selection-start="278" selection-end="278" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="810"> + <folding /> + </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/layout/folderbrowserfooter.xml"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsActivity.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0" /> - </provider> - <provider editor-type-id="android-designer"> - <state /> + <state line="13" column="13" selection-start="346" selection-end="346" vertical-scroll-proportion="0.33247423" vertical-offset="6" max-vertical-offset="630"> + <folding /> + </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigAdapter.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="164" column="4" selection-start="4729" selection-end="4729" vertical-scroll-proportion="0.0" vertical-offset="2445" max-vertical-offset="2640"> + <state line="28" column="0" selection-start="756" selection-end="756" vertical-scroll-proportion="0.46391752" vertical-offset="135" max-vertical-offset="825"> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListView.java"> + <entry file="file://$PROJECT_DIR$/assets/GCPadNew.ini"> <provider selected="true" editor-type-id="text-editor"> - <state line="51" column="78" selection-start="1629" selection-end="1629" vertical-scroll-proportion="0.0" vertical-offset="750" max-vertical-offset="3420"> + <state line="3" column="20" selection-start="81" selection-end="81" vertical-scroll-proportion="0.11597938" vertical-offset="0" max-vertical-offset="525"> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/FolderBrowser.java"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigItem.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="81" column="20" selection-start="2652" selection-end="2652" vertical-scroll-proportion="0.0" vertical-offset="1200" max-vertical-offset="1485"> + <state line="11" column="0" selection-start="297" selection-end="297" vertical-scroll-proportion="-0.96649486" vertical-offset="540" max-vertical-offset="930"> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/layout/prefs.xml"> - <provider editor-type-id="android-designer"> - <state /> - </provider> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/NativeLibrary.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="495"> + <state line="11" column="56" selection-start="291" selection-end="291" vertical-scroll-proportion="0.0" vertical-offset="6" max-vertical-offset="615"> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/res/values/prefvalues.xml"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/InputConfigActivity.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="14" column="31" selection-start="392" selection-end="392" vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="405"> - <folding /> + <state line="141" column="0" selection-start="4851" selection-end="4851" vertical-scroll-proportion="0.0" vertical-offset="1562" max-vertical-offset="2610"> + <folding> + <element signature="e#3481#3488#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/PrefsActivity.java"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/DolphinEmulator.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="14" column="0" selection-start="389" selection-end="389" vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="690"> + <state line="171" column="88" selection-start="5001" selection-end="5001" vertical-scroll-proportion="0.0" vertical-offset="2280" max-vertical-offset="2790"> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/AndroidManifest.xml"> + <entry file="file://$PROJECT_DIR$/src/org/dolphinemu/dolphinemu/GameListView.java"> <provider selected="true" editor-type-id="text-editor"> - <state line="6" column="39" selection-start="248" selection-end="248" vertical-scroll-proportion="0.026223777" vertical-offset="75" max-vertical-offset="735"> - <folding /> + <state line="151" column="32" selection-start="5433" selection-end="5433" vertical-scroll-proportion="0.7396907" vertical-offset="1228" max-vertical-offset="2745"> + <folding> + <element signature="method#Fill#0;class#GameListView#0" expanded="false" /> + <element signature="e#5708#5722#0" expanded="true" /> + <element signature="e#6166#7251#0" expanded="true" /> + <element signature="e#7244#7245#0" expanded="true" /> + </folding> </state> </provider> </entry> diff --git a/Source/Android/AndroidManifest.xml b/Source/Android/AndroidManifest.xml index 3b4d735b37..802f2f6cf6 100644 --- a/Source/Android/AndroidManifest.xml +++ b/Source/Android/AndroidManifest.xml @@ -36,6 +36,11 @@ android:configChanges="orientation|locale|keyboard|keyboardHidden|navigation|fontScale|uiMode" > </activity> <activity + android:name="org.dolphinemu.dolphinemu.InputConfigActivity" + android:label="@string/app_name" + android:configChanges="orientation|locale|keyboard|keyboardHidden|navigation|fontScale|uiMode" > + </activity> + <activity android:name=".PrefsActivity" > </activity> </application> diff --git a/Source/Android/assets/GCPadNew.ini b/Source/Android/assets/GCPadNew.ini index cb828f9960..3c22ed5a2e 100644 --- a/Source/Android/assets/GCPadNew.ini +++ b/Source/Android/assets/GCPadNew.ini @@ -2,28 +2,28 @@ Device = Android/0/Touchscreen Buttons/A = Button 0 Buttons/B = Button 1 -Buttons/X = C -Buttons/Y = S -Buttons/Z = D +Buttons/X = Button 3 +Buttons/Y = Button 4 +Buttons/Z = Button 5 Buttons/Start = Button 2 -Main Stick/Up = Up -Main Stick/Down = Down -Main Stick/Left = Left -Main Stick/Right = Right +Main Stick/Up = Axis 10 +Main Stick/Down = Axis 11 +Main Stick/Left = Axis 12 +Main Stick/Right = Axis 13 Main Stick/Modifier = Shift_L Main Stick/Modifier/Range = 50.000000 -C-Stick/Up = I -C-Stick/Down = K -C-Stick/Left = J -C-Stick/Right = L +C-Stick/Up = Axis 14 +C-Stick/Down = Axis 15 +C-Stick/Left = Axis 16 +C-Stick/Right = Axis 17 C-Stick/Modifier = Control_L C-Stick/Modifier/Range = 50.000000 -Triggers/L = Q -Triggers/R = W -D-Pad/Up = T -D-Pad/Down = G -D-Pad/Left = F -D-Pad/Right = H +Triggers/L = Axis 18 +Triggers/R = Axis 19 +D-Pad/Up = Button 6 +D-Pad/Down = Button 7 +D-Pad/Left = Button 8 +D-Pad/Right = Button 9 [GCPad2] [GCPad3] [GCPad4] diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java index bee3e5fcca..d8432b7e22 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java @@ -7,10 +7,13 @@ import android.os.Bundle; import android.os.Environment; import android.util.DisplayMetrics; import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.WindowManager; import java.io.*; +import java.util.List; public class DolphinEmulator<MainActivity> extends Activity { @@ -20,19 +23,6 @@ public class DolphinEmulator<MainActivity> extends Activity private float screenWidth; private float screenHeight; - public static native void onTouchEvent(int Action, float X, float Y); - - static - { - try - { - System.loadLibrary("dolphin-emu-nogui"); - } - catch (Exception ex) - { - Log.w("me", ex.toString()); - } - } private void CopyAsset(String asset, String output) { InputStream in = null; OutputStream out = null; @@ -49,6 +39,7 @@ public class DolphinEmulator<MainActivity> extends Activity Log.e("tag", "Failed to copy asset file: " + asset, e); } } + private void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; @@ -62,21 +53,21 @@ public class DolphinEmulator<MainActivity> extends Activity { super.onStop(); if (Running) - NativeGLSurfaceView.StopEmulation(); + NativeLibrary.StopEmulation(); } @Override public void onPause() { super.onPause(); if (Running) - NativeGLSurfaceView.PauseEmulation(); + NativeLibrary.PauseEmulation(); } @Override public void onResume() { super.onResume(); if (Running) - NativeGLSurfaceView.UnPauseEmulation(); + NativeLibrary.UnPauseEmulation(); } /** Called when the activity is first created. */ @@ -158,14 +149,46 @@ public class DolphinEmulator<MainActivity> extends Activity float ScreenX = ((X / screenWidth) * 2.0f) - 1.0f; float ScreenY = ((Y / screenHeight) * -2.0f) + 1.0f; - onTouchEvent(Action, ScreenX, ScreenY); + NativeLibrary.onTouchEvent(Action, ScreenX, ScreenY); return false; } - - public boolean overrideKeys() - { - return false; - } + + // Gets button presses + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + int action = 0; + switch (event.getAction()) { + case KeyEvent.ACTION_DOWN: + action = 0; + break; + case KeyEvent.ACTION_UP: + action = 1; + break; + default: + break; + } + InputDevice input = event.getDevice(); + NativeLibrary.onGamePadEvent(input.getDescriptor(), event.getKeyCode(), action); + return true; + } + + @Override + public boolean dispatchGenericMotionEvent(MotionEvent event) { + if (((event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) == 0)) { + return super.dispatchGenericMotionEvent(event); + } + + InputDevice input = event.getDevice(); + List<InputDevice.MotionRange> motions = input.getMotionRanges(); + for (int a = 0; a < motions.size(); ++a) + { + InputDevice.MotionRange range; + range = motions.get(a); + NativeLibrary.onGamePadMoveEvent(input.getDescriptor(), range.getAxis(), event.getAxisValue(range.getAxis())); + } + + return true; + } }
\ No newline at end of file diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/GameListItem.java b/Source/Android/src/org/dolphinemu/dolphinemu/GameListItem.java index 87137db48d..3018300b12 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/GameListItem.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/GameListItem.java @@ -1,33 +1,19 @@ package org.dolphinemu.dolphinemu; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.util.Log; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; public class GameListItem implements Comparable<GameListItem>{ private String name; private String data; private String path; private Bitmap image; - public static native int[] GetBanner(String filename); - public static native String GetTitle(String filename); - static - { - try - { - System.loadLibrary("dolphin-emu-nogui"); - } - catch (Exception ex) - { - Log.w("me", ex.toString()); - } - } - + public GameListItem(Context ctx, String n,String d,String p) { name = n; @@ -36,7 +22,7 @@ public class GameListItem implements Comparable<GameListItem>{ File file = new File(path); if (!file.isDirectory()) { - int[] Banner = GetBanner(path); + int[] Banner = NativeLibrary.GetBanner(path); if (Banner[0] == 0) { try { @@ -50,7 +36,7 @@ public class GameListItem implements Comparable<GameListItem>{ } else image = Bitmap.createBitmap(Banner, 96, 32, Bitmap.Config.ARGB_8888); - name = GetTitle(path); + name = NativeLibrary.GetTitle(path); } } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/GameListView.java b/Source/Android/src/org/dolphinemu/dolphinemu/GameListView.java index 314e8e0ae5..ac1329f6a9 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/GameListView.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/GameListView.java @@ -24,22 +24,18 @@ public class GameListView extends ListActivity { private SideMenuAdapter mAdapter; private static GameListView me; - public static native String GetConfig(String Key, String Value, String Default); - public static native void SetConfig(String Key, String Value, String Default); enum keyTypes {TYPE_STRING, TYPE_BOOL}; private void Fill() { - - this.setTitle("Game List"); List<GameListItem>fls = new ArrayList<GameListItem>(); - String Directories = GetConfig("General", "GCMPathes", "0"); + String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0"); int intDirectories = Integer.parseInt(Directories); for (int a = 0; a < intDirectories; ++a) { - String BrowseDir = GetConfig("General", "GCMPath" + Integer.toString(a), ""); + String BrowseDir = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(a), ""); File currentDir = new File(BrowseDir); File[]dirs = currentDir.listFiles(); try @@ -101,11 +97,11 @@ public class GameListView extends ListActivity { { String FileName = data.getStringExtra("Select"); Toast.makeText(this, "Folder Selected: " + FileName, Toast.LENGTH_SHORT).show(); - String Directories = GetConfig("General", "GCMPathes", "0"); + String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0"); int intDirectories = Integer.parseInt(Directories); Directories = Integer.toString(intDirectories + 1); - SetConfig("General", "GCMPathes", Directories); - SetConfig("General", "GCMPath" + Integer.toString(intDirectories), FileName); + NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPathes", Directories); + NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(intDirectories), FileName); Fill(); } @@ -142,16 +138,19 @@ public class GameListView extends ListActivity { { case TYPE_STRING: String strPref = prefs.getString(Keys[a], ""); - SetConfig(Key, Value, strPref); + NativeLibrary.SetConfig("Dolphin.ini", Key, Value, strPref); break; case TYPE_BOOL: boolean boolPref = prefs.getBoolean(Keys[a], true); - SetConfig(Key, Value, boolPref ? "True" : "False"); + NativeLibrary.SetConfig("Dolphin.ini", Key, Value, boolPref ? "True" : "False"); break; } } break; + case 3: // Gamepad settings + /* Do Nothing */ + break; } } @@ -169,6 +168,7 @@ public class GameListView extends ListActivity { List<SideMenuItem>dir = new ArrayList<SideMenuItem>(); dir.add(new SideMenuItem("Browse Folder", 0)); dir.add(new SideMenuItem("Settings", 1)); + dir.add(new SideMenuItem("Gamepad Config", 2)); ListView mList = new ListView(this); mAdapter = new SideMenuAdapter(this,R.layout.sidemenu,dir); @@ -193,6 +193,11 @@ public class GameListView extends ListActivity { Intent SettingIntent = new Intent(me, PrefsActivity.class); startActivityForResult(SettingIntent, 2); break; + case 2: + Toast.makeText(me, "Loading up settings", Toast.LENGTH_SHORT).show(); + Intent ConfigIntent = new Intent(me, InputConfigActivity.class); + startActivityForResult(ConfigIntent, 3); + break; default: break; } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java new file mode 100644 index 0000000000..1df812b830 --- /dev/null +++ b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java @@ -0,0 +1,181 @@ +package org.dolphinemu.dolphinemu; + +import android.app.Activity; +import android.app.ListActivity; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +import android.widget.ListView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; + +/** + * Copyright 2013 Dolphin Emulator Project + * Licensed under GPLv2 + * Refer to the license.txt file included. + */ +public class InputConfigActivity extends ListActivity { + private InputConfigAdapter adapter; + private int configPosition = 0; + boolean Configuring = false; + boolean firstEvent = true; + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + List<InputConfigItem> Input = new ArrayList<InputConfigItem>(); + int a = 0; + + Input.add(a++, new InputConfigItem("Draw on-screen controls", "Android-ScreenControls", "True")); + Input.add(a++, new InputConfigItem("Button A", "Android-InputA")); + Input.add(a++, new InputConfigItem("Button B", "Android-InputB")); + Input.add(a++, new InputConfigItem("Button Start", "Android-InputStart")); + Input.add(a++, new InputConfigItem("Button X", "Android-InputX")); + Input.add(a++, new InputConfigItem("Button Y", "Android-InputY")); + Input.add(a++, new InputConfigItem("Button Z", "Android-InputZ")); + Input.add(a++, new InputConfigItem("D-Pad Up", "Android-DPadUp")); + Input.add(a++, new InputConfigItem("D-Pad Down", "Android-DPadDown")); + Input.add(a++, new InputConfigItem("D-Pad Left", "Android-DPadLeft")); + Input.add(a++, new InputConfigItem("D-Pad Right", "Android-DPadRight")); + Input.add(a++, new InputConfigItem("Main Stick Up", "Android-MainUp")); + Input.add(a++, new InputConfigItem("Main Stick Down", "Android-MainDown")); + Input.add(a++, new InputConfigItem("Main Stick Left", "Android-MainLeft")); + Input.add(a++, new InputConfigItem("Main Stick Right", "Android-MainRight")); + Input.add(a++, new InputConfigItem("C Stick Up", "Android-CStickUp")); + Input.add(a++, new InputConfigItem("C Stick Down", "Android-CStickDown")); + Input.add(a++, new InputConfigItem("C Stick Left", "Android-CStickLeft")); + Input.add(a++, new InputConfigItem("C Stick Right", "Android-CStickRight")); + Input.add(a++, new InputConfigItem("Trigger L", "Android-InputL")); + Input.add(a++, new InputConfigItem("Trigger R", "Android-InputR")); + + adapter = new InputConfigAdapter(this,R.layout.folderbrowser, Input); + this.setListAdapter(adapter); + } + @Override + protected void onListItemClick(ListView l, View v, int position, long id) { + super.onListItemClick(l, v, position, id); + InputConfigItem o = adapter.getItem(position); + switch(position) + { + case 0: // On screen controls + String newBind; + if (o.getBind() == "True") + { + Toast.makeText(this, "Not Drawing on screen controls", Toast.LENGTH_SHORT).show(); + newBind = "False"; + } + else + { + Toast.makeText(this, "Drawing on screen controls", Toast.LENGTH_SHORT).show(); + newBind = "True"; + } + adapter.remove(o); + o.setBind(newBind); + adapter.insert(o, position); + break; + default: // gamepad controls + Toast.makeText(this, "Press button to configure " + o.getName(), Toast.LENGTH_SHORT).show(); + configPosition = position; + Configuring = true; + firstEvent = true; + break; + } + + } + static ArrayList<Float> m_values = new ArrayList<Float>(); + // Gets move(triggers, joystick) events + void AssignBind(String bind) + { + InputConfigItem o = adapter.getItem(configPosition); + adapter.remove(o); + o.setBind(bind); + adapter.insert(o, configPosition); + } + + @Override + public boolean dispatchGenericMotionEvent(MotionEvent event) { + if (((event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) == 0)) { + return super.dispatchGenericMotionEvent(event); + } + InputDevice input = event.getDevice(); + List<InputDevice.MotionRange> motions = input.getMotionRanges(); + if (Configuring) + { + if (firstEvent) + { + m_values.clear(); + for (int a = 0; a < motions.size(); ++a) + { + InputDevice.MotionRange range = motions.get(a); + m_values.add(event.getAxisValue(range.getAxis())); + } + firstEvent = false; + } + else + { + for (int a = 0; a < motions.size(); ++a) + { + InputDevice.MotionRange range; + range = motions.get(a); + if (m_values.get(a) > (event.getAxisValue(range.getAxis()) + 0.5f)) + { + AssignBind("Device '" + input.getDescriptor() + "'-Axis " + range.getAxis() + "-"); + Configuring = false; + } + else if (m_values.get(a) < (event.getAxisValue(range.getAxis()) - 0.5f)) + { + AssignBind("Device '" + input.getDescriptor() + "'-Axis " + range.getAxis() + "+"); + Configuring = false; + } + } + } + } + return true; + } + + // Gets button presses + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + Log.w("Dolphinemu", "Got Event " + event.getAction()); + switch (event.getAction()) { + case KeyEvent.ACTION_DOWN: + case KeyEvent.ACTION_UP: + if (Configuring) + { + InputDevice input = event.getDevice(); + AssignBind("Device '" + input.getDescriptor() + "'-Button " + event.getKeyCode()); + Configuring = false; + return true; + } + default: + break; + } + + return super.dispatchKeyEvent(event); + } + + @Override + public void onBackPressed() { + for (int a = 0; a < adapter.getCount(); ++a) + { + InputConfigItem o = adapter.getItem(a); + String config = o.getConfig(); + String bind = o.getBind(); + String ConfigValues[] = config.split("-"); + String Key = ConfigValues[0]; + String Value = ConfigValues[1]; + NativeLibrary.SetConfig("Dolphin.ini", Key, Value, bind); + } + Intent intent = new Intent(); + setResult(Activity.RESULT_OK, intent); + this.finish(); + super.onBackPressed(); + } +} diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigAdapter.java b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigAdapter.java new file mode 100644 index 0000000000..4430126d46 --- /dev/null +++ b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigAdapter.java @@ -0,0 +1,56 @@ +package org.dolphinemu.dolphinemu; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import java.util.List; + +/** + * Copyright 2013 Dolphin Emulator Project + * Licensed under GPLv2 + * Refer to the license.txt file included. + */ +public class InputConfigAdapter extends ArrayAdapter<InputConfigItem> { + private Context c; + private int id; + private List<InputConfigItem> items; + + public InputConfigAdapter(Context context, int textViewResourceId, + List<InputConfigItem> objects) { + super(context, textViewResourceId, objects); + c = context; + id = textViewResourceId; + items = objects; + } + + public InputConfigItem getItem(int i) + { + return items.get(i); + } + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View v = convertView; + if (v == null) { + LayoutInflater vi = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + v = vi.inflate(id, null); + } + final InputConfigItem o = items.get(position); + if (o != null) { + TextView t1 = (TextView) v.findViewById(R.id.TextView01); + TextView t2 = (TextView) v.findViewById(R.id.TextView02); + + if(t1!=null) + t1.setText(o.getName()); + if(t2!=null) + t2.setText(o.getBind()); + } + return v; + } + + + +} diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigItem.java b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigItem.java new file mode 100644 index 0000000000..7511406dc9 --- /dev/null +++ b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigItem.java @@ -0,0 +1,56 @@ +package org.dolphinemu.dolphinemu; + +/** + * Copyright 2013 Dolphin Emulator Project + * Licensed under GPLv2 + * Refer to the license.txt file included. + */ +public class InputConfigItem implements Comparable<InputConfigItem>{ + private String m_name; + private String m_Config; + private String m_bind; + + private void Init(String n, String c, String d) + { + m_name = n; + m_Config = c; + String ConfigValues[] = m_Config.split("-"); + String Key = ConfigValues[0]; + String Value = ConfigValues[1]; + m_bind = NativeLibrary.GetConfig("Dolphin.ini", Key, Value, d); + } + + public InputConfigItem(String n, String c, String d) + { + Init(n, c, d); + } + + public InputConfigItem(String n, String c) + { + Init(n, c, "None"); + } + public String getName() + { + return m_name; + } + public String getConfig() + { + return m_Config; + } + public String getBind() + { + return m_bind; + } + public void setBind(String b) + { + m_bind = b; + } + + public int compareTo(InputConfigItem o) + { + if(this.m_name != null) + return this.m_name.toLowerCase().compareTo(o.getName().toLowerCase()); + else + throw new IllegalArgumentException(); + } +} diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java index 25c7ace0a0..8a8041a08b 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java @@ -1,9 +1,6 @@ package org.dolphinemu.dolphinemu; import android.content.Context; -import android.opengl.GLSurfaceView; -import android.util.Log; -import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; @@ -14,23 +11,6 @@ public class NativeGLSurfaceView extends SurfaceView { static private boolean Created = false; static private float width; static private float height; - - public static native void main(String File, Surface surf, int width, int height); - public static native void UnPauseEmulation(); - public static native void PauseEmulation(); - public static native void StopEmulation(); - - static - { - try - { - System.loadLibrary("dolphin-emu-nogui"); - } - catch (Exception ex) - { - Log.w("me", ex.toString()); - } - } public NativeGLSurfaceView(Context context) { super(context); @@ -40,7 +20,7 @@ public class NativeGLSurfaceView extends SurfaceView { { @Override public void run() { - main(FileName, getHolder().getSurface(), (int)width, (int)height); + NativeLibrary.Run(FileName, getHolder().getSurface(), (int)width, (int)height); } }; getHolder().addCallback(new SurfaceHolder.Callback() { diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java new file mode 100644 index 0000000000..52918a040a --- /dev/null +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -0,0 +1,36 @@ +package org.dolphinemu.dolphinemu; + +import android.util.Log; +import android.view.Surface; + +/** + * Copyright 2013 Dolphin Emulator Project + * Licensed under GPLv2 + * Refer to the license.txt file included. + */ +public class NativeLibrary { + public static native void onTouchEvent(int Action, float X, float Y); + public static native void onGamePadEvent(String Device, int Button, int Action); + public static native void onGamePadMoveEvent(String Device, int Axis, float Value); + public static native String GetConfig(String configFile, String Key, String Value, String Default); + public static native void SetConfig(String configFile, String Key, String Value, String Default); + public static native int[] GetBanner(String filename); + public static native String GetTitle(String filename); + + public static native void Run(String File, Surface surf, int width, int height); + public static native void UnPauseEmulation(); + public static native void PauseEmulation(); + public static native void StopEmulation(); + + static + { + try + { + System.loadLibrary("dolphin-emu-nogui"); + } + catch (Exception ex) + { + Log.w("me", ex.toString()); + } + } +} |
