diff --git a/BetterJoyForCemu/BetterJoy.csproj b/BetterJoyForCemu/BetterJoy.csproj
index 732acce..292a02b 100644
--- a/BetterJoyForCemu/BetterJoy.csproj
+++ b/BetterJoyForCemu/BetterJoy.csproj
@@ -119,8 +119,8 @@
-
- ..\packages\WindowsInput.6.1.1\lib\net461\WindowsInput.dll
+
+ ..\packages\WindowsInput.6.1.0\lib\net461\WindowsInput.dll
diff --git a/BetterJoyForCemu/Joycon.cs b/BetterJoyForCemu/Joycon.cs
index b3a79ea..68ae0fd 100644
--- a/BetterJoyForCemu/Joycon.cs
+++ b/BetterJoyForCemu/Joycon.cs
@@ -244,10 +244,11 @@ namespace BetterJoyForCemu {
public byte LED = 0x0;
public string serial_number;
+ bool thirdParty = false;
private float[] activeData;
- public Joycon(IntPtr handle_, bool imu, bool localize, float alpha, bool left, string path, string serialNum, int id = 0, bool isPro = false, bool isSnes = false) {
+ public Joycon(IntPtr handle_, bool imu, bool localize, float alpha, bool left, string path, string serialNum, int id = 0, bool isPro = false, bool isSnes = false, bool thirdParty = false) {
serial_number = serialNum;
activeData = new float[6];
handle = handle_;
@@ -264,6 +265,7 @@ namespace BetterJoyForCemu {
this.isPro = isPro || isSnes;
this.isSnes = isSnes;
isUSB = serialNum == "000000000001";
+ thirdParty = thirdParty;
this.path = path;
@@ -1030,7 +1032,7 @@ namespace BetterJoyForCemu {
}
private void dump_calibration_data() {
- if (isSnes)
+ if (isSnes || thirdParty)
return;
HIDapi.hid_set_nonblocking(handle, 0);
byte[] buf_ = ReadSPI(0x80, (isLeft ? (byte)0x12 : (byte)0x1d), 9); // get user calibration data if possible
diff --git a/BetterJoyForCemu/Program.cs b/BetterJoyForCemu/Program.cs
index 5503d40..ef912d2 100644
--- a/BetterJoyForCemu/Program.cs
+++ b/BetterJoyForCemu/Program.cs
@@ -194,7 +194,7 @@ namespace BetterJoyForCemu {
bool isPro = prod_id == product_pro;
bool isSnes = prod_id == product_snes;
- j.Add(new Joycon(handle, EnableIMU, EnableLocalize & EnableIMU, 0.05f, isLeft, enumerate.path, enumerate.serial_number, j.Count, isPro, isSnes));
+ j.Add(new Joycon(handle, EnableIMU, EnableLocalize & EnableIMU, 0.05f, isLeft, enumerate.path, enumerate.serial_number, j.Count, isPro, isSnes, thirdParty != null));
foundNew = true;
j.Last().form = form;
@@ -362,8 +362,8 @@ namespace BetterJoyForCemu {
public static List thirdPartyCons = new List();
- private static WindowsInput.Events.Sources.IKeyboardEventSource keyboard;
- private static WindowsInput.Events.Sources.IMouseEventSource mouse;
+ private static WindowsInput.EventSources.IKeyboardEventSource keyboard;
+ private static WindowsInput.EventSources.IMouseEventSource mouse;
public static void Start() {
pid = Process.GetCurrentProcess().Id.ToString(); // get current process id for HidCerberus.Srv
@@ -446,7 +446,7 @@ namespace BetterJoyForCemu {
form.console.AppendText("All systems go\r\n");
}
- private static void Mouse_MouseEvent(object sender, WindowsInput.Events.Sources.EventSourceEventArgs e) {
+ private static void Mouse_MouseEvent(object sender, WindowsInput.EventSources.EventSourceEventArgs e) {
if (e.Data.ButtonDown != null) {
string res_val = Config.Value("reset_mouse");
if (res_val.StartsWith("mse_"))
@@ -469,7 +469,7 @@ namespace BetterJoyForCemu {
}
}
- private static void Keyboard_KeyEvent(object sender, WindowsInput.Events.Sources.EventSourceEventArgs e) {
+ private static void Keyboard_KeyEvent(object sender, WindowsInput.EventSources.EventSourceEventArgs e) {
if (e.Data.KeyDown != null) {
string res_val = Config.Value("reset_mouse");
if (res_val.StartsWith("key_"))
diff --git a/BetterJoyForCemu/Reassign.cs b/BetterJoyForCemu/Reassign.cs
index df60f53..ad83ac7 100644
--- a/BetterJoyForCemu/Reassign.cs
+++ b/BetterJoyForCemu/Reassign.cs
@@ -10,123 +10,123 @@ using System.Threading.Tasks;
using System.Windows.Forms;
namespace BetterJoyForCemu {
- public partial class Reassign : Form {
- private WindowsInput.Events.Sources.IKeyboardEventSource keyboard;
- private WindowsInput.Events.Sources.IMouseEventSource mouse;
+ public partial class Reassign : Form {
+ private WindowsInput.EventSources.IKeyboardEventSource keyboard;
+ private WindowsInput.EventSources.IMouseEventSource mouse;
- ContextMenuStrip menu_joy_buttons = new ContextMenuStrip();
+ ContextMenuStrip menu_joy_buttons = new ContextMenuStrip();
- private Control curAssignment;
+ private Control curAssignment;
- public Reassign() {
- InitializeComponent();
+ public Reassign() {
+ InitializeComponent();
- foreach (int i in Enum.GetValues(typeof(Joycon.Button))) {
- ToolStripMenuItem temp = new ToolStripMenuItem(Enum.GetName(typeof(Joycon.Button), i));
- temp.Tag = i;
- menu_joy_buttons.Items.Add(temp);
- }
+ foreach (int i in Enum.GetValues(typeof(Joycon.Button))) {
+ ToolStripMenuItem temp = new ToolStripMenuItem(Enum.GetName(typeof(Joycon.Button), i));
+ temp.Tag = i;
+ menu_joy_buttons.Items.Add(temp);
+ }
- menu_joy_buttons.ItemClicked += Menu_joy_buttons_ItemClicked;
+ menu_joy_buttons.ItemClicked += Menu_joy_buttons_ItemClicked;
- foreach (SplitButton c in new SplitButton[] { btn_capture, btn_home, btn_sl_l, btn_sl_r, btn_sr_l, btn_sr_r, btn_reset_mouse, btn_active_gyro }) {
- c.Tag = c.Name.Substring(4);
- GetPrettyName(c);
+ foreach (SplitButton c in new SplitButton[] { btn_capture, btn_home, btn_sl_l, btn_sl_r, btn_sr_l, btn_sr_r, btn_reset_mouse, btn_active_gyro }) {
+ c.Tag = c.Name.Substring(4);
+ GetPrettyName(c);
- tip_reassign.SetToolTip(c, "Left-click to detect input.\r\nMiddle-click to clear to default.\r\nRight-click to see more options.");
- c.MouseDown += Remap;
- c.Menu = menu_joy_buttons;
- c.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
- }
- }
+ tip_reassign.SetToolTip(c, "Left-click to detect input.\r\nMiddle-click to clear to default.\r\nRight-click to see more options.");
+ c.MouseDown += Remap;
+ c.Menu = menu_joy_buttons;
+ c.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ }
+ }
- private void Menu_joy_buttons_ItemClicked(object sender, ToolStripItemClickedEventArgs e) {
- Control c = sender as Control;
+ private void Menu_joy_buttons_ItemClicked(object sender, ToolStripItemClickedEventArgs e) {
+ Control c = sender as Control;
- ToolStripItem clickedItem = e.ClickedItem;
+ ToolStripItem clickedItem = e.ClickedItem;
- SplitButton caller = (SplitButton)c.Tag;
- Config.SetValue((string)caller.Tag, "joy_" + (clickedItem.Tag));
- GetPrettyName(caller);
- }
+ SplitButton caller = (SplitButton)c.Tag;
+ Config.SetValue((string)caller.Tag, "joy_" + (clickedItem.Tag));
+ GetPrettyName(caller);
+ }
- private void Remap(object sender, MouseEventArgs e) {
- SplitButton c = sender as SplitButton;
- switch (e.Button) {
- case MouseButtons.Left:
- c.Text = "...";
- curAssignment = c;
- break;
- case MouseButtons.Middle:
- Config.SetValue((string)c.Tag, Config.GetDefaultValue((string)c.Tag));
- GetPrettyName(c);
- break;
- case MouseButtons.Right:
- break;
- }
- }
+ private void Remap(object sender, MouseEventArgs e) {
+ SplitButton c = sender as SplitButton;
+ switch (e.Button) {
+ case MouseButtons.Left:
+ c.Text = "...";
+ curAssignment = c;
+ break;
+ case MouseButtons.Middle:
+ Config.SetValue((string)c.Tag, Config.GetDefaultValue((string)c.Tag));
+ GetPrettyName(c);
+ break;
+ case MouseButtons.Right:
+ break;
+ }
+ }
- private void Reassign_Load(object sender, EventArgs e) {
- keyboard = WindowsInput.Capture.Global.KeyboardAsync();
- keyboard.KeyEvent += Keyboard_KeyEvent;
- mouse = WindowsInput.Capture.Global.MouseAsync();
- mouse.MouseEvent += Mouse_MouseEvent;
- }
+ private void Reassign_Load(object sender, EventArgs e) {
+ keyboard = WindowsInput.Capture.Global.KeyboardAsync();
+ keyboard.KeyEvent += Keyboard_KeyEvent;
+ mouse = WindowsInput.Capture.Global.MouseAsync();
+ mouse.MouseEvent += Mouse_MouseEvent;
+ }
- private void Mouse_MouseEvent(object sender, WindowsInput.Events.Sources.EventSourceEventArgs e) {
- if (curAssignment != null && e.Data.ButtonDown != null) {
- Config.SetValue((string)curAssignment.Tag, "mse_" + ((int)e.Data.ButtonDown.Button));
- AsyncPrettyName(curAssignment);
- curAssignment = null;
- e.Next_Hook_Enabled = false;
- }
- }
+ private void Mouse_MouseEvent(object sender, WindowsInput.EventSources.EventSourceEventArgs e) {
+ if (curAssignment != null && e.Data.ButtonDown != null) {
+ Config.SetValue((string)curAssignment.Tag, "mse_" + ((int)e.Data.ButtonDown.Button));
+ AsyncPrettyName(curAssignment);
+ curAssignment = null;
+ e.Next_Hook_Enabled = false;
+ }
+ }
- private void Keyboard_KeyEvent(object sender, WindowsInput.Events.Sources.EventSourceEventArgs e) {
- if (curAssignment != null && e.Data.KeyDown != null) {
- Config.SetValue((string)curAssignment.Tag, "key_" + ((int)e.Data.KeyDown.Key));
- AsyncPrettyName(curAssignment);
- curAssignment = null;
- e.Next_Hook_Enabled = false;
- }
- }
+ private void Keyboard_KeyEvent(object sender, WindowsInput.EventSources.EventSourceEventArgs e) {
+ if (curAssignment != null && e.Data.KeyDown != null) {
+ Config.SetValue((string)curAssignment.Tag, "key_" + ((int)e.Data.KeyDown.Key));
+ AsyncPrettyName(curAssignment);
+ curAssignment = null;
+ e.Next_Hook_Enabled = false;
+ }
+ }
- private void Reassign_FormClosing(object sender, FormClosingEventArgs e) {
- keyboard.Dispose();
- mouse.Dispose();
- }
+ private void Reassign_FormClosing(object sender, FormClosingEventArgs e) {
+ keyboard.Dispose();
+ mouse.Dispose();
+ }
- private void AsyncPrettyName(Control c) {
- if (InvokeRequired) {
- this.Invoke(new Action(AsyncPrettyName), new object[] { c });
- return;
- }
- GetPrettyName(c);
- }
+ private void AsyncPrettyName(Control c) {
+ if (InvokeRequired) {
+ this.Invoke(new Action(AsyncPrettyName), new object[] { c });
+ return;
+ }
+ GetPrettyName(c);
+ }
- private void GetPrettyName(Control c) {
- string val;
- switch (val = Config.Value((string)c.Tag)) {
- case "0":
- if (c == btn_home)
- c.Text = "Guide";
- else
- c.Text = "";
- break;
- default:
- Type t = val.StartsWith("joy_") ? typeof(Joycon.Button) : (val.StartsWith("key_") ? typeof(WindowsInput.Events.KeyCode) : typeof(WindowsInput.Events.ButtonCode));
- c.Text = Enum.GetName(t, Int32.Parse(val.Substring(4)));
- break;
- }
- }
+ private void GetPrettyName(Control c) {
+ string val;
+ switch (val = Config.Value((string)c.Tag)) {
+ case "0":
+ if (c == btn_home)
+ c.Text = "Guide";
+ else
+ c.Text = "";
+ break;
+ default:
+ Type t = val.StartsWith("joy_") ? typeof(Joycon.Button) : (val.StartsWith("key_") ? typeof(WindowsInput.Events.KeyCode) : typeof(WindowsInput.Events.ButtonCode));
+ c.Text = Enum.GetName(t, Int32.Parse(val.Substring(4)));
+ break;
+ }
+ }
- private void btn_apply_Click(object sender, EventArgs e) {
- Config.Save();
- }
+ private void btn_apply_Click(object sender, EventArgs e) {
+ Config.Save();
+ }
- private void btn_close_Click(object sender, EventArgs e) {
- btn_apply_Click(sender, e);
- Close();
- }
- }
+ private void btn_close_Click(object sender, EventArgs e) {
+ btn_apply_Click(sender, e);
+ Close();
+ }
+ }
}
diff --git a/BetterJoyForCemu/packages.config b/BetterJoyForCemu/packages.config
index 2d15399..c46fb29 100644
--- a/BetterJoyForCemu/packages.config
+++ b/BetterJoyForCemu/packages.config
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file