From c4c0ad58370aa5e0636b7cce5c197560ccd61103 Mon Sep 17 00:00:00 2001 From: emmaus Date: Thu, 19 Apr 2018 18:21:16 +0000 Subject: [PATCH] added base UI --- .gitignore | 1 + Ryujinx.Audio/IAalOutput.cs | 2 + Ryujinx.Audio/OpenAL/OpenALAudioOut.cs | 6 +- Ryujinx.Core/Hid/JoyCon.cs | 5 +- Ryujinx.Core/Logging/Logger.cs | 10 + Ryujinx.Core/OsHle/Horizon.cs | 13 + Ryujinx.Core/Ryujinx.Core.csproj | 4 + Ryujinx.Graphics/Gpu/NsGpu.cs | 5 + Ryujinx.UI/Configuration.cs | 25 + Ryujinx.UI/Dependencies/libbz2-1.dll | Bin 0 -> 74400 bytes Ryujinx.UI/Dependencies/libcairo-2.dll | Bin 0 -> 1014974 bytes Ryujinx.UI/Dependencies/libepoxy-0.dll | Bin 0 -> 1568976 bytes Ryujinx.UI/Dependencies/libexpat-1.dll | Bin 0 -> 219464 bytes Ryujinx.UI/Dependencies/libffi-6.dll | Bin 0 -> 34176 bytes Ryujinx.UI/Dependencies/libfontconfig-1.dll | Bin 0 -> 289868 bytes Ryujinx.UI/Dependencies/libfreetype-6.dll | Bin 0 -> 685343 bytes Ryujinx.UI/Dependencies/libgcc_s_seh-1.dll | Bin 0 -> 83088 bytes Ryujinx.UI/Dependencies/libgdk-3-0.dll | Bin 0 -> 1239140 bytes .../Dependencies/libgdk_pixbuf-2.0-0.dll | Bin 0 -> 171965 bytes Ryujinx.UI/Dependencies/libglib-2.0-0.dll | Bin 0 -> 1133029 bytes Ryujinx.UI/Dependencies/libgobject-2.0-0.dll | Bin 0 -> 313136 bytes Ryujinx.UI/Dependencies/libgraphite2.dll | Bin 0 -> 235198 bytes Ryujinx.UI/Dependencies/libgthread-2.0-0.dll | Bin 0 -> 19208 bytes Ryujinx.UI/Dependencies/libgtk-3-0.dll | Bin 0 -> 6822734 bytes Ryujinx.UI/Dependencies/libharfbuzz-0.dll | Bin 0 -> 688501 bytes Ryujinx.UI/Dependencies/libiconv-2.dll | Bin 0 -> 1056753 bytes Ryujinx.UI/Dependencies/libintl-8.dll | Bin 0 -> 133779 bytes Ryujinx.UI/Dependencies/libpango-1.0-0.dll | Bin 0 -> 259759 bytes .../Dependencies/libpangocairo-1.0-0.dll | Bin 0 -> 64920 bytes Ryujinx.UI/Dependencies/libpangoft2-1.0-0.dll | Bin 0 -> 89578 bytes .../Dependencies/libpangowin32-1.0-0.dll | Bin 0 -> 97030 bytes Ryujinx.UI/Dependencies/libpcre32-0.dll | Bin 0 -> 244896 bytes Ryujinx.UI/Dependencies/libpixman-1-0.dll | Bin 0 -> 682872 bytes Ryujinx.UI/Dependencies/libpng16-16.dll | Bin 0 -> 231566 bytes Ryujinx.UI/Dependencies/libstdc++-6.dll | Bin 0 -> 1435729 bytes Ryujinx.UI/Dependencies/libwinpthread-1.dll | Bin 0 -> 57317 bytes Ryujinx.UI/EmulationController.cs | 70 + Ryujinx.UI/MainWindow.cs | 237 ++++ Ryujinx.UI/Program.cs | 35 + Ryujinx.UI/Ryujinx.UI.csproj | 131 ++ Ryujinx.UI/Settings.cs | 164 +++ Ryujinx.UI/UI/ConfigurationWindow.cs | 56 + Ryujinx.UI/UI/ConfigurationWindow.glade | 72 + Ryujinx.UI/UI/Debugging/Debugger.cs | 25 + Ryujinx.UI/UI/Debugging/Debugger.glade | 19 + Ryujinx.UI/UI/Debugging/LogPage.cs | 200 +++ Ryujinx.UI/UI/Debugging/LogPage.glade | 254 ++++ Ryujinx.UI/UI/GeneralPage.cs | 36 + Ryujinx.UI/UI/GeneralPage.glade | 68 + Ryujinx.UI/UI/InputPage.cs | 495 +++++++ Ryujinx.UI/UI/InputPage.glade | 1234 +++++++++++++++++ Ryujinx.UI/UI/MainWindow.glade | 196 +++ Ryujinx.UI/UI/MiscPage.glade | 50 + Ryujinx.UI/UI/style.css | 5 + Ryujinx.UI/ryujinxicon.png | Bin 0 -> 4954 bytes Ryujinx.sln | 8 +- Ryujinx/Config.cs | 50 +- Ryujinx/Ui/GLScreen.cs | 58 +- 58 files changed, 3477 insertions(+), 57 deletions(-) create mode 100644 Ryujinx.UI/Configuration.cs create mode 100644 Ryujinx.UI/Dependencies/libbz2-1.dll create mode 100644 Ryujinx.UI/Dependencies/libcairo-2.dll create mode 100644 Ryujinx.UI/Dependencies/libepoxy-0.dll create mode 100644 Ryujinx.UI/Dependencies/libexpat-1.dll create mode 100644 Ryujinx.UI/Dependencies/libffi-6.dll create mode 100644 Ryujinx.UI/Dependencies/libfontconfig-1.dll create mode 100644 Ryujinx.UI/Dependencies/libfreetype-6.dll create mode 100644 Ryujinx.UI/Dependencies/libgcc_s_seh-1.dll create mode 100644 Ryujinx.UI/Dependencies/libgdk-3-0.dll create mode 100644 Ryujinx.UI/Dependencies/libgdk_pixbuf-2.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libglib-2.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libgobject-2.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libgraphite2.dll create mode 100644 Ryujinx.UI/Dependencies/libgthread-2.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libgtk-3-0.dll create mode 100644 Ryujinx.UI/Dependencies/libharfbuzz-0.dll create mode 100644 Ryujinx.UI/Dependencies/libiconv-2.dll create mode 100644 Ryujinx.UI/Dependencies/libintl-8.dll create mode 100644 Ryujinx.UI/Dependencies/libpango-1.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpangocairo-1.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpangoft2-1.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpangowin32-1.0-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpcre32-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpixman-1-0.dll create mode 100644 Ryujinx.UI/Dependencies/libpng16-16.dll create mode 100644 Ryujinx.UI/Dependencies/libstdc++-6.dll create mode 100644 Ryujinx.UI/Dependencies/libwinpthread-1.dll create mode 100644 Ryujinx.UI/EmulationController.cs create mode 100644 Ryujinx.UI/MainWindow.cs create mode 100644 Ryujinx.UI/Program.cs create mode 100644 Ryujinx.UI/Ryujinx.UI.csproj create mode 100644 Ryujinx.UI/Settings.cs create mode 100644 Ryujinx.UI/UI/ConfigurationWindow.cs create mode 100644 Ryujinx.UI/UI/ConfigurationWindow.glade create mode 100644 Ryujinx.UI/UI/Debugging/Debugger.cs create mode 100644 Ryujinx.UI/UI/Debugging/Debugger.glade create mode 100644 Ryujinx.UI/UI/Debugging/LogPage.cs create mode 100644 Ryujinx.UI/UI/Debugging/LogPage.glade create mode 100644 Ryujinx.UI/UI/GeneralPage.cs create mode 100644 Ryujinx.UI/UI/GeneralPage.glade create mode 100644 Ryujinx.UI/UI/InputPage.cs create mode 100644 Ryujinx.UI/UI/InputPage.glade create mode 100644 Ryujinx.UI/UI/MainWindow.glade create mode 100644 Ryujinx.UI/UI/MiscPage.glade create mode 100644 Ryujinx.UI/UI/style.css create mode 100644 Ryujinx.UI/ryujinxicon.png diff --git a/.gitignore b/.gitignore index 82d9719b5..f0c58d2fb 100644 --- a/.gitignore +++ b/.gitignore @@ -121,6 +121,7 @@ ClientBin/ *.publishsettings packages/* *.config +*.glide~ # RIA/Silverlight projects Generated_Code/ diff --git a/Ryujinx.Audio/IAalOutput.cs b/Ryujinx.Audio/IAalOutput.cs index f9978ee4d..c53da64b6 100644 --- a/Ryujinx.Audio/IAalOutput.cs +++ b/Ryujinx.Audio/IAalOutput.cs @@ -20,5 +20,7 @@ namespace Ryujinx.Audio void Stop(int Track); PlaybackState GetState(int Track); + + void Close(); } } \ No newline at end of file diff --git a/Ryujinx.Audio/OpenAL/OpenALAudioOut.cs b/Ryujinx.Audio/OpenAL/OpenALAudioOut.cs index f574b46f3..41fa2e5ff 100644 --- a/Ryujinx.Audio/OpenAL/OpenALAudioOut.cs +++ b/Ryujinx.Audio/OpenAL/OpenALAudioOut.cs @@ -360,6 +360,10 @@ namespace Ryujinx.Audio.OpenAL return PlaybackState.Stopped; } - + public void Close() + { + KeepPolling = false; + Context.Dispose(); + } } } \ No newline at end of file diff --git a/Ryujinx.Core/Hid/JoyCon.cs b/Ryujinx.Core/Hid/JoyCon.cs index 1aef82fe0..f83c02b83 100644 --- a/Ryujinx.Core/Hid/JoyCon.cs +++ b/Ryujinx.Core/Hid/JoyCon.cs @@ -1,4 +1,7 @@ -//TODO: This is only used by Config, it doesn't belong to Core. +using System.ComponentModel; +using Newtonsoft.Json; +using OpenTK.Input; + namespace Ryujinx.Core.Input { public struct JoyConLeft diff --git a/Ryujinx.Core/Logging/Logger.cs b/Ryujinx.Core/Logging/Logger.cs index 972d716cc..905ddf343 100644 --- a/Ryujinx.Core/Logging/Logger.cs +++ b/Ryujinx.Core/Logging/Logger.cs @@ -43,6 +43,16 @@ namespace Ryujinx.Core.Logging EnabledClasses[(int)Class] = Enabled; } + public bool IsEnabled(LogLevel Level) + { + return EnabledLevels[(int)Level]; + } + + public bool IsEnabled(LogClass Class) + { + return EnabledClasses[(int)Class]; + } + internal void PrintDebug(LogClass Class, string Message, [CallerMemberName] string Caller = "") { Print(LogLevel.Debug, Class, GetFormattedMessage(Class, Message, Caller)); diff --git a/Ryujinx.Core/OsHle/Horizon.cs b/Ryujinx.Core/OsHle/Horizon.cs index 3b31bfc6d..a84476c6e 100644 --- a/Ryujinx.Core/OsHle/Horizon.cs +++ b/Ryujinx.Core/OsHle/Horizon.cs @@ -167,6 +167,19 @@ namespace Ryujinx.Core.OsHle } } + public void ShutDown() + { + foreach(var Process in Processes) + { + Process.Value.StopAllThreadsAsync(); + Process.Value.Dispose(); + } + Processes.Clear(); + Ns.OnFinish(EventArgs.Empty); + Ns.Gpu.Close(); + Ns.AudioOut.Close(); + } + internal bool TryGetProcess(int ProcessId, out Process Process) { return Processes.TryGetValue(ProcessId, out Process); diff --git a/Ryujinx.Core/Ryujinx.Core.csproj b/Ryujinx.Core/Ryujinx.Core.csproj index b9374af1d..f34e352d6 100644 --- a/Ryujinx.Core/Ryujinx.Core.csproj +++ b/Ryujinx.Core/Ryujinx.Core.csproj @@ -12,6 +12,10 @@ true + + + + diff --git a/Ryujinx.Graphics/Gpu/NsGpu.cs b/Ryujinx.Graphics/Gpu/NsGpu.cs index e10889821..d14c5cf18 100644 --- a/Ryujinx.Graphics/Gpu/NsGpu.cs +++ b/Ryujinx.Graphics/Gpu/NsGpu.cs @@ -70,5 +70,10 @@ namespace Ryujinx.Graphics.Gpu Thread.Yield(); } } + + public void Close() + { + KeepRunning = false; + } } } \ No newline at end of file diff --git a/Ryujinx.UI/Configuration.cs b/Ryujinx.UI/Configuration.cs new file mode 100644 index 000000000..2a73d308a --- /dev/null +++ b/Ryujinx.UI/Configuration.cs @@ -0,0 +1,25 @@ +using Ryujinx.Core.Input; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using Newtonsoft.Json; +using Ryujinx.Core.Logging; + +namespace Ryujinx.UI +{ + public class Configuration + { + public bool EnableMemoryChecks { get; set; } + public bool LoggingEnableInfo { get; set; } + public bool LoggingEnableDebug { get; set; } + public bool LoggingEnableWarn { get; set; } + public bool LoggingEnableError { get; set; } + public bool LoggingEnableStub { get; set; } + + public string LoggingFilteredClasses { get; set; } + + public JoyCon EmulatedJoyCon { get; set; } + } +} \ No newline at end of file diff --git a/Ryujinx.UI/Dependencies/libbz2-1.dll b/Ryujinx.UI/Dependencies/libbz2-1.dll new file mode 100644 index 0000000000000000000000000000000000000000..553478e6af61a7fee614eac384737d619bf7df7b GIT binary patch literal 74400 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 literal 0 HcmV?d00001 diff --git a/Ryujinx.UI/Dependencies/libcairo-2.dll b/Ryujinx.UI/Dependencies/libcairo-2.dll new file mode 100644 index 0000000000000000000000000000000000000000..0ac754f915f188b2acadb2ac57581b46154f27c4 GIT binary patch literal 1014974 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