aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Program.cs2
-rw-r--r--Ryujinx.conf20
-rw-r--r--Ryujinx/Config.cs54
-rw-r--r--Ryujinx/Logging.cs14
4 files changed, 83 insertions, 7 deletions
diff --git a/Program.cs b/Program.cs
index 79a4f707..5569cd49 100644
--- a/Program.cs
+++ b/Program.cs
@@ -9,6 +9,8 @@ namespace Ryujinx
{
static void Main(string[] args)
{
+ Config.Read();
+
Console.Title = "Ryujinx Console";
IGalRenderer Renderer = new OpenGLRenderer();
diff --git a/Ryujinx.conf b/Ryujinx.conf
new file mode 100644
index 00000000..590318fe
--- /dev/null
+++ b/Ryujinx.conf
@@ -0,0 +1,20 @@
+#Enabled print informations logs
+Logging_Enable_Info = true
+
+#Enabled print trace logs
+Logging_Enable_Trace = true
+
+#Enabled print debug logs
+Logging_Enable_Debug = true
+
+#Enabled print warning logs
+Logging_Enable_Warn = true
+
+#Enabled print error logs
+Logging_Enable_Error = true
+
+#Enabled print fatal logs
+Logging_Enable_Fatal = true
+
+#Saved logs into Ryujinx.log
+Logging_Enable_LogFile = false
diff --git a/Ryujinx/Config.cs b/Ryujinx/Config.cs
new file mode 100644
index 00000000..2e4e5695
--- /dev/null
+++ b/Ryujinx/Config.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace Ryujinx
+{
+ public static class Config
+ {
+ public static bool LoggingEnableInfo { get; private set; }
+ public static bool LoggingEnableTrace { get; private set; }
+ public static bool LoggingEnableDebug { get; private set; }
+ public static bool LoggingEnableWarn { get; private set; }
+ public static bool LoggingEnableError { get; private set; }
+ public static bool LoggingEnableFatal { get; private set; }
+ public static bool LoggingEnableLogFile { get; private set; }
+
+ public static void Read()
+ {
+ IniParser Parser = new IniParser("Ryujinx.conf");
+
+ LoggingEnableInfo = Convert.ToBoolean(Parser.Value("Logging_Enable_Info"));
+ LoggingEnableTrace = Convert.ToBoolean(Parser.Value("Logging_Enable_Trace"));
+ LoggingEnableDebug = Convert.ToBoolean(Parser.Value("Logging_Enable_Debug"));
+ LoggingEnableWarn = Convert.ToBoolean(Parser.Value("Logging_Enable_Warn"));
+ LoggingEnableError = Convert.ToBoolean(Parser.Value("Logging_Enable_Error"));
+ LoggingEnableFatal = Convert.ToBoolean(Parser.Value("Logging_Enable_Fatal"));
+ LoggingEnableLogFile = Convert.ToBoolean(Parser.Value("Logging_Enable_LogFile"));
+ }
+ }
+
+ // https://stackoverflow.com/a/37772571
+ public class IniParser
+ {
+ private Dictionary<string, string> Values;
+
+ public IniParser(string Path)
+ {
+ Values = File.ReadLines(Path)
+ .Where(Line => (!String.IsNullOrWhiteSpace(Line) && !Line.StartsWith("#")))
+ .Select(Line => Line.Split(new char[] { '=' }, 2, 0))
+ .ToDictionary(Parts => Parts[0].Trim(), Parts => Parts.Length > 1 ? Parts[1].Trim() : null);
+ }
+
+ public string Value(string Name, string Value = null)
+ {
+ if (Values != null && Values.ContainsKey(Name))
+ {
+ return Values[Name];
+ }
+ return Value;
+ }
+ }
+}
diff --git a/Ryujinx/Logging.cs b/Ryujinx/Logging.cs
index bdb6ad06..f575549e 100644
--- a/Ryujinx/Logging.cs
+++ b/Ryujinx/Logging.cs
@@ -10,13 +10,13 @@ namespace Ryujinx
private static Stopwatch ExecutionTime = new Stopwatch();
private static string LogFileName = "Ryujinx.log";
- public static bool EnableInfo = true;
- public static bool EnableTrace = true;
- public static bool EnableDebug = true;
- public static bool EnableWarn = true;
- public static bool EnableError = true;
- public static bool EnableFatal = true;
- public static bool EnableLogFile = false;
+ public static bool EnableInfo = Config.LoggingEnableInfo;
+ public static bool EnableTrace = Config.LoggingEnableTrace;
+ public static bool EnableDebug = Config.LoggingEnableDebug;
+ public static bool EnableWarn = Config.LoggingEnableWarn;
+ public static bool EnableError = Config.LoggingEnableError;
+ public static bool EnableFatal = Config.LoggingEnableFatal;
+ public static bool EnableLogFile = Config.LoggingEnableLogFile;
static Logging()
{