Skip to content

Commit

Permalink
Change the accessibility of certain settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Hydr8gon committed Jul 31, 2024
1 parent 7934310 commit fff29ac
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 94 deletions.
10 changes: 5 additions & 5 deletions src/android/java/com/hydra/noods/SettingsMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
import androidx.preference.SwitchPreferenceCompat;
import androidx.preference.SwitchPreference;

import android.content.Context;
import android.content.Intent;
Expand Down Expand Up @@ -55,7 +55,7 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey)
@Override
public boolean onPreferenceClick(Preference pref)
{
if (!((SwitchPreferenceCompat)pref).isChecked()) return true;
if (!((SwitchPreference)pref).isChecked()) return true;
String perm = android.Manifest.permission.RECORD_AUDIO;
if (ContextCompat.checkSelfPermission(getActivity(), perm) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(getActivity(), new String[] {perm}, 0);
Expand All @@ -71,7 +71,7 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in
// Disable the microphone setting if permission wasn't granted
int perm = ContextCompat.checkSelfPermission(this, android.Manifest.permission.RECORD_AUDIO);
if (perm != PackageManager.PERMISSION_GRANTED)
((SwitchPreferenceCompat)fragment.findPreference("mic_enable")).setChecked(false);
((SwitchPreference)fragment.findPreference("mic_enable")).setChecked(false);
}

@Override
Expand All @@ -83,7 +83,7 @@ protected void onCreate(Bundle savedInstanceState)
prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("direct_boot", (getDirectBoot() == 0) ? false : true);
editor.putString("fps_limiter", Integer.toString(getFpsLimiter()));
editor.putBoolean("fps_limiter", (getFpsLimiter() == 0) ? false : true);
editor.putBoolean("threaded_2d", (getThreaded2D() == 0) ? false : true);
editor.putString("threaded_3d", Integer.toString(getThreaded3D()));
editor.putBoolean("high_res_3d", (getHighRes3D() == 0) ? false : true);
Expand Down Expand Up @@ -141,7 +141,7 @@ public void onBackPressed()
{
// Save the settings to the core
setDirectBoot(prefs.getBoolean("direct_boot", true) ? 1 : 0);
setFpsLimiter(Integer.parseInt(prefs.getString("fps_limiter", "1")));
setFpsLimiter(prefs.getBoolean("fps_limiter", true) ? 1 : 0);
setThreaded2D(prefs.getBoolean("threaded_2d", true) ? 1 : 0);
setThreaded3D(Integer.parseInt(prefs.getString("threaded_3d", "1")));
setHighRes3D(prefs.getBoolean("high_res_3d", false) ? 1 : 0);
Expand Down
8 changes: 2 additions & 6 deletions src/android/res/values/arrays.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>

<string-array name="fps_limiter_entries">
<item>Disabled</item>
<item>Light</item>
<item>Accurate</item>
</string-array>

<string-array name="threaded_3d_entries">
<item>Disabled</item>
<item>1 Thread</item>
<item>2 Threads</item>
<item>3 Threads</item>
<item>4 Threads</item>
</string-array>

<string-array name="screen_position_entries">
Expand Down Expand Up @@ -59,6 +54,7 @@
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>

<string-array name="save_entries_gba">
Expand Down
27 changes: 12 additions & 15 deletions src/android/res/xml/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,21 @@
app:title="General Settings"
app:iconSpaceReserved="false">

<SwitchPreferenceCompat
<SwitchPreference
app:key="direct_boot"
app:title="Direct Boot"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<ListPreference
<SwitchPreference
app:key="fps_limiter"
app:title="FPS Limiter"
app:entries="@array/fps_limiter_entries"
app:entryValues="@array/setting_values"
app:useSimpleSummaryProvider="true"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="threaded_2d"
app:title="Threaded 2D"
app:iconSpaceReserved="false"
Expand All @@ -40,21 +37,21 @@
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="high_res_3d"
app:title="High-Resolution 3D"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="mic_enable"
app:title="Use Microphone"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="show_fps_counter"
app:title="Show FPS Counter"
app:iconSpaceReserved="false"
Expand All @@ -66,21 +63,21 @@
app:title="Path Settings"
app:iconSpaceReserved="false">

<SwitchPreferenceCompat
<SwitchPreference
app:key="saves_folder"
app:title="Separate Saves Folder"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="states_folder"
app:title="Separate States Folder"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="cheats_folder"
app:title="Separate Cheats Folder"
app:iconSpaceReserved="false"
Expand Down Expand Up @@ -152,21 +149,21 @@
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="integer_scale"
app:title="Integer Scale"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="gba_crop"
app:title="GBA Crop"
app:iconSpaceReserved="false"
app:allowDividerAbove="true"
app:allowDividerBelow="true" />

<SwitchPreferenceCompat
<SwitchPreference
app:key="screen_ghost"
app:title="Simulate Ghosting"
app:iconSpaceReserved="false"
Expand Down
5 changes: 3 additions & 2 deletions src/console/console_ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,7 @@ void ConsoleUI::settingsMenu()
{
// Define possible values for settings
const std::vector<std::string> toggle = { "Off", "On" };
const std::vector<std::string> threads = { "Disabled", "1 Thread", "2 Threads" };
const std::vector<std::string> position = { "Center", "Top", "Bottom", "Left", "Right" };
const std::vector<std::string> rotation = { "None", "Clockwise", "Counter-Clockwise" };
const std::vector<std::string> arrangement = { "Automatic", "Vertical", "Horizontal", "Single Screen" };
Expand All @@ -830,7 +831,7 @@ void ConsoleUI::settingsMenu()
MenuItem("Direct Boot", toggle[Settings::directBoot]),
MenuItem("FPS Limiter", toggle[Settings::fpsLimiter]),
MenuItem("Threaded 2D", toggle[Settings::threaded2D]),
MenuItem("Threaded 3D", toggle[(bool)Settings::threaded3D]),
MenuItem("Threaded 3D", threads[Settings::threaded3D]),
MenuItem("High-Resolution 3D", toggle[Settings::highRes3D]),
MenuItem("Show FPS Counter", toggle[showFpsCounter]),
MenuItem("Separate Saves Folder", toggle[Settings::savesFolder]),
Expand Down Expand Up @@ -860,7 +861,7 @@ void ConsoleUI::settingsMenu()
case 0: Settings::directBoot = (Settings::directBoot + 1) % 2; break;
case 1: Settings::fpsLimiter = (Settings::fpsLimiter + 1) % 2; break;
case 2: Settings::threaded2D = (Settings::threaded2D + 1) % 2; break;
case 3: Settings::threaded3D = (Settings::threaded3D + 1) % 2; break;
case 3: Settings::threaded3D = (Settings::threaded3D + 1) % 3; break;
case 4: Settings::highRes3D = (Settings::highRes3D + 1) % 2; break;
case 5: showFpsCounter = (showFpsCounter + 1) % 2; break;
case 6: Settings::savesFolder = (Settings::savesFolder + 1) % 2; break;
Expand Down
60 changes: 20 additions & 40 deletions src/desktop/noo_frame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,13 @@ enum FrameEvent
INPUT_BINDINGS,
SCREEN_LAYOUT,
DIRECT_BOOT,
FPS_DISABLED,
FPS_LIGHT,
FPS_ACCURATE,
FPS_LIMITER,
THREADED_2D,
THREADED_3D_0,
THREADED_3D_1,
THREADED_3D_2,
THREADED_3D_3,
THREADED_3D_4,
HIGH_RES_3D,
MIC_ENABLE,
UPDATE_JOY
Expand All @@ -76,14 +75,13 @@ EVT_MENU(PATH_SETTINGS, NooFrame::pathSettings)
EVT_MENU(INPUT_BINDINGS, NooFrame::inputSettings)
EVT_MENU(SCREEN_LAYOUT, NooFrame::layoutSettings)
EVT_MENU(DIRECT_BOOT, NooFrame::directBootToggle)
EVT_MENU(FPS_DISABLED, NooFrame::fpsDisabled)
EVT_MENU(FPS_LIGHT, NooFrame::fpsLight)
EVT_MENU(FPS_ACCURATE, NooFrame::fpsAccurate)
EVT_MENU(FPS_LIMITER, NooFrame::fpsLimiter)
EVT_MENU(THREADED_2D, NooFrame::threaded2D)
EVT_MENU(THREADED_3D_0, NooFrame::threaded3D0)
EVT_MENU(THREADED_3D_1, NooFrame::threaded3D1)
EVT_MENU(THREADED_3D_2, NooFrame::threaded3D2)
EVT_MENU(THREADED_3D_3, NooFrame::threaded3D3)
EVT_MENU(THREADED_3D_4, NooFrame::threaded3D4)
EVT_MENU(HIGH_RES_3D, NooFrame::highRes3D)
EVT_MENU(MIC_ENABLE, NooFrame::micEnable)
EVT_TIMER(UPDATE_JOY, NooFrame::updateJoystick)
Expand Down Expand Up @@ -132,34 +130,22 @@ NooFrame::NooFrame(NooApp *app, int id, std::string path, NooFrame *partner):
systemMenu->Enable(STOP, false);
systemMenu->Enable(ACTION_REPLAY, false);

// Set up the FPS Limiter submenu
wxMenu *fpsLimiter = new wxMenu();
fpsLimiter->AppendRadioItem(FPS_DISABLED, "&Disabled");
fpsLimiter->AppendRadioItem(FPS_LIGHT, "&Light");
fpsLimiter->AppendRadioItem(FPS_ACCURATE, "&Accurate");

// Set the current value of the FPS limiter setting
switch (Settings::fpsLimiter)
{
case 0: fpsLimiter->Check(FPS_DISABLED, true); break;
case 1: fpsLimiter->Check(FPS_LIGHT, true); break;
default: fpsLimiter->Check(FPS_ACCURATE, true); break;
}

// Set up the Threaded 3D submenu
wxMenu *threaded3D = new wxMenu();
threaded3D->AppendRadioItem(THREADED_3D_0, "&Disabled");
threaded3D->AppendRadioItem(THREADED_3D_1, "&1 Thread");
threaded3D->AppendRadioItem(THREADED_3D_2, "&2 Threads");
threaded3D->AppendRadioItem(THREADED_3D_3, "&3 Threads");
threaded3D->AppendRadioItem(THREADED_3D_4, "&4 Threads");

// Set the current value of the threaded 3D setting
switch (Settings::threaded3D)
switch (Settings::threaded3D & 0xF)
{
case 0: threaded3D->Check(THREADED_3D_0, true); break;
case 1: threaded3D->Check(THREADED_3D_1, true); break;
case 2: threaded3D->Check(THREADED_3D_2, true); break;
default: threaded3D->Check(THREADED_3D_3, true); break;
case 3: threaded3D->Check(THREADED_3D_3, true); break;
default: threaded3D->Check(THREADED_3D_4, true); break;
}

// Set up the Settings menu
Expand All @@ -169,7 +155,7 @@ NooFrame::NooFrame(NooApp *app, int id, std::string path, NooFrame *partner):
settingsMenu->Append(SCREEN_LAYOUT, "&Screen Layout");
settingsMenu->AppendSeparator();
settingsMenu->AppendCheckItem(DIRECT_BOOT, "&Direct Boot");
settingsMenu->AppendSubMenu(fpsLimiter, "&FPS Limiter");
settingsMenu->AppendCheckItem(FPS_LIMITER, "&FPS Limiter");
settingsMenu->AppendSeparator();
settingsMenu->AppendCheckItem(THREADED_2D, "&Threaded 2D");
settingsMenu->AppendSubMenu(threaded3D, "&Threaded 3D");
Expand All @@ -179,6 +165,7 @@ NooFrame::NooFrame(NooApp *app, int id, std::string path, NooFrame *partner):

// Set the current values of the checkboxes
settingsMenu->Check(DIRECT_BOOT, Settings::directBoot);
settingsMenu->Check(FPS_LIMITER, Settings::fpsLimiter);
settingsMenu->Check(THREADED_2D, Settings::threaded2D);
settingsMenu->Check(HIGH_RES_3D, Settings::highRes3D);
settingsMenu->Check(MIC_ENABLE, NooApp::micEnable);
Expand Down Expand Up @@ -717,24 +704,10 @@ void NooFrame::directBootToggle(wxCommandEvent &event)
Settings::save();
}

void NooFrame::fpsDisabled(wxCommandEvent &event)
{
// Set the FPS limiter setting to disabled
Settings::fpsLimiter = 0;
Settings::save();
}

void NooFrame::fpsLight(wxCommandEvent &event)
void NooFrame::fpsLimiter(wxCommandEvent &event)
{
// Set the FPS limiter setting to light
Settings::fpsLimiter = 1;
Settings::save();
}

void NooFrame::fpsAccurate(wxCommandEvent &event)
{
// Set the FPS limiter setting to accurate
Settings::fpsLimiter = 2;
// Toggle the FPS limiter setting
Settings::fpsLimiter = !Settings::fpsLimiter;
Settings::save();
}

Expand Down Expand Up @@ -773,6 +746,13 @@ void NooFrame::threaded3D3(wxCommandEvent &event)
Settings::save();
}

void NooFrame::threaded3D4(wxCommandEvent &event)
{
// Set the threaded 3D setting to 4 threads
Settings::threaded3D = 4;
Settings::save();
}

void NooFrame::highRes3D(wxCommandEvent &event)
{
// Toggle the high-resolution 3D setting
Expand Down
5 changes: 2 additions & 3 deletions src/desktop/noo_frame.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,13 @@ class NooFrame: public wxFrame
void inputSettings(wxCommandEvent &event);
void layoutSettings(wxCommandEvent &event);
void directBootToggle(wxCommandEvent &event);
void fpsDisabled(wxCommandEvent &event);
void fpsLight(wxCommandEvent &event);
void fpsAccurate(wxCommandEvent &event);
void fpsLimiter(wxCommandEvent &event);
void threaded2D(wxCommandEvent &event);
void threaded3D0(wxCommandEvent &event);
void threaded3D1(wxCommandEvent &event);
void threaded3D2(wxCommandEvent &event);
void threaded3D3(wxCommandEvent &event);
void threaded3D4(wxCommandEvent &event);
void highRes3D(wxCommandEvent &event);
void micEnable(wxCommandEvent &event);
void updateJoystick(wxTimerEvent &event);
Expand Down
Loading

0 comments on commit fff29ac

Please sign in to comment.