private static void _CheckKeys(TabletOptionButton.ButtonAction action, TabletOptionButton.TabletButton button, bool held) { if (_IsKeypressAction(action)) { _CheckKeys(button, ((int)action >> 16), held); } }
private static bool _IsActionRequested(TabletConnection conn, TabletOptionButton.ButtonAction action) { bool ret = false; if (conn.Settings.AAction == action) { ret |= conn.Tablet.ButtonState.CrossHeld; } if (conn.Settings.BAction == action) { ret |= conn.Tablet.ButtonState.CircleHeld; } if (conn.Settings.XAction == action) { ret |= conn.Tablet.ButtonState.SquareHeld; } if (conn.Settings.YAction == action) { ret |= conn.Tablet.ButtonState.TriangleHeld; } if (conn.Settings.UpAction == action) { ret |= conn.Tablet.DPadState.UpHeld; } if (conn.Settings.DownAction == action) { ret |= conn.Tablet.DPadState.DownHeld; } if (conn.Settings.LeftAction == action) { ret |= conn.Tablet.DPadState.LeftHeld; } if (conn.Settings.RightAction == action) { ret |= conn.Tablet.DPadState.RightHeld; } if (conn.Settings.StartAction == action) { ret |= conn.Tablet.ButtonState.StartHeld; } if (conn.Settings.BackAction == action) { ret |= conn.Tablet.ButtonState.SelectHeld; } if (conn.Settings.GuideAction == action) { ret |= conn.Tablet.ButtonState.PSHeld; } return(ret); }
private static void _SetAction(string iniFileName, string keyName, TabletOptionButton.ButtonAction action) { WritePrivateProfileString(_DEFAULT_SECTION, keyName, action.ToString(), Path.Combine(Directory.GetCurrentDirectory(), iniFileName)); }
private static void _PerformAction(TabletConnection conn, TabletOptionButton.TabletButton button, TabletOptionButton.ButtonAction action, bool held) { switch ((TabletOptionButton.ButtonAction)((int)action & 0xFFFF)) { case TabletOptionButton.ButtonAction.LeftClick: mouse_event(held ? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero); break; case TabletOptionButton.ButtonAction.MiddleClick: mouse_event(held ? MOUSEEVENTF_MIDDLEDOWN : MOUSEEVENTF_MIDDLEUP, 0, 0, 0, UIntPtr.Zero); break; case TabletOptionButton.ButtonAction.RightClick: mouse_event(held ? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_RIGHTUP, 0, 0, 0, UIntPtr.Zero); break; case TabletOptionButton.ButtonAction.ScrollDown: if (held) { mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -120, UIntPtr.Zero); } break; case TabletOptionButton.ButtonAction.ScrollUp: if (held) { mouse_event(MOUSEEVENTF_WHEEL, 0, 0, 120, UIntPtr.Zero); } break; case TabletOptionButton.ButtonAction.ShowOptions: if (held) { _frmOptions.ShowOptions(); } break; case TabletOptionButton.ButtonAction.TurnOffTablet: if (conn.Receiver != null && held) { conn.Receiver.TurnOffDevice(conn.ReceiverIndex); } break; case TabletOptionButton.ButtonAction.SwitchTabletDisplay: if (held) { //Find our current display in the AllScreens list, and then switch to the next one int?index = null; for (int i = 0; i < Screen.AllScreens.Length; i++) { if (conn.CurrentDisplay == Screen.AllScreens[i]) { index = i; break; } } if (!index.HasValue) { conn.CurrentDisplay = Screen.PrimaryScreen; } else { conn.CurrentDisplay = Screen.AllScreens[(index.Value + 1) % Screen.AllScreens.Length]; } } break; case TabletOptionButton.ButtonAction.ExecuteFile: if (held) { try { bool ignore = false; var p = new Process(); p.StartInfo.ErrorDialog = true; switch (button) { case TabletOptionButton.TabletButton.ACross: p.StartInfo.FileName = conn.Settings.AFile; break; case TabletOptionButton.TabletButton.BCircle: p.StartInfo.FileName = conn.Settings.BFile; break; case TabletOptionButton.TabletButton.XSquare: p.StartInfo.FileName = conn.Settings.XFile; break; case TabletOptionButton.TabletButton.YTriangle: p.StartInfo.FileName = conn.Settings.YFile; break; case TabletOptionButton.TabletButton.Up: p.StartInfo.FileName = conn.Settings.UpFile; break; case TabletOptionButton.TabletButton.Down: p.StartInfo.FileName = conn.Settings.DownFile; break; case TabletOptionButton.TabletButton.Left: p.StartInfo.FileName = conn.Settings.LeftFile; break; case TabletOptionButton.TabletButton.Right: p.StartInfo.FileName = conn.Settings.RightFile; break; case TabletOptionButton.TabletButton.Start: p.StartInfo.FileName = conn.Settings.StartFile; break; case TabletOptionButton.TabletButton.BackSelect: p.StartInfo.FileName = conn.Settings.BackFile; break; case TabletOptionButton.TabletButton.PSXboxGuide: p.StartInfo.FileName = conn.Settings.GuideFile; break; case TabletOptionButton.TabletButton.PenClick: p.StartInfo.FileName = conn.Settings.ClickFile; break; default: ignore = true; break; } if (!ignore) { p.Start(); } } catch { //Whatever... } } break; default: break; } }
private static bool _IsKeypressAction(TabletOptionButton.ButtonAction action) { return(((int)action & 0xFFFF) == (int)TabletOptionButton.ButtonAction.KeyboardKeypress); }