mirror of
https://github.com/usatiuk/cardboy.git
synced 2025-10-28 23:27:49 +01:00
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#include "cardboy/sdk/persistent_settings.hpp"
|
|
|
|
#include <cstdint>
|
|
#include <string_view>
|
|
|
|
namespace cardboy::sdk {
|
|
|
|
namespace {
|
|
constexpr std::string_view kNamespace = "settings";
|
|
constexpr std::string_view kMuteKey = "mute";
|
|
constexpr std::string_view kAutoLightSleepKey = "autosleep";
|
|
|
|
[[nodiscard]] std::uint32_t boolToStorage(bool value) { return value ? 1U : 0U; }
|
|
[[nodiscard]] bool storageToBool(std::uint32_t value) { return value != 0U; }
|
|
} // namespace
|
|
|
|
PersistentSettings loadPersistentSettings(Services* services) {
|
|
PersistentSettings settings{};
|
|
if (!services || !services->storage)
|
|
return settings;
|
|
|
|
std::uint32_t raw = 0;
|
|
if (services->storage->readUint32(kNamespace, kMuteKey, raw))
|
|
settings.mute = storageToBool(raw);
|
|
|
|
if (services->storage->readUint32(kNamespace, kAutoLightSleepKey, raw))
|
|
settings.autoLightSleep = storageToBool(raw);
|
|
|
|
return settings;
|
|
}
|
|
|
|
void savePersistentSettings(Services* services, const PersistentSettings& settings) {
|
|
if (!services || !services->storage)
|
|
return;
|
|
|
|
services->storage->writeUint32(kNamespace, kMuteKey, boolToStorage(settings.mute));
|
|
services->storage->writeUint32(kNamespace, kAutoLightSleepKey, boolToStorage(settings.autoLightSleep));
|
|
}
|
|
|
|
} // namespace cardboy::sdk
|