Make system language configurable

This commit is contained in:
wheremyfoodat 2024-12-10 20:28:49 +02:00
parent 12f5b6bc98
commit 4cfc5fb32a
6 changed files with 70 additions and 7 deletions

View file

@ -5,6 +5,7 @@
#include "audio/dsp_core.hpp"
#include "frontend_settings.hpp"
#include "renderer.hpp"
#include "services/region_codes.hpp"
struct AudioDeviceConfig {
// Audio curve to use for volumes between 0-100
@ -77,6 +78,8 @@ struct EmulatorConfig {
// Default to 3% battery to make users suffer
int batteryPercentage = 3;
LanguageCodes systemLanguage = LanguageCodes::English;
// Default ROM path to open in Qt and misc frontends
std::filesystem::path defaultRomPath = "";
std::filesystem::path filePath;
@ -104,4 +107,7 @@ struct EmulatorConfig {
EmulatorConfig(const std::filesystem::path& path);
void load();
void save();
static LanguageCodes languageCodeFromString(std::string inString);
static const char* languageCodeToString(LanguageCodes code);
};

View file

@ -1,6 +1,7 @@
#pragma once
#include <cstring>
#include "config.hpp"
#include "helpers.hpp"
#include "logger.hpp"
#include "memory.hpp"
@ -11,6 +12,8 @@ class CFGService {
using Handle = HorizonHandle;
Memory& mem;
const EmulatorConfig& settings;
CountryCodes country = CountryCodes::US; // Default to USA
MAKE_LOG_FUNCTION(log, cfgLogger)
@ -45,7 +48,7 @@ class CFGService {
NOR, // cfg:nor
};
CFGService(Memory& mem) : mem(mem) {}
CFGService(Memory& mem, const EmulatorConfig& settings) : mem(mem), settings(settings) {}
void reset();
void handleSyncRequest(u32 messagePointer, Type type);
};