2012-11-15 00:39:56 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <wx/config.h>
|
|
|
|
|
|
|
|
|
|
struct WindowInfo
|
|
|
|
|
{
|
|
|
|
|
wxSize size;
|
|
|
|
|
wxPoint position;
|
|
|
|
|
|
|
|
|
|
WindowInfo(const wxSize _size = wxDefaultSize, const wxPoint _position = wxDefaultPosition)
|
|
|
|
|
: size(_size)
|
|
|
|
|
, position(_position)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static WindowInfo& GetDefault()
|
|
|
|
|
{
|
|
|
|
|
return *new WindowInfo(wxDefaultSize, wxDefaultPosition);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class Ini
|
|
|
|
|
{
|
|
|
|
|
protected:
|
|
|
|
|
wxConfigBase* m_Config;
|
|
|
|
|
|
|
|
|
|
Ini();
|
|
|
|
|
virtual void Save(wxString key, int value);
|
|
|
|
|
virtual void Save(wxString key, bool value);
|
|
|
|
|
virtual void Save(wxString key, wxSize value);
|
|
|
|
|
virtual void Save(wxString key, wxPoint value);
|
|
|
|
|
virtual void Save(wxString key, wxString value);
|
|
|
|
|
virtual void Save(wxString key, WindowInfo value);
|
|
|
|
|
|
|
|
|
|
virtual int Load(wxString key, const int def_value);
|
|
|
|
|
virtual bool Load(wxString key, const bool def_value);
|
|
|
|
|
virtual wxSize Load(wxString key, const wxSize def_value);
|
|
|
|
|
virtual wxPoint Load(wxString key, const wxPoint def_value);
|
|
|
|
|
virtual wxString Load(wxString key, const wxString& def_value);
|
|
|
|
|
virtual WindowInfo Load(wxString key, const WindowInfo& def_value);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template<typename T> struct IniEntry : public Ini
|
|
|
|
|
{
|
|
|
|
|
T m_value;
|
|
|
|
|
wxString m_key;
|
|
|
|
|
|
|
|
|
|
IniEntry() : Ini()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Init(const wxString& key, const wxString& path)
|
|
|
|
|
{
|
|
|
|
|
m_key = key;
|
|
|
|
|
m_Config->SetPath(path);
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-30 10:46:29 +02:00
|
|
|
void SetValue(const T& value)
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
|
|
|
|
m_value = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
T GetValue()
|
|
|
|
|
{
|
|
|
|
|
return m_value;
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-30 10:46:29 +02:00
|
|
|
T LoadValue(const T& defvalue)
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
|
|
|
|
return Ini::Load(m_key, defvalue);
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-30 10:46:29 +02:00
|
|
|
void SaveValue(const T& value)
|
|
|
|
|
{
|
|
|
|
|
Ini::Save(m_key, value);
|
|
|
|
|
}
|
|
|
|
|
|
2012-11-15 00:39:56 +01:00
|
|
|
void Save()
|
|
|
|
|
{
|
|
|
|
|
Ini::Save(m_key, m_value);
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-30 10:46:29 +02:00
|
|
|
T Load(const T& defvalue)
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
|
|
|
|
return (m_value = Ini::Load(m_key, defvalue));
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class Inis
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
const wxString DefPath;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
IniEntry<u8> CPUDecoderMode;
|
|
|
|
|
IniEntry<u8> GSRenderMode;
|
2013-06-30 10:46:29 +02:00
|
|
|
IniEntry<int> GSResolution;
|
|
|
|
|
IniEntry<u8> GSAspectRatio;
|
|
|
|
|
IniEntry<bool> GSVSyncEnable;
|
2013-11-16 22:12:30 +01:00
|
|
|
IniEntry<bool> GSDumpColorBuffers;
|
|
|
|
|
IniEntry<bool> GSDumpDepthBuffer;
|
2012-11-15 00:39:56 +01:00
|
|
|
IniEntry<u8> PadHandlerMode;
|
2013-09-11 22:49:49 +02:00
|
|
|
IniEntry<u8> KeyboardHandlerMode;
|
2013-09-14 20:20:57 +02:00
|
|
|
IniEntry<u8> MouseHandlerMode;
|
2012-11-15 00:39:56 +01:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
Inis() : DefPath("EmuSettings")
|
|
|
|
|
{
|
2013-06-30 10:46:29 +02:00
|
|
|
wxString path;
|
|
|
|
|
|
|
|
|
|
path = DefPath + "\\" + "CPU";
|
|
|
|
|
CPUDecoderMode.Init("DecoderMode", path);
|
|
|
|
|
|
|
|
|
|
path = DefPath + "\\" + "GS";
|
|
|
|
|
GSRenderMode.Init("RenderMode", path);
|
|
|
|
|
GSResolution.Init("Resolution", path);
|
|
|
|
|
GSAspectRatio.Init("AspectRatio", path);
|
|
|
|
|
GSVSyncEnable.Init("VSyncEnable", path);
|
2013-11-16 22:12:30 +01:00
|
|
|
GSDumpColorBuffers.Init("DumpColorBuffers", path);
|
|
|
|
|
GSDumpDepthBuffer.Init("DumpDepthBuffer", path);
|
2013-06-30 10:46:29 +02:00
|
|
|
|
2013-09-11 22:49:49 +02:00
|
|
|
path = DefPath + "\\" + "IO";
|
|
|
|
|
PadHandlerMode.Init("PadHandlerMode", path);
|
|
|
|
|
KeyboardHandlerMode.Init("KeyboardHandlerMode", path);
|
2013-09-14 20:20:57 +02:00
|
|
|
MouseHandlerMode.Init("MouseHandlerMode", path);
|
2012-11-15 00:39:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Load()
|
|
|
|
|
{
|
|
|
|
|
CPUDecoderMode.Load(2);
|
|
|
|
|
GSRenderMode.Load(0);
|
2013-06-30 10:46:29 +02:00
|
|
|
GSResolution.Load(4);
|
|
|
|
|
GSAspectRatio.Load(1);
|
|
|
|
|
GSVSyncEnable.Load(false);
|
2013-11-16 22:12:30 +01:00
|
|
|
GSDumpColorBuffers.Load(true);
|
|
|
|
|
GSDumpDepthBuffer.Load(true);
|
2012-11-15 00:39:56 +01:00
|
|
|
PadHandlerMode.Load(0);
|
2013-09-11 22:49:49 +02:00
|
|
|
KeyboardHandlerMode.Load(0);
|
2013-09-14 20:20:57 +02:00
|
|
|
MouseHandlerMode.Load(0);
|
2012-11-15 00:39:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Save()
|
|
|
|
|
{
|
|
|
|
|
CPUDecoderMode.Save();
|
|
|
|
|
GSRenderMode.Save();
|
2013-06-30 10:46:29 +02:00
|
|
|
GSResolution.Save();
|
|
|
|
|
GSAspectRatio.Save();
|
|
|
|
|
GSVSyncEnable.Save();
|
2013-11-16 22:12:30 +01:00
|
|
|
GSDumpColorBuffers.Save();
|
|
|
|
|
GSDumpDepthBuffer.Save();
|
2012-11-15 00:39:56 +01:00
|
|
|
PadHandlerMode.Save();
|
2013-09-11 22:49:49 +02:00
|
|
|
KeyboardHandlerMode.Save();
|
2013-09-14 20:20:57 +02:00
|
|
|
MouseHandlerMode.Save();
|
2012-11-15 00:39:56 +01:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern Inis Ini;
|