From 5ecfb5c6576a473870bbc8e25ae34ccf916e5a0a Mon Sep 17 00:00:00 2001 From: Ac_K Date: Fri, 9 Feb 2018 03:47:32 +0100 Subject: [PATCH] Add internal Config support (#5) * Add internal Logging support Add class Logging. Replace all Console.WriteLine() to looks better. Add informations inside Windows Titles. * Revert "Add internal Logging support" This reverts commit 275d363aaf30011f238010572cfdb320bd7b627f. * Add internal Logging support Add Logging Class. Replace all Console.WriteLine() to looks better. Add debug informations of IpcMessage. Add informations inside Windows Titles. * Add internal Logging support2 Add Logging Class. Replace all Console.WriteLine() to looks better. Add debug informations of IpcMessage. Add informations inside Windows Titles. * Add internal Config support Add Config Class. Add Ryujinx.conf file (Ini file). Use the Config Class inside Logging. * Add internal Config support Add Config Class. Add Ryujinx.conf file (Ini file). Use the Config Class inside Logging. --- Program.cs | 2 ++ Ryujinx.conf | 20 +++++++++++++++++ Ryujinx/Config.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++ Ryujinx/Logging.cs | 14 ++++++------ 4 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 Ryujinx.conf create mode 100644 Ryujinx/Config.cs diff --git a/Program.cs b/Program.cs index 79a4f70714..5569cd49d9 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 0000000000..590318fe78 --- /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 0000000000..2e4e56953a --- /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 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 bdb6ad06ae..f575549eb1 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() {