aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2021-11-17 21:44:49 +0100
committerArisotura <thetotalworm@gmail.com>2021-11-17 21:44:49 +0100
commitd5b248bb863570f46a394ea7e217deb9666402fd (patch)
tree108c844c1a5687798c405b01dac5f618f45be599 /src
parent13afaa03031c2ea6c255a9e7a1c2563a51090d36 (diff)
decouple more config shit from the core. bahahah
Diffstat (limited to 'src')
-rw-r--r--src/Config.cpp20
-rw-r--r--src/Config.h10
-rw-r--r--src/Platform.h9
-rw-r--r--src/SPI.cpp19
-rw-r--r--src/frontend/qt_sdl/FirmwareSettingsDialog.cpp2
-rw-r--r--src/frontend/qt_sdl/Platform.cpp11
-rw-r--r--src/frontend/qt_sdl/PlatformConfig.cpp18
-rw-r--r--src/frontend/qt_sdl/PlatformConfig.h9
8 files changed, 61 insertions, 37 deletions
diff --git a/src/Config.cpp b/src/Config.cpp
index 1163e06..0565a32 100644
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -28,28 +28,12 @@ namespace Config
const char* kConfigFile = "melonDS.ini";
-char FirmwareUsername[64];
-int FirmwareLanguage;
-bool FirmwareOverrideSettings;
-int FirmwareBirthdayMonth;
-int FirmwareBirthdayDay;
-int FirmwareFavouriteColour;
-char FirmwareMessage[1024];
-
-int RandomizeMAC;
+
int AudioBitrate;
ConfigEntry ConfigFile[] =
{
- {"FirmwareUsername", 1, FirmwareUsername, 0, "melonDS", 63},
- {"FirmwareLanguage", 0, &FirmwareLanguage, 1, NULL, 0},
- {"FirmwareOverrideSettings", 0, &FirmwareOverrideSettings, false, NULL, 0},
- {"FirmwareBirthdayMonth", 0, &FirmwareBirthdayMonth, 0, NULL, 0},
- {"FirmwareBirthdayDay", 0, &FirmwareBirthdayDay, 0, NULL, 0},
- {"FirmwareFavouriteColour", 0, &FirmwareFavouriteColour, 0, NULL, 0},
- {"FirmwareMessage", 1, FirmwareMessage, 0, "", 1023},
-
- {"RandomizeMAC", 0, &RandomizeMAC, 0, NULL, 0},
+
{"AudioBitrate", 0, &AudioBitrate, 0, NULL, 0},
{"", -1, NULL, 0, NULL, 0}
diff --git a/src/Config.h b/src/Config.h
index 8821be2..778fd0e 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -41,15 +41,7 @@ bool HasConfigFile(const char* fileName);
void Load();
void Save();
-extern char FirmwareUsername[64];
-extern int FirmwareLanguage;
-extern bool FirmwareOverrideSettings;
-extern int FirmwareBirthdayMonth;
-extern int FirmwareBirthdayDay;
-extern int FirmwareFavouriteColour;
-extern char FirmwareMessage[1024];
-
-extern int RandomizeMAC;
+
extern int AudioBitrate;
}
diff --git a/src/Platform.h b/src/Platform.h
index 2faef50..0323637 100644
--- a/src/Platform.h
+++ b/src/Platform.h
@@ -68,6 +68,15 @@ enum ConfigEntry
DSiSD_ReadOnly,
DSiSD_FolderSync,
DSiSD_FolderPath,
+
+ Firm_RandomizeMAC,
+ Firm_OverrideSettings,
+ Firm_Username,
+ Firm_Language,
+ Firm_BirthdayMonth,
+ Firm_BirthdayDay,
+ Firm_Color,
+ Firm_Message,
};
int GetConfigInt(ConfigEntry entry);
diff --git a/src/SPI.cpp b/src/SPI.cpp
index 5ae0e21..e8a7d35 100644
--- a/src/SPI.cpp
+++ b/src/SPI.cpp
@@ -23,7 +23,6 @@
#include <algorithm>
#include <codecvt>
#include <locale>
-#include "Config.h"
#include "NDS.h"
#include "DSi.h"
#include "SPI.h"
@@ -171,23 +170,25 @@ void LoadFirmwareFromFile(FILE* f)
void LoadUserSettingsFromConfig()
{
// setting up username
- std::u16string username = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(Config::FirmwareUsername);
+ std::string orig_username = Platform::GetConfigString(Platform::Firm_Username);
+ std::u16string username = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(orig_username);
size_t usernameLength = std::min(username.length(), (size_t) 10);
memcpy(Firmware + UserSettings + 0x06, username.data(), usernameLength * sizeof(char16_t));
Firmware[UserSettings+0x1A] = usernameLength;
// setting language
- Firmware[UserSettings+0x64] = Config::FirmwareLanguage;
+ Firmware[UserSettings+0x64] = Platform::GetConfigInt(Platform::Firm_Language);
// setting up color
- Firmware[UserSettings+0x02] = Config::FirmwareFavouriteColour;
+ Firmware[UserSettings+0x02] = Platform::GetConfigInt(Platform::Firm_Color);
// setting up birthday
- Firmware[UserSettings+0x03] = Config::FirmwareBirthdayMonth;
- Firmware[UserSettings+0x04] = Config::FirmwareBirthdayDay;
+ Firmware[UserSettings+0x03] = Platform::GetConfigInt(Platform::Firm_BirthdayMonth);
+ Firmware[UserSettings+0x04] = Platform::GetConfigInt(Platform::Firm_BirthdayDay);
// setup message
- std::u16string message = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(Config::FirmwareMessage);
+ std::string orig_message = Platform::GetConfigString(Platform::Firm_Message);
+ std::u16string message = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(orig_message);
size_t messageLength = std::min(message.length(), (size_t) 26);
memcpy(Firmware + UserSettings + 0x1C, message.data(), messageLength * sizeof(char16_t));
Firmware[UserSettings+0x50] = messageLength;
@@ -225,7 +226,7 @@ void Reset()
UserSettings = userdata;
- if (!f || Config::FirmwareOverrideSettings)
+ if (!f || Platform::GetConfigBool(Platform::Firm_OverrideSettings))
LoadUserSettingsFromConfig();
// fix touchscreen coords
@@ -243,7 +244,7 @@ void Reset()
*(u16*)&Firmware[userdata+0x72] = CRC16(&Firmware[userdata], 0x70, 0xFFFF);
- if (Config::RandomizeMAC)
+ if (Platform::GetConfigBool(Platform::Firm_RandomizeMAC))
{
// replace MAC address with random address
Firmware[0x36] = 0x00;
diff --git a/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp b/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp
index 94e5f5a..834624f 100644
--- a/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp
+++ b/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp
@@ -16,7 +16,7 @@
with melonDS. If not, see http://www.gnu.org/licenses/.
*/
-#include "Config.h"
+#include "PlatformConfig.h"
#include "FirmwareSettingsDialog.h"
#include "ui_FirmwareSettingsDialog.h"
diff --git a/src/frontend/qt_sdl/Platform.cpp b/src/frontend/qt_sdl/Platform.cpp
index b11ca2c..c787092 100644
--- a/src/frontend/qt_sdl/Platform.cpp
+++ b/src/frontend/qt_sdl/Platform.cpp
@@ -135,6 +135,11 @@ int GetConfigInt(ConfigEntry entry)
case DLDI_ImageSize: return imgsizes[Config::DLDISize];
case DSiSD_ImageSize: return imgsizes[Config::DSiSDSize];
+
+ case Firm_Language: return Config::FirmwareLanguage;
+ case Firm_BirthdayMonth: return Config::FirmwareBirthdayMonth;
+ case Firm_BirthdayDay: return Config::FirmwareBirthdayDay;
+ case Firm_Color: return Config::FirmwareFavouriteColour;
}
return 0;
@@ -160,6 +165,9 @@ bool GetConfigBool(ConfigEntry entry)
case DSiSD_Enable: return Config::DSiSDEnable != 0;
case DSiSD_ReadOnly: return Config::DSiSDReadOnly != 0;
case DSiSD_FolderSync: return Config::DSiSDFolderSync != 0;
+
+ case Firm_RandomizeMAC: return Config::RandomizeMAC != 0;
+ case Firm_OverrideSettings: return Config::FirmwareOverrideSettings != 0;
}
return false;
@@ -183,6 +191,9 @@ std::string GetConfigString(ConfigEntry entry)
case DSiSD_ImagePath: return Config::DSiSDPath;
case DSiSD_FolderPath: return Config::DSiSDFolderPath;
+
+ case Firm_Username: return Config::FirmwareUsername;
+ case Firm_Message: return Config::FirmwareMessage;
}
return "";
diff --git a/src/frontend/qt_sdl/PlatformConfig.cpp b/src/frontend/qt_sdl/PlatformConfig.cpp
index 70fc852..48d810d 100644
--- a/src/frontend/qt_sdl/PlatformConfig.cpp
+++ b/src/frontend/qt_sdl/PlatformConfig.cpp
@@ -96,6 +96,15 @@ int DSiSDReadOnly;
int DSiSDFolderSync;
char DSiSDFolderPath[1024];
+int RandomizeMAC;
+bool FirmwareOverrideSettings;
+char FirmwareUsername[64];
+int FirmwareLanguage;
+int FirmwareBirthdayMonth;
+int FirmwareBirthdayDay;
+int FirmwareFavouriteColour;
+char FirmwareMessage[1024];
+
int SocketBindAnyAddr;
char LANDevice[128];
int DirectLAN;
@@ -242,6 +251,15 @@ ConfigEntry PlatformConfigFile[] =
{"DSiSDFolderSync", 0, &DSiSDFolderSync, 0, NULL, 0},
{"DSiSDFolderPath", 1, DSiSDFolderPath, 0, "", 1023},
+ {"RandomizeMAC", 0, &RandomizeMAC, 0, NULL, 0},
+ {"FirmwareOverrideSettings", 0, &FirmwareOverrideSettings, false, NULL, 0},
+ {"FirmwareUsername", 1, FirmwareUsername, 0, "melonDS", 63},
+ {"FirmwareLanguage", 0, &FirmwareLanguage, 1, NULL, 0},
+ {"FirmwareBirthdayMonth", 0, &FirmwareBirthdayMonth, 0, NULL, 0},
+ {"FirmwareBirthdayDay", 0, &FirmwareBirthdayDay, 0, NULL, 0},
+ {"FirmwareFavouriteColour", 0, &FirmwareFavouriteColour, 0, NULL, 0},
+ {"FirmwareMessage", 1, FirmwareMessage, 0, "", 1023},
+
{"SockBindAnyAddr", 0, &SocketBindAnyAddr, 0, NULL, 0},
{"LANDevice", 1, LANDevice, 0, "", 127},
{"DirectLAN", 0, &DirectLAN, 0, NULL, 0},
diff --git a/src/frontend/qt_sdl/PlatformConfig.h b/src/frontend/qt_sdl/PlatformConfig.h
index 0a224e9..514a2da 100644
--- a/src/frontend/qt_sdl/PlatformConfig.h
+++ b/src/frontend/qt_sdl/PlatformConfig.h
@@ -112,6 +112,15 @@ extern int DSiSDReadOnly;
extern int DSiSDFolderSync;
extern char DSiSDFolderPath[1024];
+extern int RandomizeMAC;
+extern bool FirmwareOverrideSettings;
+extern char FirmwareUsername[64];
+extern int FirmwareLanguage;
+extern int FirmwareBirthdayMonth;
+extern int FirmwareBirthdayDay;
+extern int FirmwareFavouriteColour;
+extern char FirmwareMessage[1024];
+
extern int SocketBindAnyAddr;
extern char LANDevice[128];
extern int DirectLAN;