mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-02 02:52:30 +02:00
09d2afa91f
Change SettingsHandler to take a buffer instead of assuming that the setting file to read is always on the host filesystem for more flexibility and make it possible to use the new filesystem interface.
45 lines
937 B
C++
45 lines
937 B
C++
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
// Thanks to Treeki for writing the original class - 29/01/2012
|
|
|
|
#pragma once
|
|
|
|
#include <array>
|
|
#include <string>
|
|
|
|
#include "Common/CommonTypes.h"
|
|
|
|
class SettingsHandler
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
SETTINGS_SIZE = 0x100,
|
|
// Key used to encrypt/decrypt setting.txt contents
|
|
INITIAL_SEED = 0x73B5DBFA
|
|
};
|
|
|
|
using Buffer = std::array<u8, SETTINGS_SIZE>;
|
|
SettingsHandler();
|
|
explicit SettingsHandler(Buffer&& buffer);
|
|
|
|
void AddSetting(const std::string& key, const std::string& value);
|
|
|
|
const Buffer& GetBytes() const;
|
|
void SetBytes(Buffer&& buffer);
|
|
const std::string GetValue(const std::string& key);
|
|
|
|
void Decrypt();
|
|
void Reset();
|
|
static std::string GenerateSerialNumber();
|
|
|
|
private:
|
|
void WriteByte(u8 b);
|
|
|
|
std::array<u8, SETTINGS_SIZE> m_buffer;
|
|
u32 m_position, m_key;
|
|
std::string decoded;
|
|
};
|