Skip to content
Permalink
Browse files

Merge pull request #7927 from weihuoya/android-key-map

android: simplify config loading code
  • Loading branch information...
JosJuice committed Jun 19, 2019
2 parents 7dbfcb6 + 47e776d commit 16afac9da9ef28f76d05b2ea8a373e8d461f81bc
@@ -195,7 +195,7 @@ public static void launch(FragmentActivity activity, GameFile gameFile)
launcher.putExtra(EXTRA_SELECTED_TITLE, gameFile.getTitle());
launcher.putExtra(EXTRA_SELECTED_GAMEID, gameFile.getGameId());
launcher.putExtra(EXTRA_PLATFORM, gameFile.getPlatform());
activity.startActivityForResult(launcher, MainPresenter.REQUEST_EMULATE_GAME);
activity.startActivity(launcher);
}

@Override
@@ -939,13 +939,15 @@ private void setIRSensitivity()
builder.setView(view);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) ->
{
SettingsFile.saveSingleCustomSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
NativeLibrary.LoadGameIniFile(mSelectedGameId);
NativeLibrary.SetUserSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
SettingsFile.KEY_WIIBIND_IR_PITCH, text_slider_value_pitch.getText().toString());
SettingsFile.saveSingleCustomSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
NativeLibrary.SetUserSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
SettingsFile.KEY_WIIBIND_IR_YAW, text_slider_value_yaw.getText().toString());
SettingsFile.saveSingleCustomSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
NativeLibrary.SetUserSetting(mSelectedGameId, Settings.SECTION_CONTROLS,
SettingsFile.KEY_WIIBIND_IR_VERTICAL_OFFSET,
text_slider_value_vertical_offset.getText().toString());
NativeLibrary.SaveGameIniFile(mSelectedGameId);

NativeLibrary.ReloadWiimoteConfig();

@@ -452,11 +452,10 @@ public static void saveCustomGameSettings(final String gameId,
final HashMap<String, SettingSection> sections)
{
Set<String> sortedSections = new TreeSet<>(sections.keySet());

NativeLibrary.LoadGameIniFile(gameId);
for (String sectionKey : sortedSections)
{
SettingSection section = sections.get(sectionKey);

HashMap<String, Setting> settings = section.getSettings();
Set<String> sortedKeySet = new TreeSet<>(settings.keySet());

@@ -465,10 +464,7 @@ public static void saveCustomGameSettings(final String gameId,
{
continue;
}
else
{
NativeLibrary.LoadGameIniFile(gameId);
}

for (String settingKey : sortedKeySet)
{
Setting setting = settings.get(settingKey);
@@ -478,7 +474,6 @@ public static void saveCustomGameSettings(final String gameId,
String padId =
setting.getKey()
.substring(setting.getKey().length() - 1, setting.getKey().length());

saveCustomWiimoteSetting(gameId, KEY_WIIMOTE_EXTENSION, setting.getValueAsString(),
padId);
}
@@ -488,17 +483,7 @@ public static void saveCustomGameSettings(final String gameId,
setting.getKey(), setting.getValueAsString());
}
}
NativeLibrary.SaveGameIniFile(gameId);
}
}

public static void saveSingleCustomSetting(final String gameId, final String section,
final String key,
final String value)
{
NativeLibrary.LoadGameIniFile(gameId);
NativeLibrary.SetUserSetting(gameId, section,
key, value);
NativeLibrary.SaveGameIniFile(gameId);
}

@@ -510,12 +495,11 @@ public static void saveSingleCustomSetting(final String gameId, final String sec
* @param value
* @param padId
*/
public static void saveCustomWiimoteSetting(final String gameId, final String key,
private static void saveCustomWiimoteSetting(final String gameId, final String key,
final String value,
final String padId)
{
String profile = gameId + "_Wii" + padId;

String wiiConfigPath =
DirectoryInitialization.getUserDirectory() + "/Config/Profiles/Wiimote/" +
profile + ".ini";
@@ -532,14 +516,11 @@ public static void saveCustomWiimoteSetting(final String gameId, final String ke
"Android/" + (Integer.valueOf(padId) + 4) + "/Touchscreen");
}

NativeLibrary.SetProfileSetting(profile, Settings.SECTION_PROFILE, key,
value);
NativeLibrary.SetProfileSetting(profile, Settings.SECTION_PROFILE, key, value);

// Enable the profile
NativeLibrary.LoadGameIniFile(gameId);
NativeLibrary.SetUserSetting(gameId, Settings.SECTION_CONTROLS,
KEY_WIIMOTE_PROFILE + (Integer.valueOf(padId) + 1), profile);
NativeLibrary.SaveGameIniFile(gameId);
}

private static String mapSectionNameFromIni(String generalSectionName)
@@ -733,10 +714,4 @@ private static String sectionAsString(SettingSection section)
{
return "[" + section.getName() + "]";
}

private static String customWiimoteExtSettingAsString(Setting setting)
{
return setting.getKey().substring(0, setting.getKey().length() - 1) + " = " +
setting.getValueAsString();
}
}
@@ -131,19 +131,6 @@ public void setVersionString(String version)
mToolbar.setSubtitle(version);
}

@Override
public void refreshFragmentScreenshot(int fragmentPosition)
{
// Invalidate Picasso image so that the new screenshot is animated in.
Platform platform = Platform.fromPosition(mViewPager.getCurrentItem());
PlatformGamesView fragment = getPlatformGamesView(platform);

if (fragment != null)
{
fragment.refreshScreenshotAtPosition(fragmentPosition);
}
}

@Override
public void launchSettingsActivity(MenuTag menuTag)
{
@@ -173,10 +160,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent result)
mPresenter.onDirectorySelected(FileBrowserHelper.getSelectedDirectory(result));
}
break;

case MainPresenter.REQUEST_EMULATE_GAME:
mPresenter.refreshFragmentScreenshot(resultCode);
break;
}
}

@@ -15,7 +15,6 @@
public final class MainPresenter
{
public static final int REQUEST_ADD_DIRECTORY = 1;
public static final int REQUEST_EMULATE_GAME = 2;

private final MainView mView;
private final Context mContext;
@@ -105,9 +104,4 @@ public void onDirectorySelected(String dir)
{
mDirToAdd = dir;
}

public void refreshFragmentScreenshot(int resultCode)
{
mView.refreshFragmentScreenshot(resultCode);
}
}
@@ -17,15 +17,6 @@
*/
void setVersionString(String version);

/**
* Tell the view to tell the currently displayed {@link android.support.v4.app.Fragment}
* to refresh the screenshot at the given position in its list of games.
*
* @param fragmentPosition An index corresponding to the list or grid of games.
*/
void refreshFragmentScreenshot(int fragmentPosition);


void launchSettingsActivity(MenuTag menuTag);

void launchFileListActivity();
@@ -131,12 +131,6 @@ public void setVersionString(String version)
mBrowseFragment.setTitle(version);
}

@Override
public void refreshFragmentScreenshot(int fragmentPosition)
{
mRowsAdapter.notifyArrayItemRangeChanged(0, mRowsAdapter.size());
}

@Override
public void launchSettingsActivity(MenuTag menuTag)
{
@@ -177,10 +171,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent result)
mPresenter.onDirectorySelected(FileBrowserHelper.getSelectedDirectory(result));
}
break;

case MainPresenter.REQUEST_EMULATE_GAME:
mPresenter.refreshFragmentScreenshot(resultCode);
break;
}
}

@@ -565,41 +565,8 @@ void Init(const std::string& gameId)
}
// Init our controller bindings
IniFile ini;
ini.Load(File::GetUserPath(D_CONFIG_IDX) + std::string("Dolphin.ini"));
for (u32 a = 0; a < configStrings.size(); ++a)
{
for (int padID = 0; padID < 8; ++padID)
{
std::ostringstream config;
config << configStrings[a] << "_" << padID;
BindType type;
int bindnum;
char dev[128];
bool hasbind = false;
char modifier = '+';
std::string value;
ini.GetOrCreateSection("Android")->Get(config.str(), &value, "None");
if (value == "None")
continue;
if (std::string::npos != value.find("Axis"))
{
hasbind = true;
type = BIND_AXIS;
sscanf(value.c_str(), "Device '%127[^\']'-Axis %d%c", dev, &bindnum, &modifier);
}
else if (std::string::npos != value.find("Button"))
{
hasbind = true;
type = BIND_BUTTON;
sscanf(value.c_str(), "Device '%127[^\']'-Button %d", dev, &bindnum);
}
if (hasbind)
AddBind(std::string(dev),
new sBind(padID, configTypes[a], type, bindnum, modifier == '-' ? -1.0f : 1.0f));
}
}

ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + std::string(gameId + ".ini"));
ini.Load(File::GetUserPath(D_CONFIG_IDX) + std::string("Dolphin.ini"), true);
ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + std::string(gameId + ".ini"), true);
for (u32 a = 0; a < configStrings.size(); ++a)
{
for (int padID = 0; padID < 8; ++padID)

0 comments on commit 16afac9

Please sign in to comment.
You can’t perform that action at this time.