From 2365ddfc363e76ac1ac9d2e32ef9b36b85463431 Mon Sep 17 00:00:00 2001
From: mageven <62494521+mageven@users.noreply.github.com>
Date: Fri, 3 Apr 2020 05:40:02 +0530
Subject: HID SharedMem Rework (#1003)

* Delete old HLE.Input

* Add new HLE Input.

git shows Hid.cs as modified because of the same name. It is new.

* Change HID Service

* Change Ryujinx UI to reflect new Input

* Add basic ControllerApplet

* Add DebugPad

Should fix Kirby Star Allies

* Address Ac_K's comments

* Moved all of HLE.Input to Services.Hid
* Separated all structs and enums each to a file
* Removed vars
* Made some naming changes to align with switchbrew
* Added official joycon colors

As an aside, fixed a mistake in touchscreen headers and added checks to
important SharedMem structs at init time.

* Further address Ac_K's comments

* Addressed gdkchan's and some more Ac_K's comments

* Address AcK's review comments

* Address AcK's second review comments

* Replace missed Marshal.SizeOf and address gdkchan's comments
---
 Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs

(limited to 'Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs')

diff --git a/Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs b/Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs
new file mode 100644
index 00000000..f4ccb7ba
--- /dev/null
+++ b/Ryujinx.HLE/Exceptions/InvalidStructLayoutException.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Runtime.CompilerServices;
+
+namespace Ryujinx.HLE.Exceptions
+{
+    public class InvalidStructLayoutException<T> : Exception 
+    {
+        static readonly Type _structType = typeof(T);
+
+        public InvalidStructLayoutException(string message) : base(message) {}
+        
+        public InvalidStructLayoutException(int expectedSize) : 
+            base($"Type {_structType.Name} has the wrong size. Expected: {expectedSize} bytes, Got: {Unsafe.SizeOf<T>()} bytes") {}
+    }
+}
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2