Fixed compilation errors

This commit is contained in:
DH 2015-10-13 21:09:42 +03:00
parent 07b3897499
commit 9136cbfcf2
5 changed files with 128 additions and 107 deletions

View file

@ -1,6 +1,5 @@
#include "stdafx.h" #include "stdafx.h"
#include "config_context.h" #include "config_context.h"
#include "convert.h"
#include "StrFmt.h" #include "StrFmt.h"
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>

View file

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <unordered_map> #include <unordered_map>
#include <string> #include <string>
#include "convert.h"
class config_context_t class config_context_t
{ {

View file

@ -139,6 +139,7 @@ file(
GLOB_RECURSE GLOB_RECURSE
RPCS3_SRC RPCS3_SRC
"${RPCS3_SRC_DIR}/rpcs3.cpp" "${RPCS3_SRC_DIR}/rpcs3.cpp"
"${RPCS3_SRC_DIR}/config.cpp"
"${RPCS3_SRC_DIR}/Ini.cpp" "${RPCS3_SRC_DIR}/Ini.cpp"
"${RPCS3_SRC_DIR}/../Utilities/GNU.cpp" "${RPCS3_SRC_DIR}/../Utilities/GNU.cpp"
"${RPCS3_SRC_DIR}/Emu/*" "${RPCS3_SRC_DIR}/Emu/*"

View file

@ -32,13 +32,21 @@ namespace rpcs3
void config_t::load() void config_t::load()
{ {
if (!m_path.empty()) if (!m_path.empty())
deserialize(std::ifstream{ m_path }); {
std::ifstream stream{ m_path };
if (stream)
deserialize(stream);
}
} }
void config_t::save() const void config_t::save() const
{ {
if (!m_path.empty()) if (!m_path.empty())
serialize(std::ofstream{ m_path }); {
std::ofstream stream{ m_path };
if (stream)
serialize(stream);
}
} }
config_t config{ "rpcs3.new.ini" }; config_t config{ "rpcs3.new.ini" };

View file

@ -9,39 +9,42 @@ enum class audio_output_type
XAudio2 XAudio2
}; };
template<> namespace convert
struct convert::to_impl_t<std::string, audio_output_type>
{ {
static std::string func(audio_output_type value) template<>
struct to_impl_t<std::string, audio_output_type>
{ {
switch (value) static std::string func(audio_output_type value)
{ {
case audio_output_type::Null: return "Null"; switch (value)
case audio_output_type::OpenAL: return "OpenAL"; {
case audio_output_type::XAudio2: return "XAudio2"; case audio_output_type::Null: return "Null";
case audio_output_type::OpenAL: return "OpenAL";
case audio_output_type::XAudio2: return "XAudio2";
}
return "Unknown";
} }
};
return "Unknown"; template<>
} struct to_impl_t<audio_output_type, std::string>
};
template<>
struct convert::to_impl_t<audio_output_type, std::string>
{
static audio_output_type func(const std::string &value)
{ {
if (value == "Null") static audio_output_type func(const std::string &value)
{
if (value == "Null")
return audio_output_type::Null;
if (value == "OpenAL")
return audio_output_type::OpenAL;
if (value == "XAudio2")
return audio_output_type::XAudio2;
return audio_output_type::Null; return audio_output_type::Null;
}
if (value == "OpenAL") };
return audio_output_type::OpenAL; }
if (value == "XAudio2")
return audio_output_type::XAudio2;
return audio_output_type::Null;
}
};
enum class rsx_renderer_type enum class rsx_renderer_type
{ {
@ -50,39 +53,42 @@ enum class rsx_renderer_type
DX12 DX12
}; };
template<> namespace convert
struct convert::to_impl_t<std::string, rsx_renderer_type>
{ {
static std::string func(rsx_renderer_type value) template<>
struct to_impl_t<std::string, rsx_renderer_type>
{ {
switch (value) static std::string func(rsx_renderer_type value)
{ {
case rsx_renderer_type::Null: return "Null"; switch (value)
case rsx_renderer_type::OpenGL: return "OpenGL"; {
case rsx_renderer_type::DX12: return "DX12"; case rsx_renderer_type::Null: return "Null";
case rsx_renderer_type::OpenGL: return "OpenGL";
case rsx_renderer_type::DX12: return "DX12";
}
return "Unknown";
} }
};
return "Unknown"; template<>
} struct to_impl_t<rsx_renderer_type, std::string>
};
template<>
struct convert::to_impl_t<rsx_renderer_type, std::string>
{
static rsx_renderer_type func(const std::string &value)
{ {
if (value == "Null") static rsx_renderer_type func(const std::string &value)
{
if (value == "Null")
return rsx_renderer_type::Null;
if (value == "OpenGL")
return rsx_renderer_type::OpenGL;
if (value == "DX12")
return rsx_renderer_type::DX12;
return rsx_renderer_type::Null; return rsx_renderer_type::Null;
}
if (value == "OpenGL") };
return rsx_renderer_type::OpenGL; }
if (value == "DX12")
return rsx_renderer_type::DX12;
return rsx_renderer_type::Null;
}
};
enum class ppu_decoder_type enum class ppu_decoder_type
{ {
@ -91,39 +97,42 @@ enum class ppu_decoder_type
recompiler_llvm recompiler_llvm
}; };
template<> namespace convert
struct convert::to_impl_t<std::string, ppu_decoder_type>
{ {
static std::string func(ppu_decoder_type value) template<>
struct to_impl_t<std::string, ppu_decoder_type>
{ {
switch (value) static std::string func(ppu_decoder_type value)
{ {
case ppu_decoder_type::interpreter: return "interpreter"; switch (value)
case ppu_decoder_type::interpreter2: return "interpreter2"; {
case ppu_decoder_type::recompiler_llvm: return "recompiler_llvm"; case ppu_decoder_type::interpreter: return "interpreter";
case ppu_decoder_type::interpreter2: return "interpreter2";
case ppu_decoder_type::recompiler_llvm: return "recompiler_llvm";
}
return "Unknown";
} }
};
return "Unknown"; template<>
} struct to_impl_t<ppu_decoder_type, std::string>
};
template<>
struct convert::to_impl_t<ppu_decoder_type, std::string>
{
static ppu_decoder_type func(const std::string &value)
{ {
if (value == "interpreter") static ppu_decoder_type func(const std::string &value)
{
if (value == "interpreter")
return ppu_decoder_type::interpreter;
if (value == "interpreter2")
return ppu_decoder_type::interpreter2;
if (value == "DX12")
return ppu_decoder_type::recompiler_llvm;
return ppu_decoder_type::interpreter; return ppu_decoder_type::interpreter;
}
if (value == "interpreter2") };
return ppu_decoder_type::interpreter2; }
if (value == "DX12")
return ppu_decoder_type::recompiler_llvm;
return ppu_decoder_type::interpreter;
}
};
enum class spu_decoder_type enum class spu_decoder_type
@ -133,39 +142,42 @@ enum class spu_decoder_type
recompiler_asmjit recompiler_asmjit
}; };
template<> namespace convert
struct convert::to_impl_t<std::string, spu_decoder_type>
{ {
static std::string func(spu_decoder_type value) template<>
struct to_impl_t<std::string, spu_decoder_type>
{ {
switch (value) static std::string func(spu_decoder_type value)
{ {
case spu_decoder_type::interpreter_precise: return "interpreter_precise"; switch (value)
case spu_decoder_type::interpreter_fast: return "interpreter_fast"; {
case spu_decoder_type::recompiler_asmjit: return "recompiler_asmjit"; case spu_decoder_type::interpreter_precise: return "interpreter_precise";
case spu_decoder_type::interpreter_fast: return "interpreter_fast";
case spu_decoder_type::recompiler_asmjit: return "recompiler_asmjit";
}
return "Unknown";
} }
};
return "Unknown"; template<>
} struct to_impl_t<spu_decoder_type, std::string>
};
template<>
struct convert::to_impl_t<spu_decoder_type, std::string>
{
static spu_decoder_type func(const std::string &value)
{ {
if (value == "interpreter_precise") static spu_decoder_type func(const std::string &value)
{
if (value == "interpreter_precise")
return spu_decoder_type::interpreter_precise;
if (value == "interpreter_fast")
return spu_decoder_type::interpreter_fast;
if (value == "recompiler_asmjit")
return spu_decoder_type::recompiler_asmjit;
return spu_decoder_type::interpreter_precise; return spu_decoder_type::interpreter_precise;
}
if (value == "interpreter_fast") };
return spu_decoder_type::interpreter_fast; }
if (value == "recompiler_asmjit")
return spu_decoder_type::recompiler_asmjit;
return spu_decoder_type::interpreter_precise;
}
};
namespace rpcs3 namespace rpcs3
{ {