Files
Horizon-OC/Source/OnDeviceConfig/source/config.cpp
2025-10-06 19:18:21 -04:00

60 lines
1.3 KiB
C++

/*
* HOC Configurator - Configuration Implementation
* Copyright (C) Dominatorul, Souldbminer
*/
#include "config.hpp"
#include <fstream>
#include <sys/stat.h>
Config::Config() {
kipPath = "sdmc:/atmosphere/kips/loader.kip";
autoSave = false;
}
bool Config::loadConfig() {
std::ifstream file("sdmc:/config/hoc-configurator/config.ini");
if (!file.is_open()) {
return false;
}
std::string line;
while (std::getline(file, line)) {
if (line.find("kip_path=") == 0) {
kipPath = line.substr(9);
} else if (line.find("auto_save=") == 0) {
autoSave = (line.substr(10) == "1");
}
}
file.close();
return true;
}
bool Config::saveConfig() {
// Create directory if it doesn't exist
mkdir("sdmc:/config", 0777);
mkdir("sdmc:/config/hoc-configurator", 0777);
std::ofstream file("sdmc:/config/hoc-configurator/config.ini");
if (!file.is_open()) {
return false;
}
file << "kip_path=" << kipPath << "\n";
file << "auto_save=" << (autoSave ? "1" : "0") << "\n";
file.close();
return true;
}
bool Config::checkKipExists() {
struct stat buffer;
return (stat(kipPath.c_str(), &buffer) == 0);
}
bool Config::checkAtmosphereExists() {
struct stat buffer;
return (stat("sdmc:/atmosphere", &buffer) == 0);
}