mirror of
https://github.com/rvtr/GodMode9i.git
synced 2025-11-02 00:11:07 -04:00
Change screen swap to an ini option (#183)
This commit is contained in:
parent
7647d311bc
commit
1605dcf8f0
@ -39,6 +39,7 @@ Config::Config() {
|
|||||||
sniprintf(defaultLanguagePath, sizeof(defaultLanguagePath), "nitro:/languages/%s/language.ini", getSystemLanguage());
|
sniprintf(defaultLanguagePath, sizeof(defaultLanguagePath), "nitro:/languages/%s/language.ini", getSystemLanguage());
|
||||||
_languageIniPath = ini.GetString("GODMODE9I", "LANGUAGE_INI_PATH", defaultLanguagePath);
|
_languageIniPath = ini.GetString("GODMODE9I", "LANGUAGE_INI_PATH", defaultLanguagePath);
|
||||||
_fontPath = ini.GetString("GODMODE9I", "FONT_PATH", "sd:/gm9i/font.frf");
|
_fontPath = ini.GetString("GODMODE9I", "FONT_PATH", "sd:/gm9i/font.frf");
|
||||||
|
_screenSwap = ini.GetInt("GODMODE9I", "SCREEN_SWAP", 0);
|
||||||
|
|
||||||
// If the config doesn't exist, create it
|
// If the config doesn't exist, create it
|
||||||
if(access(_configPath, F_OK) != 0)
|
if(access(_configPath, F_OK) != 0)
|
||||||
@ -50,6 +51,7 @@ void Config::save() {
|
|||||||
|
|
||||||
ini.SetString("GODMODE9I", "LANGUAGE_INI_PATH", _languageIniPath);
|
ini.SetString("GODMODE9I", "LANGUAGE_INI_PATH", _languageIniPath);
|
||||||
ini.SetString("GODMODE9I", "FONT_PATH", _fontPath);
|
ini.SetString("GODMODE9I", "FONT_PATH", _fontPath);
|
||||||
|
ini.SetInt("GODMODE9I", "SCREEN_SWAP", _screenSwap);
|
||||||
|
|
||||||
ini.SaveIniFile(_configPath);
|
ini.SaveIniFile(_configPath);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,11 +3,14 @@
|
|||||||
|
|
||||||
#include "inifile.h"
|
#include "inifile.h"
|
||||||
|
|
||||||
|
#include <nds.h>
|
||||||
|
|
||||||
class Config {
|
class Config {
|
||||||
const char *_configPath;
|
const char *_configPath;
|
||||||
|
|
||||||
std::string _languageIniPath;
|
std::string _languageIniPath;
|
||||||
std::string _fontPath;
|
std::string _fontPath;
|
||||||
|
bool _screenSwap;
|
||||||
|
|
||||||
static const char *getSystemLanguage(void);
|
static const char *getSystemLanguage(void);
|
||||||
|
|
||||||
@ -21,6 +24,10 @@ public:
|
|||||||
void languageIniPath(const std::string &languageIniPath) { _languageIniPath = languageIniPath; }
|
void languageIniPath(const std::string &languageIniPath) { _languageIniPath = languageIniPath; }
|
||||||
|
|
||||||
const std::string &fontPath(void) { return _fontPath; }
|
const std::string &fontPath(void) { return _fontPath; }
|
||||||
|
|
||||||
|
bool screenSwap(void) { return _screenSwap; }
|
||||||
|
void screenSwap(bool &screenSwap) { _screenSwap = screenSwap; }
|
||||||
|
u32 screenSwapKey(void) { return _screenSwap ? KEY_TOUCH : 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Config *config;
|
extern Config *config;
|
||||||
|
|||||||
@ -28,6 +28,7 @@
|
|||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "config.h"
|
||||||
#include "date.h"
|
#include "date.h"
|
||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
#include "dumpOperations.h"
|
#include "dumpOperations.h"
|
||||||
@ -302,11 +303,7 @@ void driveMenu (void) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (!(pressed & (KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_A | KEY_B | KEY_X | KEY_L | KEY_START
|
} while (!(pressed & (KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_A | KEY_B | KEY_X | KEY_L | KEY_START | config->screenSwapKey())));
|
||||||
#ifdef SCREENSWAP
|
|
||||||
| KEY_TOUCH
|
|
||||||
#endif
|
|
||||||
)));
|
|
||||||
|
|
||||||
if(dmOperations.size() != 0) {
|
if(dmOperations.size() != 0) {
|
||||||
if (pressed & KEY_UP) {
|
if (pressed & KEY_UP) {
|
||||||
@ -415,13 +412,11 @@ void driveMenu (void) {
|
|||||||
startMenu();
|
startMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
|
||||||
// Swap screens
|
// Swap screens
|
||||||
if (pressed & KEY_TOUCH) {
|
if (pressed & config->screenSwapKey()) {
|
||||||
screenSwapped = !screenSwapped;
|
screenSwapped = !screenSwapped;
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Make a screenshot
|
// Make a screenshot
|
||||||
if ((held & KEY_R) && (pressed & KEY_L)) {
|
if ((held & KEY_R) && (pressed & KEY_L)) {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#include "dumpOperations.h"
|
#include "dumpOperations.h"
|
||||||
|
|
||||||
#include "auxspi.h"
|
#include "auxspi.h"
|
||||||
|
#include "config.h"
|
||||||
#include "date.h"
|
#include "date.h"
|
||||||
#include "driveOperations.h"
|
#include "driveOperations.h"
|
||||||
#include "fileOperations.h"
|
#include "fileOperations.h"
|
||||||
@ -745,9 +746,8 @@ void ndsCardSaveRestore(const char *filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ndsCardDump(void) {
|
void ndsCardDump(void) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
lcdMainOnTop();
|
lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
u16 pressed;
|
u16 pressed;
|
||||||
|
|
||||||
@ -767,9 +767,9 @@ void ndsCardDump(void) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (pressed & KEY_B) {
|
if (pressed & KEY_B) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -944,9 +944,8 @@ void ndsCardDump(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gbaCartSaveDump(const char *filename) {
|
void gbaCartSaveDump(const char *filename) {
|
||||||
@ -1041,9 +1040,8 @@ void readChange(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void gbaCartDump(void) {
|
void gbaCartDump(void) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
lcdMainOnTop();
|
lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
font->clear(false);
|
font->clear(false);
|
||||||
font->print(firstCol, 0, false, STR_LOADING, alignStart);
|
font->print(firstCol, 0, false, STR_LOADING, alignStart);
|
||||||
@ -1265,7 +1263,6 @@ void gbaCartDump(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
#include <fat.h>
|
#include <fat.h>
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "config.h"
|
||||||
#include "date.h"
|
#include "date.h"
|
||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
#include "fileOperations.h"
|
#include "fileOperations.h"
|
||||||
@ -170,9 +171,8 @@ void showDirectoryContents(std::vector<DirEntry> &dirContents, int fileOffset, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
|
FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
lcdMainOnTop();
|
lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
int pressed = 0, held = 0;
|
int pressed = 0, held = 0;
|
||||||
std::vector<FileOperation> operations;
|
std::vector<FileOperation> operations;
|
||||||
@ -301,9 +301,9 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
|
|||||||
swiWaitForVBlank();
|
swiWaitForVBlank();
|
||||||
|
|
||||||
if(driveRemoved(currentDrive)) {
|
if(driveRemoved(currentDrive)) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return FileOperation::none;
|
return FileOperation::none;
|
||||||
}
|
}
|
||||||
} while (!(pressed & (KEY_UP| KEY_DOWN | KEY_A | KEY_B | KEY_L)));
|
} while (!(pressed & (KEY_UP| KEY_DOWN | KEY_A | KEY_B | KEY_L)));
|
||||||
@ -468,14 +468,15 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
keysDownRepeat(); // prevent unwanted key repeat
|
keysDownRepeat(); // prevent unwanted key repeat
|
||||||
#ifdef SCREENSWAP
|
|
||||||
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return operations[optionOffset];
|
return operations[optionOffset];
|
||||||
} else if (pressed & KEY_B) {
|
} else if (pressed & KEY_B) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return FileOperation::none;
|
return FileOperation::none;
|
||||||
}
|
}
|
||||||
// Make a screenshot
|
// Make a screenshot
|
||||||
@ -486,9 +487,8 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool fileBrowse_paste(char dest[256]) {
|
bool fileBrowse_paste(char dest[256]) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
lcdMainOnTop();
|
lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
int pressed = 0;
|
int pressed = 0;
|
||||||
int optionOffset = 0;
|
int optionOffset = 0;
|
||||||
@ -549,15 +549,16 @@ bool fileBrowse_paste(char dest[256]) {
|
|||||||
}
|
}
|
||||||
clipboardUsed = true; // Disable clipboard restore
|
clipboardUsed = true; // Disable clipboard restore
|
||||||
clipboardOn = false; // Clear clipboard after copying or moving
|
clipboardOn = false; // Clear clipboard after copying or moving
|
||||||
#ifdef SCREENSWAP
|
|
||||||
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (pressed & KEY_B) {
|
if (pressed & KEY_B) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -966,18 +967,10 @@ std::string browseForFile (void) {
|
|||||||
clipboardOn = !clipboardOn;
|
clipboardOn = !clipboardOn;
|
||||||
} if (pressed & KEY_START) { // START menu
|
} if (pressed & KEY_START) { // START menu
|
||||||
startMenu();
|
startMenu();
|
||||||
}
|
} else if (pressed & config->screenSwapKey()) { // Swap screens
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
|
||||||
// Swap screens
|
|
||||||
else if (pressed & KEY_TOUCH) {
|
|
||||||
screenSwapped = !screenSwapped;
|
screenSwapped = !screenSwapped;
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
}
|
} else if ((held & KEY_R) && (pressed & KEY_L)) { // Make a screenshot
|
||||||
#endif
|
|
||||||
|
|
||||||
// Make a screenshot
|
|
||||||
else if ((held & KEY_R) && (pressed & KEY_L)) {
|
|
||||||
if(screenshot())
|
if(screenshot())
|
||||||
getDirectoryContents(dirContents);
|
getDirectoryContents(dirContents);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
#include "config.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
#include "language.h"
|
#include "language.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
@ -7,9 +8,8 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
std::string kbdGetString(std::string label, int maxSize, std::string oldStr) {
|
std::string kbdGetString(std::string label, int maxSize, std::string oldStr) {
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
lcdMainOnTop();
|
lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
font->clear(false);
|
font->clear(false);
|
||||||
font->update(false);
|
font->update(false);
|
||||||
@ -182,9 +182,8 @@ std::string kbdGetString(std::string label, int maxSize, std::string oldStr) {
|
|||||||
}
|
}
|
||||||
keyboardHide();
|
keyboardHide();
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
if(config->screenSwap())
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,9 +50,7 @@ char titleName[64] = {" "};
|
|||||||
int screenMode = 0;
|
int screenMode = 0;
|
||||||
|
|
||||||
bool appInited = false;
|
bool appInited = false;
|
||||||
#ifdef SCREENSWAP
|
|
||||||
bool screenSwapped = false;
|
bool screenSwapped = false;
|
||||||
#endif
|
|
||||||
|
|
||||||
bool arm7SCFGLocked = false;
|
bool arm7SCFGLocked = false;
|
||||||
bool isRegularDS = true;
|
bool isRegularDS = true;
|
||||||
@ -115,11 +113,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
bool yHeld = false;
|
bool yHeld = false;
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
|
||||||
sprintf(titleName, "GodMode9i (Screen Swap) %s", VER_NUMBER);
|
|
||||||
#else
|
|
||||||
sprintf(titleName, "GodMode9i %s", VER_NUMBER);
|
sprintf(titleName, "GodMode9i %s", VER_NUMBER);
|
||||||
#endif
|
|
||||||
|
|
||||||
// initialize video mode
|
// initialize video mode
|
||||||
videoSetMode(MODE_5_2D);
|
videoSetMode(MODE_5_2D);
|
||||||
|
|||||||
@ -6,9 +6,7 @@ extern char titleName[32];
|
|||||||
extern int screenMode;
|
extern int screenMode;
|
||||||
|
|
||||||
extern bool appInited;
|
extern bool appInited;
|
||||||
#ifdef SCREENSWAP
|
|
||||||
extern bool screenSwapped;
|
extern bool screenSwapped;
|
||||||
#endif
|
|
||||||
|
|
||||||
extern bool arm7SCFGLocked;
|
extern bool arm7SCFGLocked;
|
||||||
extern bool isRegularDS;
|
extern bool isRegularDS;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
#include "titleManager.h"
|
#include "titleManager.h"
|
||||||
|
#include "config.h"
|
||||||
#include "driveOperations.h"
|
#include "driveOperations.h"
|
||||||
#include "file_browse.h"
|
#include "file_browse.h"
|
||||||
#include "fileOperations.h"
|
#include "fileOperations.h"
|
||||||
@ -111,11 +112,7 @@ void dumpTitle(TitleInfo &title) {
|
|||||||
pressed = keysDownRepeat();
|
pressed = keysDownRepeat();
|
||||||
held = keysHeld();
|
held = keysHeld();
|
||||||
swiWaitForVBlank();
|
swiWaitForVBlank();
|
||||||
} while (!(pressed & (KEY_UP| KEY_DOWN | KEY_A | KEY_B | KEY_L))
|
} while (!(pressed & (KEY_UP| KEY_DOWN | KEY_A | KEY_B | KEY_L | config->screenSwapKey())));
|
||||||
#ifdef SCREENSWAP
|
|
||||||
&& !(pressed & KEY_TOUCH)
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
if (pressed & KEY_UP)
|
if (pressed & KEY_UP)
|
||||||
optionOffset--;
|
optionOffset--;
|
||||||
@ -186,13 +183,11 @@ void dumpTitle(TitleInfo &title) {
|
|||||||
if (pressed & KEY_B)
|
if (pressed & KEY_B)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
|
||||||
// Swap screens
|
// Swap screens
|
||||||
if (pressed & KEY_TOUCH) {
|
if (pressed & config->screenSwapKey()) {
|
||||||
screenSwapped = !screenSwapped;
|
screenSwapped = !screenSwapped;
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Make a screenshot
|
// Make a screenshot
|
||||||
if ((held & KEY_R) && (pressed & KEY_L)) {
|
if ((held & KEY_R) && (pressed & KEY_L)) {
|
||||||
@ -301,11 +296,7 @@ void titleManager() {
|
|||||||
scanKeys();
|
scanKeys();
|
||||||
pressed = keysDown();
|
pressed = keysDown();
|
||||||
held = keysDownRepeat();
|
held = keysDownRepeat();
|
||||||
} while(!(held & (KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_A | KEY_B | KEY_L
|
} while(!(held & (KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_A | KEY_B | KEY_L | config->screenSwapKey())));
|
||||||
#ifdef SCREENSWAP
|
|
||||||
| KEY_TOUCH
|
|
||||||
#endif
|
|
||||||
)));
|
|
||||||
|
|
||||||
if(held & KEY_UP) {
|
if(held & KEY_UP) {
|
||||||
cursorPosition--;
|
cursorPosition--;
|
||||||
@ -335,13 +326,11 @@ void titleManager() {
|
|||||||
if (cursorPosition > scrollOffset + ENTRIES_PER_SCREEN - 1)
|
if (cursorPosition > scrollOffset + ENTRIES_PER_SCREEN - 1)
|
||||||
scrollOffset = cursorPosition - ENTRIES_PER_SCREEN + 1;
|
scrollOffset = cursorPosition - ENTRIES_PER_SCREEN + 1;
|
||||||
|
|
||||||
#ifdef SCREENSWAP
|
|
||||||
// Swap screens
|
// Swap screens
|
||||||
if (pressed & KEY_TOUCH) {
|
if (pressed & config->screenSwapKey()) {
|
||||||
screenSwapped = !screenSwapped;
|
screenSwapped = !screenSwapped;
|
||||||
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if((pressed & KEY_L) && (keysHeld() & KEY_R)) {
|
if((pressed & KEY_L) && (keysHeld() & KEY_R)) {
|
||||||
screenshot();
|
screenshot();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user