Просмотр исходного кода

Use Enum and Delegate.CreateDelegate generic overloads (#3111)

* Use Enum generic overloads

* Remove EnumExtensions.cs

* Use Delegate.CreateDelegate generic overloads
Berkan Diler 4 лет назад
Родитель
Сommit
8f35345729

+ 0 - 12
Ryujinx.Common/Extensions/EnumExtensions.cs

@@ -1,12 +0,0 @@
-using System;
-
-namespace Ryujinx.Common
-{
-    public static class EnumExtensions
-    {
-        public static T[] GetValues<T>()
-        {
-            return (T[])Enum.GetValues(typeof(T));
-        }
-    }
-}

+ 1 - 1
Ryujinx.Common/Logging/Logger.cs

@@ -94,7 +94,7 @@ namespace Ryujinx.Common.Logging
 
 
         static Logger()
         static Logger()
         {
         {
-            m_EnabledClasses = new bool[Enum.GetNames(typeof(LogClass)).Length];
+            m_EnabledClasses = new bool[Enum.GetNames<LogClass>().Length];
 
 
             for (int index = 0; index < m_EnabledClasses.Length; index++)
             for (int index = 0; index < m_EnabledClasses.Length; index++)
             {
             {

+ 1 - 1
Ryujinx.Graphics.Gpu/Engine/MME/MacroJitCompiler.cs

@@ -112,7 +112,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.MME
                 _ilGen.Emit(OpCodes.Ret);
                 _ilGen.Emit(OpCodes.Ret);
             }
             }
 
 
-            return (MacroExecute)_meth.CreateDelegate(typeof(MacroExecute));
+            return _meth.CreateDelegate<MacroExecute>();
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 1 - 1
Ryujinx.Graphics.OpenGL/FormatTable.cs

@@ -11,7 +11,7 @@ namespace Ryujinx.Graphics.OpenGL
 
 
         static FormatTable()
         static FormatTable()
         {
         {
-            int tableSize = Enum.GetNames(typeof(Format)).Length;
+            int tableSize = Enum.GetNames<Format>().Length;
 
 
             Table = new FormatInfo[tableSize];
             Table = new FormatInfo[tableSize];
             TableImage = new SizedInternalFormat[tableSize];
             TableImage = new SizedInternalFormat[tableSize];

+ 1 - 1
Ryujinx.Graphics.OpenGL/Queries/Counters.cs

@@ -9,7 +9,7 @@ namespace Ryujinx.Graphics.OpenGL.Queries
 
 
         public Counters()
         public Counters()
         {
         {
-            int count = Enum.GetNames(typeof(CounterType)).Length;
+            int count = Enum.GetNames<CounterType>().Length;
 
 
             _counterQueues = new CounterQueue[count];
             _counterQueues = new CounterQueue[count];
         }
         }

+ 1 - 1
Ryujinx.HLE/FileSystem/Content/ContentManager.cs

@@ -102,7 +102,7 @@ namespace Ryujinx.HLE.FileSystem.Content
                 _contentDictionary = new SortedDictionary<(ulong, NcaContentType), string>();
                 _contentDictionary = new SortedDictionary<(ulong, NcaContentType), string>();
                 _locationEntries   = new Dictionary<StorageId, LinkedList<LocationEntry>>();
                 _locationEntries   = new Dictionary<StorageId, LinkedList<LocationEntry>>();
 
 
-                foreach (StorageId storageId in Enum.GetValues(typeof(StorageId)))
+                foreach (StorageId storageId in Enum.GetValues<StorageId>())
                 {
                 {
                     string contentDirectory    = null;
                     string contentDirectory    = null;
                     string contentPathString   = null;
                     string contentPathString   = null;

+ 1 - 1
Ryujinx.HLE/HOS/Kernel/SupervisorCall/SyscallTable.cs

@@ -433,7 +433,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
 
 
             generator.Emit(OpCodes.Ret);
             generator.Emit(OpCodes.Ret);
 
 
-            return (Action<T, ExecutionContext>)method.CreateDelegate(typeof(Action<T, ExecutionContext>));
+            return method.CreateDelegate<Action<T, ExecutionContext>>();
         }
         }
 
 
         private static void CheckIfTypeIsSupported(Type type, string svcName)
         private static void CheckIfTypeIsSupported(Type type, string svcName)

+ 1 - 1
Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs

@@ -1021,7 +1021,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
 
 
                 HidVibrationDeviceType vibrationDeviceType = HidVibrationDeviceType.None;
                 HidVibrationDeviceType vibrationDeviceType = HidVibrationDeviceType.None;
 
 
-                if (Enum.IsDefined(typeof(NpadStyleIndex), deviceType))
+                if (Enum.IsDefined<NpadStyleIndex>(deviceType))
                 {
                 {
                     vibrationDeviceType = HidVibrationDeviceType.LinearResonantActuator;
                     vibrationDeviceType = HidVibrationDeviceType.LinearResonantActuator;
                 }
                 }

+ 1 - 1
Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs

@@ -60,7 +60,7 @@ namespace Ryujinx.HLE.HOS.SystemState
                 SystemLanguage.TraditionalChinese => TitleLanguage.Taiwanese,
                 SystemLanguage.TraditionalChinese => TitleLanguage.Taiwanese,
                 SystemLanguage.Chinese or
                 SystemLanguage.Chinese or
                 SystemLanguage.SimplifiedChinese  => TitleLanguage.Chinese,
                 SystemLanguage.SimplifiedChinese  => TitleLanguage.Chinese,
-                _                                 => Enum.Parse<TitleLanguage>(Enum.GetName(typeof(SystemLanguage), language)),
+                _                                 => Enum.Parse<TitleLanguage>(Enum.GetName<SystemLanguage>(language)),
             };
             };
         }
         }
 
 

+ 2 - 2
Ryujinx.Input/Motion/CemuHook/Client.cs

@@ -27,8 +27,8 @@ namespace Ryujinx.Input.Motion.CemuHook
         private readonly Dictionary<int, Dictionary<int, MotionInput>> _motionData;
         private readonly Dictionary<int, Dictionary<int, MotionInput>> _motionData;
         private readonly Dictionary<int, UdpClient> _clients;
         private readonly Dictionary<int, UdpClient> _clients;
 
 
-        private readonly bool[] _clientErrorStatus = new bool[Enum.GetValues(typeof(PlayerIndex)).Length];
-        private readonly long[] _clientRetryTimer  = new long[Enum.GetValues(typeof(PlayerIndex)).Length];
+        private readonly bool[] _clientErrorStatus = new bool[Enum.GetValues<PlayerIndex>().Length];
+        private readonly long[] _clientRetryTimer  = new long[Enum.GetValues<PlayerIndex>().Length];
         private NpadManager _npadManager;
         private NpadManager _npadManager;
 
 
         public Client(NpadManager npadManager)
         public Client(NpadManager npadManager)

+ 1 - 1
Ryujinx/Configuration/LoggerModule.cs

@@ -58,7 +58,7 @@ namespace Ryujinx.Configuration
         {
         {
             bool noFilter = e.NewValue.Length == 0;
             bool noFilter = e.NewValue.Length == 0;
 
 
-            foreach (var logClass in EnumExtensions.GetValues<LogClass>())
+            foreach (var logClass in Enum.GetValues<LogClass>())
             {
             {
                 Logger.SetEnable(logClass, noFilter);
                 Logger.SetEnable(logClass, noFilter);
             }
             }

+ 1 - 1
Ryujinx/Input/GTK3/GTK3MappingHelper.cs

@@ -150,7 +150,7 @@ namespace Ryujinx.Input.GTK3
 
 
         static GTK3MappingHelper()
         static GTK3MappingHelper()
         {
         {
-            var inputKeys = Enum.GetValues(typeof(Key));
+            var inputKeys = Enum.GetValues<Key>();
 
 
             // GtkKey is not contiguous and quite large, so use a dictionary instead of an array.
             // GtkKey is not contiguous and quite large, so use a dictionary instead of an array.
             _gtkKeyMapping = new Dictionary<GtkKey, Key>();
             _gtkKeyMapping = new Dictionary<GtkKey, Key>();

+ 1 - 1
Ryujinx/Ui/MainWindow.cs

@@ -1209,7 +1209,7 @@ namespace Ryujinx.Ui
         {
         {
             AspectRatio aspectRatio = ConfigurationState.Instance.Graphics.AspectRatio.Value;
             AspectRatio aspectRatio = ConfigurationState.Instance.Graphics.AspectRatio.Value;
 
 
-            ConfigurationState.Instance.Graphics.AspectRatio.Value = ((int)aspectRatio + 1) > Enum.GetNames(typeof(AspectRatio)).Length - 1 ? AspectRatio.Fixed4x3 : aspectRatio + 1;
+            ConfigurationState.Instance.Graphics.AspectRatio.Value = ((int)aspectRatio + 1) > Enum.GetNames<AspectRatio>().Length - 1 ? AspectRatio.Fixed4x3 : aspectRatio + 1;
         }
         }
 
 
         private void Row_Clicked(object sender, ButtonReleaseEventArgs args)
         private void Row_Clicked(object sender, ButtonReleaseEventArgs args)

+ 1 - 1
Ryujinx/Ui/Windows/SettingsWindow.cs

@@ -181,7 +181,7 @@ namespace Ryujinx.Ui.Windows
                 _fsAccessLogToggle.Click();
                 _fsAccessLogToggle.Click();
             }
             }
 
 
-            foreach (GraphicsDebugLevel level in Enum.GetValues(typeof(GraphicsDebugLevel)))
+            foreach (GraphicsDebugLevel level in Enum.GetValues<GraphicsDebugLevel>())
             {
             {
                 _graphicsDebugLevel.Append(level.ToString(), level.ToString());
                 _graphicsDebugLevel.Append(level.ToString(), level.ToString());
             }
             }