Bläddra i källkod

misc: chore: use new array in LdnGameDataReceivedEventArgs instead of collecting the ldn datas into a list

Evan Husted 1 år sedan
förälder
incheckning
2a84656ffc

+ 2 - 7
src/Ryujinx/UI/Windows/MainWindow.axaml.cs

@@ -189,17 +189,12 @@ namespace Ryujinx.Ava.UI.Windows
         {
             Dispatcher.UIThread.Post(() =>
             {
-                List<LdnGameData> ldnGameDataArray = e.LdnData.ToList();
                 ViewModel.LdnData.Clear();
                 foreach (ApplicationData application in ViewModel.Applications.Where(it => it.HasControlHolder))
                 {
                     ref ApplicationControlProperty controlHolder = ref application.ControlHolder.Value;
-                    
-                    ViewModel.LdnData[application.IdString] = 
-                        LdnGameData.GetArrayForApp(
-                            ldnGameDataArray, 
-                            ref controlHolder
-                        );
+
+                    ViewModel.LdnData[application.IdString] = e.LdnData.Where(ref controlHolder);
                     
                     UpdateApplicationWithLdnData(application);
                 }

+ 7 - 1
src/Ryujinx/Utilities/AppLibrary/LdnGameData.cs

@@ -18,7 +18,7 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
         public IEnumerable<string> Players { get; set; }
 
         public static Array GetArrayForApp(
-            IEnumerable<LdnGameData> receivedData, ref ApplicationControlProperty acp)
+            LdnGameData[] receivedData, ref ApplicationControlProperty acp)
         {
             LibHac.Common.FixedArrays.Array8<ulong> communicationId = acp.LocalCommunicationId;
 
@@ -40,4 +40,10 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
             public int GameCount => _ldnDatas.Length;
         }
     }
+
+    public static class LdnGameDataHelper
+    {
+        public static LdnGameData.Array Where(this LdnGameData[] unfilteredDatas, ref ApplicationControlProperty acp) 
+            => LdnGameData.GetArrayForApp(unfilteredDatas, ref acp);
+    }
 }