diff --git a/DS4Windows/DS4Control/Mapping.cs b/DS4Windows/DS4Control/Mapping.cs index 05807826a3..8b68f2772b 100644 --- a/DS4Windows/DS4Control/Mapping.cs +++ b/DS4Windows/DS4Control/Mapping.cs @@ -1279,7 +1279,7 @@ public static async void MapCustomAction(int device, DS4State cState, DS4State M DateTime now = DateTime.UtcNow; if (!subtriggeractivated && now <= oldnowKeyAct[device] + TimeSpan.FromMilliseconds(250)) { - await Task.Delay(3); //if the button is assigned to the same key use a delay so the keydown is the last action, not key up + await Task.Delay(3); //if the button is assigned to the same key use a delay so the key down is the last action, not key up triggeractivated = true; oldnowKeyAct[device] = DateTime.MinValue; } @@ -1459,6 +1459,10 @@ public static async void MapCustomAction(int device, DS4State cState, DS4State M { if (Global.getCustomButton(device, action.trigger[0]) != X360Controls.Unbound) Global.getCustomButtons(device)[action.trigger[0]] = X360Controls.Unbound; + if (Global.getCustomMacro(device, action.trigger[0]) != "0") + Global.getCustomMacros(device).Remove(action.trigger[0]); + if (Global.getCustomKey(device, action.trigger[0]) != 0) + Global.getCustomMacros(device).Remove(action.trigger[0]); string[] dets = action.details.Split(','); DS4Device d = ctrl.DS4Controllers[device]; //Global.cus @@ -1493,7 +1497,7 @@ public static async void MapCustomAction(int device, DS4State cState, DS4State M } int type = 0; - string macro = "91/71/71/91"; + string macro = ""; if (tappedOnce) //single tap { if (int.TryParse(dets[0], out type)) @@ -1625,7 +1629,7 @@ private static async void PlayMacro(int device, bool[] macrocontrol, string macr keys = new int[0]; } for (int i = 0; i < keys.Length; i++) - keys[i] = ushort.Parse(skeys[i]); + keys[i] = int.Parse(skeys[i]); bool[] keydown = new bool[286]; if (control == DS4Controls.None || !macrodone[DS4ControltoInt(control)]) { @@ -1633,7 +1637,33 @@ private static async void PlayMacro(int device, bool[] macrocontrol, string macr macrodone[DS4ControltoInt(control)] = true; foreach (int i in keys) { - if (i >= 300) //ints over 300 used to delay + if (i >= 1000000000) + { + string lb = i.ToString().Substring(1); + if (i > 1000000000) + { + byte r = (byte)(int.Parse(lb[0].ToString()) * 100 + int.Parse(lb[1].ToString()) * 10 + int.Parse(lb[2].ToString())); + byte g = (byte)(int.Parse(lb[3].ToString()) * 100 + int.Parse(lb[4].ToString()) * 10 + int.Parse(lb[5].ToString())); + byte b = (byte)(int.Parse(lb[6].ToString()) * 100 + int.Parse(lb[7].ToString()) * 10 + int.Parse(lb[8].ToString())); + DS4LightBar.forcelight[device] = true; + DS4LightBar.forcedFlash[device] = 0; + DS4LightBar.forcedColor[device] = new DS4Color(r, g, b); + } + else + { + DS4LightBar.forcedFlash[device] = 0; + DS4LightBar.forcelight[device] = false; + } + } + else if (i >= 1000000) + { + DS4Device d = Program.rootHub.DS4Controllers[device]; + string r = i.ToString().Substring(1); + byte heavy = (byte)(int.Parse(r[0].ToString()) * 100 + int.Parse(r[1].ToString()) * 10 + int.Parse(r[2].ToString())); + byte light = (byte)(int.Parse(r[3].ToString()) * 100 + int.Parse(r[4].ToString()) * 10 + int.Parse(r[5].ToString())); + d.setRumble(light, heavy); + } + else if (i >= 300) //ints over 300 used to delay await Task.Delay(i - 300); else if (!keydown[i]) { @@ -1750,6 +1780,9 @@ private static async void PlayMacro(int device, bool[] macrocontrol, string macr else InputMethods.performKeyRelease(i); } + DS4LightBar.forcedFlash[device] = 0; + DS4LightBar.forcelight[device] = false; + Program.rootHub.DS4Controllers[device].setRumble(0, 0); if (keyType.HasFlag(DS4KeyType.HoldMacro)) { await Task.Delay(50); diff --git a/DS4Windows/DS4Windows.csproj b/DS4Windows/DS4Windows.csproj index 25d1e5d1cf..90fcaf8895 100644 --- a/DS4Windows/DS4Windows.csproj +++ b/DS4Windows/DS4Windows.csproj @@ -461,6 +461,7 @@ ResXFileCodeGenerator Designer + Resources.Designer.cs @@ -470,7 +471,11 @@ SettingsSingleFileGenerator Settings.Designer.cs - + + True + True + Resources.resx + True Settings.settings @@ -513,6 +518,7 @@ + @@ -529,6 +535,7 @@ + diff --git a/DS4Windows/DS4Windows/DS4Form.Designer.cs b/DS4Windows/DS4Windows/DS4Form.Designer.cs index 763398d236..25fb8156d0 100644 --- a/DS4Windows/DS4Windows/DS4Form.Designer.cs +++ b/DS4Windows/DS4Windows/DS4Form.Designer.cs @@ -54,6 +54,7 @@ private void InitializeComponent() this.openProfiles = new System.Windows.Forms.OpenFileDialog(); this.tabMain = new System.Windows.Forms.TabControl(); this.tabControllers = new System.Windows.Forms.TabPage(); + this.btnConnectDS4Win10 = new System.Windows.Forms.Button(); this.tLPControllers = new System.Windows.Forms.TableLayoutPanel(); this.pBStatus1 = new System.Windows.Forms.PictureBox(); this.lbPad1 = new System.Windows.Forms.Label(); @@ -114,6 +115,9 @@ private void InitializeComponent() this.cBSwipeProfiles = new System.Windows.Forms.CheckBox(); this.StartWindowsCheckBox = new System.Windows.Forms.CheckBox(); this.startMinimizedCheckBox = new System.Windows.Forms.CheckBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lbNotifications = new System.Windows.Forms.Label(); + this.cBoxNotifications = new System.Windows.Forms.ComboBox(); this.cBDisconnectBT = new System.Windows.Forms.CheckBox(); this.panel2 = new System.Windows.Forms.Panel(); this.nUDLatency = new System.Windows.Forms.NumericUpDown(); @@ -121,11 +125,8 @@ private void InitializeComponent() this.cBFlashWhenLate = new System.Windows.Forms.CheckBox(); this.cBCloseMini = new System.Windows.Forms.CheckBox(); this.cBQuickCharge = new System.Windows.Forms.CheckBox(); - this.cBUpdate = new System.Windows.Forms.CheckBox(); this.cBDownloadLangauge = new System.Windows.Forms.CheckBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lbNotifications = new System.Windows.Forms.Label(); - this.cBoxNotifications = new System.Windows.Forms.ComboBox(); + this.cBUpdate = new System.Windows.Forms.CheckBox(); this.pNUpdate = new System.Windows.Forms.Panel(); this.cBUpdateTime = new System.Windows.Forms.ComboBox(); this.lbCheckEvery = new System.Windows.Forms.Label(); @@ -159,9 +160,9 @@ private void InitializeComponent() this.toolStrip1.SuspendLayout(); this.tabSettings.SuspendLayout(); this.fLPSettings.SuspendLayout(); + this.panel1.SuspendLayout(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nUDLatency)).BeginInit(); - this.panel1.SuspendLayout(); this.pNUpdate.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nUDUpdateTime)).BeginInit(); this.pnlXIPorts.SuspendLayout(); @@ -339,12 +340,20 @@ private void InitializeComponent() // // tabControllers // + this.tabControllers.Controls.Add(this.btnConnectDS4Win10); this.tabControllers.Controls.Add(this.tLPControllers); this.tabControllers.Controls.Add(this.lbNoControllers); resources.ApplyResources(this.tabControllers, "tabControllers"); this.tabControllers.Name = "tabControllers"; this.tabControllers.UseVisualStyleBackColor = true; // + // btnConnectDS4Win10 + // + resources.ApplyResources(this.btnConnectDS4Win10, "btnConnectDS4Win10"); + this.btnConnectDS4Win10.Name = "btnConnectDS4Win10"; + this.btnConnectDS4Win10.UseVisualStyleBackColor = true; + this.btnConnectDS4Win10.Click += new System.EventHandler(this.btnConnectDS4Win10_Click); + // // tLPControllers // resources.ApplyResources(this.tLPControllers, "tLPControllers"); @@ -824,6 +833,30 @@ private void InitializeComponent() this.startMinimizedCheckBox.UseVisualStyleBackColor = true; this.startMinimizedCheckBox.CheckedChanged += new System.EventHandler(this.startMinimizedCheckBox_CheckedChanged); // + // panel1 + // + this.panel1.Controls.Add(this.lbNotifications); + this.panel1.Controls.Add(this.cBoxNotifications); + resources.ApplyResources(this.panel1, "panel1"); + this.panel1.Name = "panel1"; + // + // lbNotifications + // + resources.ApplyResources(this.lbNotifications, "lbNotifications"); + this.lbNotifications.Name = "lbNotifications"; + // + // cBoxNotifications + // + resources.ApplyResources(this.cBoxNotifications, "cBoxNotifications"); + this.cBoxNotifications.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cBoxNotifications.FormattingEnabled = true; + this.cBoxNotifications.Items.AddRange(new object[] { + resources.GetString("cBoxNotifications.Items"), + resources.GetString("cBoxNotifications.Items1"), + resources.GetString("cBoxNotifications.Items2")}); + this.cBoxNotifications.Name = "cBoxNotifications"; + this.cBoxNotifications.SelectedIndexChanged += new System.EventHandler(this.cBoxNotifications_SelectedIndexChanged); + // // cBDisconnectBT // resources.ApplyResources(this.cBDisconnectBT, "cBDisconnectBT"); @@ -883,13 +916,6 @@ private void InitializeComponent() this.cBQuickCharge.UseVisualStyleBackColor = true; this.cBQuickCharge.CheckedChanged += new System.EventHandler(this.cBQuickCharge_CheckedChanged); // - // cBUpdate - // - resources.ApplyResources(this.cBUpdate, "cBUpdate"); - this.cBUpdate.Name = "cBUpdate"; - this.cBUpdate.UseVisualStyleBackColor = true; - this.cBUpdate.CheckedChanged += new System.EventHandler(this.cBUpdate_CheckedChanged); - // // cBDownloadLangauge // resources.ApplyResources(this.cBDownloadLangauge, "cBDownloadLangauge"); @@ -899,29 +925,12 @@ private void InitializeComponent() this.cBDownloadLangauge.UseVisualStyleBackColor = true; this.cBDownloadLangauge.CheckedChanged += new System.EventHandler(this.cBDownloadLangauge_CheckedChanged); // - // panel1 - // - this.panel1.Controls.Add(this.lbNotifications); - this.panel1.Controls.Add(this.cBoxNotifications); - resources.ApplyResources(this.panel1, "panel1"); - this.panel1.Name = "panel1"; - // - // lbNotifications - // - resources.ApplyResources(this.lbNotifications, "lbNotifications"); - this.lbNotifications.Name = "lbNotifications"; - // - // cBoxNotifications + // cBUpdate // - resources.ApplyResources(this.cBoxNotifications, "cBoxNotifications"); - this.cBoxNotifications.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cBoxNotifications.FormattingEnabled = true; - this.cBoxNotifications.Items.AddRange(new object[] { - resources.GetString("cBoxNotifications.Items"), - resources.GetString("cBoxNotifications.Items1"), - resources.GetString("cBoxNotifications.Items2")}); - this.cBoxNotifications.Name = "cBoxNotifications"; - this.cBoxNotifications.SelectedIndexChanged += new System.EventHandler(this.cBoxNotifications_SelectedIndexChanged); + resources.ApplyResources(this.cBUpdate, "cBUpdate"); + this.cBUpdate.Name = "cBUpdate"; + this.cBUpdate.UseVisualStyleBackColor = true; + this.cBUpdate.CheckedChanged += new System.EventHandler(this.cBUpdate_CheckedChanged); // // pNUpdate // @@ -1099,11 +1108,11 @@ private void InitializeComponent() this.tabSettings.ResumeLayout(false); this.fLPSettings.ResumeLayout(false); this.fLPSettings.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.nUDLatency)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); this.pNUpdate.ResumeLayout(false); this.pNUpdate.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.nUDUpdateTime)).EndInit(); @@ -1233,6 +1242,7 @@ private void InitializeComponent() private System.Windows.Forms.Panel panel2; private System.Windows.Forms.NumericUpDown nUDLatency; private System.Windows.Forms.Label lbMsLatency; + private System.Windows.Forms.Button btnConnectDS4Win10; //private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; } } diff --git a/DS4Windows/DS4Windows/DS4Form.cs b/DS4Windows/DS4Windows/DS4Form.cs index d88bb2f59b..ce956e9449 100644 --- a/DS4Windows/DS4Windows/DS4Form.cs +++ b/DS4Windows/DS4Windows/DS4Form.cs @@ -48,6 +48,7 @@ public partial class DS4Form : Form bool contextclose; string logFile = appdatapath + @"\DS4Service.log"; StreamWriter logWriter; + bool runningBat; //bool outputlog = false; [DllImport("user32.dll")] @@ -186,12 +187,16 @@ public DS4Form(string[] args) //MessageBox.Show(Environment.OSVersion.VersionString); foreach (ToolStripMenuItem t in shortcuts) t.DropDownItemClicked += Profile_Changed_Menu; - hideDS4CheckBox.CheckedChanged -= hideDS4CheckBox_CheckedChanged; - hideDS4CheckBox.Checked = UseExclusiveMode; - hideDS4CheckBox.CheckedChanged += hideDS4CheckBox_CheckedChanged; + hideDS4CheckBox.CheckedChanged -= hideDS4CheckBox_CheckedChanged; + hideDS4CheckBox.Checked = UseExclusiveMode; + hideDS4CheckBox.CheckedChanged += hideDS4CheckBox_CheckedChanged; if (Environment.OSVersion.Version.Major >= 10) - toolTip1.SetToolTip(hideDS4CheckBox, "Currently does not work on Windows 10"); - cBDisconnectBT.Checked = DCBTatStop; + { + toolTip1.SetToolTip(hideDS4CheckBox, "For Windows 10, use button on the main tab to connect exclusivly"); + btnConnectDS4Win10.Visible = hideDS4CheckBox.Checked; + toolTip1.SetToolTip(btnConnectDS4Win10, "This will temporarily kill the taskbar until you connect a controller"); + } + cBDisconnectBT.Checked = DCBTatStop; cBQuickCharge.Checked = QuickCharge; nUDXIPorts.Value = FirstXinputPort; Program.rootHub.x360Bus.FirstController = FirstXinputPort; @@ -320,6 +325,23 @@ public DS4Form(string[] args) appShortcutToStartup(); } } + UpdateTheUpdater(); + } + + private async void UpdateTheUpdater() + { + if (File.Exists(exepath + "\\Update Files\\DS4Updater.exe")) + { + Process[] processes = Process.GetProcessesByName("DS4Updater"); + while (processes.Length > 0) + { + await Task.Delay(500); + } + File.Delete(exepath + "\\DS4Updater.exe"); + File.Move(exepath + "\\Update Files\\DS4Updater.exe", exepath + "\\DS4Updater.exe"); + Directory.Delete(exepath + "\\Update Files"); + } + } void NewVersion() @@ -475,6 +497,13 @@ void Hotkeys(object sender, EventArgs e) LoadProfile(j, false, Program.rootHub); } } + if (bat != null && bat.HasExited && runningBat) + { + Process.Start("explorer.exe"); + bat = null; + runningBat = false; + } + GC.Collect(); } @@ -791,6 +820,11 @@ protected void ControllerStatusChanged() Batteries[Index].Text = Program.rootHub.getDS4Battery(Index); if (Pads[Index].Text != String.Empty) { + if (runningBat) + { + SendKeys.Send("A"); + runningBat = false; + } Pads[Index].Enabled = true; nocontrollers = false; if (Pads[Index].Text != Properties.Resources.Connecting) @@ -1062,6 +1096,8 @@ private void hideDS4CheckBox_CheckedChanged(object sender, EventArgs e) module.Dispose(); UseExclusiveMode = hideDS4CheckBox.Checked; + if (Environment.OSVersion.Version.Major >= 10) + btnConnectDS4Win10.Visible = hideDS4CheckBox.Checked; btnStartStop_Clicked(false); btnStartStop_Clicked(false); Save(); @@ -1615,6 +1651,22 @@ private void Pads_MouseLeave(object sender, EventArgs e) { toolTip1.Hide((Label)sender); } + Process bat; + private void btnConnectDS4Win10_Click(object sender, EventArgs e) + { + if (!runningBat) + { + StreamWriter w = new StreamWriter(exepath + "\\ConnectDS4.bat"); + w.WriteLine("@echo off"); // Turn off echo + w.WriteLine("taskkill /IM explorer.exe /f"); + w.WriteLine("echo Connect your DS4 controller"); // + w.WriteLine("pause"); + w.WriteLine("start explorer.exe"); + w.Close(); + runningBat = true; + bat = Process.Start(exepath + "\\ConnectDS4.bat"); + } + } private void cBDownloadLangauge_CheckedChanged(object sender, EventArgs e) { diff --git a/DS4Windows/DS4Windows/DS4Form.resx b/DS4Windows/DS4Windows/DS4Form.resx index 2857bf8acf..0998a01810 100644 --- a/DS4Windows/DS4Windows/DS4Form.resx +++ b/DS4Windows/DS4Windows/DS4Form.resx @@ -6583,6 +6583,33 @@ XML Files (*.xml)|*.xml + + Top + + + 0, 130 + + + 896, 23 + + + 48 + + + Connect DS4 exclusivly (experimental) + + + btnConnectDS4Win10 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControllers + + + 0 + 5 @@ -7573,7 +7600,7 @@ tabControllers - 0 + 1 <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="pBStatus1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lbPad1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbPad2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="bnEditC3" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="bnEditC4" Row="4" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lbPad3" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbPad4" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="cBController1" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="bnEditC2" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cBController2" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="cBController3" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="bnEditC1" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cBController4" Row="4" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lbSelectedProfile" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lbID" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lbStatus" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lbBattery" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbBatt1" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbBatt2" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbBatt3" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lbBatt4" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="pBStatus2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="pBStatus3" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="pBStatus4" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,46.27451,Percent,28.23529,Percent,25.4902,AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0,Percent,25,Percent,25,Percent,25,Percent,25,Absolute,20" /></TableLayoutSettings> @@ -7609,7 +7636,7 @@ tabControllers - 1 + 2 4, 22 diff --git a/DS4Windows/DS4Windows/RecordBox.Designer.cs b/DS4Windows/DS4Windows/RecordBox.Designer.cs index 41b1b04dfa..da88768c41 100644 --- a/DS4Windows/DS4Windows/RecordBox.Designer.cs +++ b/DS4Windows/DS4Windows/RecordBox.Designer.cs @@ -41,6 +41,8 @@ private void InitializeComponent() this.btnSaveP = new System.Windows.Forms.Button(); this.lbRecordTip = new System.Windows.Forms.Label(); this.pnlMouseButtons = new System.Windows.Forms.Panel(); + this.btnLightbar = new System.Windows.Forms.Button(); + this.btnRumble = new System.Windows.Forms.Button(); this.btn5th = new System.Windows.Forms.Button(); this.btn4th = new System.Windows.Forms.Button(); this.btnLoadP = new System.Windows.Forms.Button(); @@ -51,8 +53,12 @@ private void InitializeComponent() this.cMSLoadPresets = new System.Windows.Forms.ContextMenuStrip(this.components); this.altTabToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fromFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pBLtouch = new System.Windows.Forms.PictureBox(); + this.pBRtouch = new System.Windows.Forms.PictureBox(); this.pnlMouseButtons.SuspendLayout(); this.cMSLoadPresets.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pBLtouch)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pBRtouch)).BeginInit(); this.SuspendLayout(); // // btnRecord @@ -148,12 +154,34 @@ private void InitializeComponent() // pnlMouseButtons // resources.ApplyResources(this.pnlMouseButtons, "pnlMouseButtons"); + this.pnlMouseButtons.Controls.Add(this.pBRtouch); + this.pnlMouseButtons.Controls.Add(this.pBLtouch); + this.pnlMouseButtons.Controls.Add(this.btnLightbar); + this.pnlMouseButtons.Controls.Add(this.btnRumble); this.pnlMouseButtons.Controls.Add(this.btn5th); this.pnlMouseButtons.Controls.Add(this.btn4th); this.pnlMouseButtons.Name = "pnlMouseButtons"; this.pnlMouseButtons.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown); this.pnlMouseButtons.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp); // + // btnLightbar + // + resources.ApplyResources(this.btnLightbar, "btnLightbar"); + this.btnLightbar.Name = "btnLightbar"; + this.btnLightbar.UseVisualStyleBackColor = true; + this.btnLightbar.Click += new System.EventHandler(this.btnLightbar_Click); + this.btnLightbar.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown); + this.btnLightbar.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp); + // + // btnRumble + // + resources.ApplyResources(this.btnRumble, "btnRumble"); + this.btnRumble.Name = "btnRumble"; + this.btnRumble.UseVisualStyleBackColor = true; + this.btnRumble.Click += new System.EventHandler(this.btnRumble_Click); + this.btnRumble.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown); + this.btnRumble.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp); + // // btn5th // resources.ApplyResources(this.btn5th, "btn5th"); @@ -200,25 +228,39 @@ private void InitializeComponent() // // cMSLoadPresets // - resources.ApplyResources(this.cMSLoadPresets, "cMSLoadPresets"); this.cMSLoadPresets.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.altTabToolStripMenuItem, this.fromFileToolStripMenuItem}); this.cMSLoadPresets.Name = "cMSLoadPresets"; this.cMSLoadPresets.ShowImageMargin = false; + resources.ApplyResources(this.cMSLoadPresets, "cMSLoadPresets"); // // altTabToolStripMenuItem // - resources.ApplyResources(this.altTabToolStripMenuItem, "altTabToolStripMenuItem"); this.altTabToolStripMenuItem.Name = "altTabToolStripMenuItem"; + resources.ApplyResources(this.altTabToolStripMenuItem, "altTabToolStripMenuItem"); this.altTabToolStripMenuItem.Click += new System.EventHandler(this.altTabToolStripMenuItem_Click); // // fromFileToolStripMenuItem // - resources.ApplyResources(this.fromFileToolStripMenuItem, "fromFileToolStripMenuItem"); this.fromFileToolStripMenuItem.Name = "fromFileToolStripMenuItem"; + resources.ApplyResources(this.fromFileToolStripMenuItem, "fromFileToolStripMenuItem"); this.fromFileToolStripMenuItem.Click += new System.EventHandler(this.fromFileToolStripMenuItem_Click); // + // pBLtouch + // + this.pBLtouch.Image = global::DS4Windows.Properties.Resources.left_touch; + resources.ApplyResources(this.pBLtouch, "pBLtouch"); + this.pBLtouch.Name = "pBLtouch"; + this.pBLtouch.TabStop = false; + // + // pBRtouch + // + this.pBRtouch.Image = global::DS4Windows.Properties.Resources.right_touch; + resources.ApplyResources(this.pBRtouch, "pBRtouch"); + this.pBRtouch.Name = "pBRtouch"; + this.pBRtouch.TabStop = false; + // // RecordBox // resources.ApplyResources(this, "$this"); @@ -249,6 +291,8 @@ private void InitializeComponent() this.Resize += new System.EventHandler(this.RecordBox_Resize); this.pnlMouseButtons.ResumeLayout(false); this.cMSLoadPresets.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pBLtouch)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pBRtouch)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -277,5 +321,9 @@ private void InitializeComponent() private System.Windows.Forms.ContextMenuStrip cMSLoadPresets; private System.Windows.Forms.ToolStripMenuItem altTabToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem fromFileToolStripMenuItem; + private System.Windows.Forms.Button btnLightbar; + private System.Windows.Forms.Button btnRumble; + private System.Windows.Forms.PictureBox pBRtouch; + private System.Windows.Forms.PictureBox pBLtouch; } } \ No newline at end of file diff --git a/DS4Windows/DS4Windows/RecordBox.cs b/DS4Windows/DS4Windows/RecordBox.cs index 30516d242f..c634cc2496 100644 --- a/DS4Windows/DS4Windows/RecordBox.cs +++ b/DS4Windows/DS4Windows/RecordBox.cs @@ -27,6 +27,7 @@ public partial class RecordBox : Form DS4State cState; public bool saved = false; List dcs = new List(); + TextBox tb1, tb2; public RecordBox(KBM360 op) { kbm = op; @@ -106,12 +107,32 @@ void AddMacroValue(int value) else macros.Add(value); } + bool[] pTP = new bool[4]; void ds4_Tick(object sender, EventArgs e) { if (Program.rootHub.DS4Controllers[0] != null) { cState = Program.rootHub.getDS4State(0); if (btnRecord.Text == Properties.Resources.StopText) + { + if (cBRecordDelays.Checked) + { + Mouse tP = Program.rootHub.touchPad[0]; + if (tP.leftDown && !pTP[0]) + if (!btnRumble.Text.Contains("Stop")) + btnRumble_Click(sender, e); + else if (!tP.leftDown && pTP[0]) + if (btnRumble.Text.Contains("Stop")) + btnRumble_Click(sender, e); + if (tP.rightDown && !pTP[1]) + if (!btnLightbar.Text.Contains("Reset")) + btnLightbar_Click(sender, e); + else if (!tP.rightDown && pTP[1]) + if (btnLightbar.Text.Contains("Reset")) + btnLightbar_Click(sender, e); + pTP[0] = tP.leftDown; + pTP[1] = tP.rightDown; + } foreach (DS4Controls dc in dcs) if (Mapping.getBoolMapping(dc, cState, null, null)) { @@ -175,6 +196,7 @@ void ds4_Tick(object sender, EventArgs e) } } } + } } } @@ -251,6 +273,10 @@ private void btnRecord_Click(object sender, EventArgs e) { if (cBRecordDelays.Checked) sw.Start(); + btnRumble.Visible = cBRecordDelays.Checked; + btnLightbar.Visible = cBRecordDelays.Checked; + pBLtouch.Visible = cBRecordDelays.Checked; + pBRtouch.Visible = cBRecordDelays.Checked; Program.rootHub.recordingMacro = true; saved = false; ds4.Start(); @@ -278,6 +304,13 @@ private void btnRecord_Click(object sender, EventArgs e) btn4th_Click(sender, e); if (btn5th.Text.Contains(Properties.Resources.UpText)) btn5th_Click(sender, e); + if (cBRecordDelays.Checked) + { + if (btnRumble.Text.Contains("Stop")) + btnRumble_Click(sender, e); + if (btnLightbar.Text.Contains("Reset")) + btnLightbar_Click(sender, e); + } if (cBRecordDelays.Checked) sw.Reset(); if (cBRecordDelays.Checked) @@ -618,6 +651,98 @@ private void btn5th_Click(object sender, EventArgs e) } + private void btnRumble_Click(object sender, EventArgs e) + { + int value = 1255255; + if (btnRumble.Text.Contains("Add")) + { + if (macros.Count == 0 || (recordAfter && macrosAfter.Count == 0)) + { + AddMacroValue(value); + lVMacros.Items.Add("Rumble 255,255 (100%)", 0); + if (cBRecordDelays.Checked) + { + sw.Reset(); + sw.Start(); + } + } + else if (macros.Count > 0 || (recordAfter && macrosAfter.Count > 0)) + { + if (cBRecordDelays.Checked) + { + AddMacroValue((int)sw.ElapsedMilliseconds + 300); + lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2); + sw.Reset(); + sw.Start(); + } + AddMacroValue(value); + lVMacros.Items.Add("Rumble 255,255 (100%)", 0); + } + btnRumble.Text = "Stop Rumble"; + } + else + { + value = 1000000; + if (cBRecordDelays.Checked) + { + AddMacroValue((int)sw.ElapsedMilliseconds + 300); + lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2); + sw.Reset(); + sw.Start(); + } + AddMacroValue(value); + lVMacros.Items.Add("Stop Rumble", 1); + btnRumble.Text = "Add Rumble"; + } + lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible(); + } + + private void btnLightbar_Click(object sender, EventArgs e) + { + int value = 1255255255; + if (btnLightbar.Text.Contains("Change")) + { + if (macros.Count == 0 || (recordAfter && macrosAfter.Count == 0)) + { + AddMacroValue(value); + lVMacros.Items.Add("Lightbar Color: 255,255,255", 0); + if (cBRecordDelays.Checked) + { + sw.Reset(); + sw.Start(); + } + } + else if (macros.Count > 0 || (recordAfter && macrosAfter.Count > 0)) + { + if (cBRecordDelays.Checked) + { + AddMacroValue((int)sw.ElapsedMilliseconds + 300); + lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2); + sw.Reset(); + sw.Start(); + } + AddMacroValue(value); + lVMacros.Items.Add("Lightbar Color: 255,255,255", 0); + } + btnLightbar.Text = "Reset Lightbar Color"; + } + else + { + value = 1000000000; + if (cBRecordDelays.Checked) + { + AddMacroValue((int)sw.ElapsedMilliseconds + 300); + lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2); + sw.Reset(); + sw.Start(); + } + AddMacroValue(value); + lVMacros.Items.Add("Reset Lightbar", 1); + btnLightbar.Text = "Change Lightbar Color"; + } + lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible(); + } + public void btnSave_Click(object sender, EventArgs e) { if (macros.Count > 0) @@ -749,7 +874,34 @@ void LoadMacro() bool[] keydown = new bool[286]; foreach (int i in macros) { - if (i >= 300) //ints over 300 used to delay + if (i >= 1000000000) + { + if (i > 1000000000) + { + string lb = i.ToString().Substring(1); + byte r = (byte)(int.Parse(lb[0].ToString()) * 100 + int.Parse(lb[1].ToString()) * 10 + int.Parse(lb[2].ToString())); + byte g = (byte)(int.Parse(lb[3].ToString()) * 100 + int.Parse(lb[4].ToString()) * 10 + int.Parse(lb[5].ToString())); + byte b = (byte)(int.Parse(lb[6].ToString()) * 100 + int.Parse(lb[7].ToString()) * 10 + int.Parse(lb[8].ToString())); + lVMacros.Items.Add($"Lightbar Color: {r},{g},{b}", 0); + } + else + { + lVMacros.Items.Add("Reset Lightbar", 1); + } + } + else if (i >= 1000000) + { + if (i > 1000000) + { + string r = i.ToString().Substring(1); + byte heavy = (byte)(int.Parse(r[0].ToString()) * 100 + int.Parse(r[1].ToString()) * 10 + int.Parse(r[2].ToString())); + byte light = (byte)(int.Parse(r[3].ToString()) * 100 + int.Parse(r[4].ToString()) * 10 + int.Parse(r[5].ToString())); + lVMacros.Items.Add($"Rumble {heavy}, {light} ({Math.Round((heavy * .75f + light * .25f) / 2.55f, 1)}%)", 0); + } + else + lVMacros.Items.Add("Stop Rumble", 1); + } + else if (i >= 300) //ints over 300 used to delay lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", (i - 300).ToString()).Replace("*ms*", "ms"), 2); else if (!keydown[i]) { @@ -823,7 +975,7 @@ void LoadMacro() keydown[i] = false; } } - for (ushort i = 0; i < keydown.Length; i++) + for (int i = 0; i < keydown.Length; i++) { if (keydown[i]) { @@ -922,61 +1074,127 @@ protected override void OnKeyDown(KeyEventArgs e) } } private int selection; + private bool changingDelay = false; private void lVMacros_MouseDoubleClick(object sender, MouseEventArgs e) { - if (lVMacros.SelectedIndices[0] >= 0 && lVMacros.SelectedItems[0].ImageIndex == 2) - { - TextBox tb = new TextBox(); - tb.MaxLength = 5; - tb.KeyDown += nud_KeyDown; - tb.LostFocus += nud_LostFocus; - selection = lVMacros.SelectedIndices[0]; - Controls.Add(tb); - tb.Location = new Point(lVMacros.Location.X + lVMacros.SelectedItems[0].Position.X, lVMacros.Location.Y + lVMacros.SelectedItems[0].Position.Y); - tb.BringToFront(); - lVMacros.MouseHover -= lVMacros_MouseHover; - tb.TextChanged += tb_TextChanged; - tb.Focus(); - } + if (lVMacros.SelectedIndices[0] >= 0) + if (lVMacros.SelectedItems[0].ImageIndex == 2) + { + TextBox tb = new TextBox(); + tb.MaxLength = 5; + tb.KeyDown += nud_KeyDown; + tb.LostFocus += nud_LostFocus; + selection = lVMacros.SelectedIndices[0]; + Controls.Add(tb); + changingDelay = true; + tb.Location = new Point(lVMacros.Location.X + lVMacros.SelectedItems[0].Position.X, lVMacros.Location.Y + lVMacros.SelectedItems[0].Position.Y); + tb.BringToFront(); + lVMacros.MouseHover -= lVMacros_MouseHover; + tb.TextChanged += tb_TextChanged; + tb.Focus(); + } + else if (macros[lVMacros.SelectedIndices[0]] > 1000000000) + { + selection = lVMacros.SelectedIndices[0]; + string lb = macros[lVMacros.SelectedIndices[0]].ToString().Substring(1); + byte r = (byte)(int.Parse(lb[0].ToString()) * 100 + int.Parse(lb[1].ToString()) * 10 + int.Parse(lb[2].ToString())); + byte g = (byte)(int.Parse(lb[3].ToString()) * 100 + int.Parse(lb[4].ToString()) * 10 + int.Parse(lb[5].ToString())); + byte b = (byte)(int.Parse(lb[6].ToString()) * 100 + int.Parse(lb[7].ToString()) * 10 + int.Parse(lb[8].ToString())); + AdvancedColorDialog advColorDialog = new AdvancedColorDialog(); + advColorDialog.Color = Color.FromArgb(r, g, b); + advColorDialog.OnUpdateColor += advColorDialog_OnUpdateColor; + if (advColorDialog.ShowDialog() == DialogResult.OK) + { + macros[selection] = 1000000000 + advColorDialog.Color.R * 1000000 + advColorDialog.Color.G * 1000 + advColorDialog.Color.B; + } + lVMacros.Items[selection].Text = ($"Lightbar Color: {advColorDialog.Color.R},{advColorDialog.Color.G},{advColorDialog.Color.B}"); + } + else if (macros[lVMacros.SelectedIndices[0]] > 1000000 && macros[lVMacros.SelectedIndices[0]] != 1000000000) + { + + lVMacros.MouseHover -= lVMacros_MouseHover; + string r = macros[lVMacros.SelectedIndices[0]].ToString().Substring(1); + byte heavy = (byte)(int.Parse(r[0].ToString()) * 100 + int.Parse(r[1].ToString()) * 10 + int.Parse(r[2].ToString())); + byte light = (byte)(int.Parse(r[3].ToString()) * 100 + int.Parse(r[4].ToString()) * 10 + int.Parse(r[5].ToString())); + selection = lVMacros.SelectedIndices[0]; + tb1 = new TextBox(); + tb2 = new TextBox(); + tb1.Name = "tBHeavy"; + tb1.Name = "tBLight"; + tb1.MaxLength = 3; + tb2.MaxLength = 3; + tb1.KeyDown += nud_KeyDown; + tb2.KeyDown += nud_KeyDown; + Controls.Add(tb1); + Controls.Add(tb2); + changingDelay = false; + tb1.Location = new Point(lVMacros.Location.X + lVMacros.SelectedItems[0].Position.X, lVMacros.Location.Y + lVMacros.SelectedItems[0].Position.Y); + tb1.Size = new Size(tb1.Size.Width / 2, tb1.Size.Height); + tb2.Location = new Point(lVMacros.Location.X + lVMacros.SelectedItems[0].Position.X + tb1.Size.Width, lVMacros.Location.Y + lVMacros.SelectedItems[0].Position.Y); + tb2.Size = tb1.Size; + tb1.BringToFront(); + tb2.BringToFront(); + tb1.Text = heavy.ToString(); + tb2.Text = light.ToString(); + tb1.TextChanged += tb_TextChanged; + tb2.TextChanged += tb_TextChanged; + tb1.Focus(); + } } void tb_TextChanged(object sender, EventArgs e) { TextBox tb = (TextBox)sender; - for (int i = tb.Text.Length - 1; i >= 0; i--) - if (!Char.IsDigit(tb.Text[i])) - tb.Text = tb.Text.Remove(i, 1); + //if (changingDelay) + { + for (int i = tb.Text.Length - 1; i >= 0; i--) + if (!char.IsDigit(tb.Text[i])) + tb.Text = tb.Text.Remove(i, 1); + } } void nud_LostFocus(object sender, EventArgs e) { - TextBox tb = (TextBox)sender; - int i; - if (!string.IsNullOrEmpty(tb.Text) && int.TryParse(tb.Text, out i)) - { - lVMacros.Items[selection] = new ListViewItem(Properties.Resources.WaitMS.Replace("*number*", (tb.Text)).Replace("*ms*", "ms"), 2); - macros[selection] = i + 300; - saved = false; - } - Controls.Remove(tb); - lVMacros.MouseHover += lVMacros_MouseHover; + SaveMacroChange((TextBox)sender); } void nud_KeyDown(object sender, KeyEventArgs e) { - TextBox tb = (TextBox)sender; - if (e.KeyCode == Keys.Enter && !string.IsNullOrEmpty(tb.Text)) + if (e.KeyCode == Keys.Enter) + SaveMacroChange((TextBox)sender); + } + private void SaveMacroChange(TextBox tb) + { + int i, j; + if (!string.IsNullOrEmpty(tb.Text)) { - int i; - if (int.TryParse(tb.Text, out i)) + if (changingDelay && int.TryParse(tb.Text, out i)) { lVMacros.Items[selection] = new ListViewItem(Properties.Resources.WaitMS.Replace("*number*", (tb.Text)).Replace("*ms*", "ms"), 2); macros[selection] = i + 300; - saved = false; Controls.Remove(tb); - lVMacros.MouseHover += lVMacros_MouseHover; + saved = false; + } + else if (!changingDelay) + { + if (int.TryParse(tb1.Text, out i) && int.TryParse(tb2.Text, out j)) + { + if (i + j > 0) + { + byte heavy = (byte)i; + byte light = (byte)j; + lVMacros.Items[selection].Text = ($"Rumble {heavy}, {light} ({Math.Round((heavy * .75f + light * .25f) / 2.55f, 1)}%)"); + macros[selection] = 1000000 + heavy * 1000 + light; + saved = false; + Controls.Remove(tb1); + Controls.Remove(tb2); + tb1 = null; + tb2 = null; + } + } } } + lVMacros.MouseHover += lVMacros_MouseHover; } private void RecordBox_Resize(object sender, EventArgs e) @@ -984,6 +1202,18 @@ private void RecordBox_Resize(object sender, EventArgs e) cHMacro.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); } + private void advColorDialog_OnUpdateColor(object sender, EventArgs e) + { + if (sender is Color && Program.rootHub.DS4Controllers[0] != null) + { + Color color = (Color)sender; + DS4Color dcolor = new DS4Color { red = color.R, green = color.G, blue = color.B }; + DS4LightBar.forcedColor[0] = dcolor; + DS4LightBar.forcedFlash[0] = 0; + DS4LightBar.forcelight[0] = true; + } + } + private void lVMacros_SelectedIndexChanged(object sender, EventArgs e) { if (btnRecord.Text != Properties.Resources.StopText) diff --git a/DS4Windows/DS4Windows/RecordBox.resx b/DS4Windows/DS4Windows/RecordBox.resx index 9502a2f445..46962e3fa4 100644 --- a/DS4Windows/DS4Windows/RecordBox.resx +++ b/DS4Windows/DS4Windows/RecordBox.resx @@ -117,574 +117,682 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - + Top, Right - - lVMacros + + + MiddleLeft - - Top, Right + + NoControl - - lbMacroOrder + + 536, 29 - - Macro Order + + 213, 46 - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 322 - - btn4th + + Record - - $this + + btnRecord - - - 3, 8 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 548, 142 + + $this - - - False + + 8 - - btnSave + + Top, Right - - 133, 48 + + True - - Save Preset + + 591, 121 - - 132, 22 + + 96, 17 - - Text Document (*.txt)|*.txt + + 324 - - 2 + + Record Delays - - Edit the Wait to change the cycle rate + + cBRecordDelays - - btnCancel + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 8 + + $this - - 646, 81 + + 4 - - Record a Macro + + Top, Bottom, Left, Right - - Top + + Macro Order - - Top, Right + + 200 - - 66, 13 + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ + CgAAAk1TRnQBSQFMAgEBAwEAAXwBAQF8AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yIAAf8B7wH3AfQGAAH/ + Au8B/xgAAf8BBw4AAuwB/wcAAf8BBwHxAQcBvAGRAosBkQG8AQcB8QHvAf8XAAH/AuwBBw0AAuwB/wgA + AfQB8AEHBosCBwH0FwAB/wTsAQcMAALsAf8IAAHxAZEBiwe0AZEB8RYAAf8G7AEHCwAC7AH/BwAB9AG0 + Aa0BtAG1AfEC/wHxAbUBtAGtAbQB9BUAAuwBBwLsAf8C7AH/CgAC7AH/BwABvAGzAbQBtQb/ArQBswG8 + FQAB7AEHAQAC7AL/AewB/woAAuwB/wcAAbUBtAG1ARkC9AEHAfMB/wEZAQkCtAG1FQABBwIAAuwB/wEA + Av8HAAH/AgAC7AH/AgAB/wQAArQBtQP0AuwBvAH/ARkDtBgAAuwB/woAAewB/wEAAuwB/wEAAQcB/wQA + ArQBtQH0Av8B7AHvAewBBwEZA7QYAALsAf8KAALsAf8C7AH/AQcB7AH/BAABuwG0AbsBGQH/AfQBkgH0 + Af8B7wEZAbUBtAG7GAAC7AH/CgABBwTsAQcC7AH/BAAB8AG0AbsBCQH/AfQB8gP/ArsBtAHwGAAC7AH/ + CwABBwXsAf8EAAH0AVgBUgG7AgkB8wL0AfMBCQG7ARwBUgF5Af8XAALsAf8MAAEHA+wB/wUAARoBmgF6 + AVIDCQK1AgkBuwFYARoBegH/FwAC7AH/DQABBwHsAf8GAAEaAXoBwwF6AVgB3AQJAbsBUgKaAXoB/xcA + A/8OAAH/BwAB/wEaAXoBwwF6AZkBCQLcAQkBmQF6AZoBegH2MgAB/wEaAVkBegH/BAAB/wFZAXoB9hIA + AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAT/AYcB4QIAAf4BfwH+AT8BgAEB + AgAB/AE/Af4BPwHAAQMCAAH4AR8B/gE/AcABAwIAAfABDwH+AT8BgAEBAgAB8AEHAf4BPwGAAQECAAHy + AQcB/gE/AYABAQIAAfYBJwH2ATcBgAEBAgAB/gE/AfIBJwGAAQECAAH+AT8B8AEHAYABAQIAAf4BPwHw + AQcBgAEBAgAB/gE/AfgBDwQAAf4BPwH8AR8EAAH+AT8B/gE/BAAB/gE/Af8BfwEAAQECAAT/AYMBwwIA + Cw== + - - $this + + 3, 29 - - 103, 23 + + 527, 342 - - 131, 23 + + 326 - - btn5th + + lVMacros - - 536, 81 + + System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - fromFileToolStripMenuItem + + $this - - 6, 13 + + 9 + + + Top, Right Play once - - Top, Right + + Repeat while held - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 578, 171 - - MiddleCenter + + 121, 21 - - 104, 23 + + 327 - - 5 + + cBStyle - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 332 + + $this - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - + Top, Right - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 536, 2 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 104, 23 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 328 - - 536, 29 + + Save - - 539, 225 + + btnSave - - 3 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True + + $this - - Repeat while held + + 11 - - savePresets - - - RecordBox + + Top, Right - - System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 646, 2 - - 326 + + 103, 23 - - 121, 21 + + 328 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Cancel - - 213, 46 + + btnCancel - - 6 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - lbDelayTip + + $this - - True + + 10 - - 0 + + Top, Right - - 260, 205 + + NoControl - - 578, 171 + + 646, 81 - - Macro Order + + 103, 23 - - 527, 342 + + 332 - - 39, 10 + + Save Preset - - 5th Mouse Button Down + + btnSaveP - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 10 + + $this - - Load Preset + + 3 Top, Right - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 200 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 536, 2 - - - Text Document (*.txt)|*.txt - - - pnlMouseButtons + + True - - 322 + + 309, 7 - - cHMacro + + 221, 13 329 - - 329 - - - cMSLoadPresets + + Use Keyboard/Mouse + Controller 1 to record - - 328 + + MiddleCenter - - Cycle Programs + + lbRecordTip - - NoControl + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - $this + + 7 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Top, Right - - openPresets + + NoControl - - 4th Mouse Button Down + + 152, 106 - - 332 + + 43, 23 - - Top, Bottom, Left, Right + + Zoom - + 4 - - 333 - - - MiddleLeft + + pBRtouch - - System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + pnlMouseButtons - - 328 + + 0 - - Save + + 152, 77 - - Top + + 43, 23 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Zoom - - True + + 3 - - 96, 17 + + pBLtouch - - False + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 104, 23 + + pnlMouseButtons - - 3, 29 + + 1 - - From File... + + Top - - btnRecord + + NoControl - - Cancel + + 17, 106 - + 131, 23 - - Top, Right - - - 132, 22 + + 1 - - 591, 121 + + Change Lightbar Color - - lbRecordTip + + btnLightbar - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 103, 23 + + pnlMouseButtons - - 309, 7 + + 2 - - Top, Right + + Top - - 7 + + NoControl - - cBStyle + + 17, 77 - - pnlMouseButtons + + 131, 23 - - $this + + 2 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Add Rumble - - NoControl + + btnRumble - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0 + + pnlMouseButtons - - iLKeys + + 3 + + + Top 39, 39 - - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Record + + 131, 23 - - $this + + 0 - - MiddleCenter + + 5th Mouse Button Down - - cBRecordDelays + + btn5th - - $this + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 324 + + pnlMouseButtons - - $this + + 4 - - $this + + Top - - Double click on a wait to edit the time + + 39, 10 - - btnLoadP + + 131, 23 - - altTabToolStripMenuItem + + 0 - - 750, 375 + + 4th Mouse Button Down + + + btn4th + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pnlMouseButtons + + + 5 + + + 539, 225 + + + 210, 138 + + + 331 + + + False pnlMouseButtons - + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + $this - - 327 + + 12 - - Record Delays + + Top, Right - - 0 + + 536, 81 - - 646, 2 + + 104, 23 - - btnSaveP + + 332 - - 9 + + Load Preset - - Use Keyboard/Mouse + Controller 1 to record + + btnLoadP - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ - CgAAAk1TRnQBSQFMAgEBAwEAATwBAQFgAQEBEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yIAAf8B7wH3AfQGAAH/ - Au8B/xgAAf8BBw4AAuwB/wcAAf8BBwHxAQcBvAGRAosBkQG8AQcB8QHvAf8XAAH/AuwBBw0AAuwB/wgA - AfQB8AEHBosCBwH0FwAB/wTsAQcMAALsAf8IAAHxAZEBiwe0AZEB8RYAAf8G7AEHCwAC7AH/BwAB9AG0 - Aa0BtAG1AfEC/wHxAbUBtAGtAbQB9BUAAuwBBwLsAf8C7AH/CgAC7AH/BwABvAGzAbQBtQb/ArQBswG8 - FQAB7AEHAQAC7AL/AewB/woAAuwB/wcAAbUBtAG1ARkC9AEHAfMB/wEZAQkCtAG1FQABBwIAAuwB/wEA - Av8HAAH/AgAC7AH/AgAB/wQAArQBtQP0AuwBvAH/ARkDtBgAAuwB/woAAewB/wEAAuwB/wEAAQcB/wQA - ArQBtQH0Av8B7AHvAewBBwEZA7QYAALsAf8KAALsAf8C7AH/AQcB7AH/BAABuwG0AbsBGQH/AfQBkgH0 - Af8B7wEZAbUBtAG7GAAC7AH/CgABBwTsAQcC7AH/BAAB8AG0AbsBCQH/AfQB8gP/ArsBtAHwGAAC7AH/ - CwABBwXsAf8EAAH0AVgBUgG7AgkB8wL0AfMBCQG7ARwBUgF5Af8XAALsAf8MAAEHA+wB/wUAARoBmgF6 - AVIDCQK1AgkBuwFYARoBegH/FwAC7AH/DQABBwHsAf8GAAEaAXoBwwF6AVgB3AQJAbsBUgKaAXoB/xcA - A/8OAAH/BwAB/wEaAXoBwwF6AZkBCQLcAQkBmQF6AZoBegH2MgAB/wEaAVkBegH/BAAB/wFZAXoB9hIA - AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAT/AYcB4QIAAf4BfwH+AT8BgAEB - AgAB/AE/Af4BPwHAAQMCAAH4AR8B/gE/AcABAwIAAfABDwH+AT8BgAEBAgAB8AEHAf4BPwGAAQECAAHy - AQcB/gE/AYABAQIAAfYBJwH2ATcBgAEBAgAB/gE/AfIBJwGAAQECAAH+AT8B8AEHAYABAQIAAf4BPwHw - AQcBgAEBAgAB/gE/AfgBDwQAAf4BPwH8AR8EAAH+AT8B/gE/BAAB/gE/Af8BfwEAAQECAAT/AYMBwxgA - Cw== - + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 5 - - System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 102, 17 + + + Text Document (*.txt)|*.txt - - 331 + + 238, 17 + + + Text Document (*.txt)|*.txt + + + True + + + 3, 8 + + + 66, 13 + + + 333 + + + Macro Order + + + lbMacroOrder + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top, Right + + + True NoControl + + 548, 142 + 184, 13 - - 210, 74 + + 329 - - Top, Right + + Double click on a wait to edit the time - - 12 + + MiddleCenter - - Top, Right + + False - - $this + + lbDelayTip - - True + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 11 + + $this - - 221, 13 + + 6 - - 238, 17 - - - 102, 17 - 356, 17 - - 17, 17 - + + 133, 48 + + + cMSLoadPresets + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 132, 22 + + + Cycle Programs + + + Edit the Wait to change the cycle rate + + + 132, 22 + + + From File... + True - - tr - + + 6, 13 + + + 750, 375 + + + 260, 205 + + + Record a Macro + + + cHMacro + + + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + iLKeys + + + System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + savePresets + + + System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + openPresets + + + System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + altTabToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + fromFileToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + RecordBox + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/DS4Windows/DS4Windows/RecordBox.tr.resx b/DS4Windows/DS4Windows/RecordBox.tr.resx index 6d4fb64b95..b6c426c687 100644 --- a/DS4Windows/DS4Windows/RecordBox.tr.resx +++ b/DS4Windows/DS4Windows/RecordBox.tr.resx @@ -135,7 +135,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ - CgAAAk1TRnQBSQFMAgEBAwEAAWABAQFgAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CgAAAk1TRnQBSQFMAgEBAwEAAWgBAQFoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -229,9 +229,6 @@ Süreyi ayarlamak için çift tıklayın - - 151, 48 - 150, 22 @@ -247,4 +244,7 @@ Dosyadan... + + 151, 48 + \ No newline at end of file diff --git a/DS4Windows/Properties/AssemblyInfo.cs b/DS4Windows/Properties/AssemblyInfo.cs index acf6277032..088a6e5d20 100644 --- a/DS4Windows/Properties/AssemblyInfo.cs +++ b/DS4Windows/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.4.269")] -[assembly: AssemblyFileVersion("1.4.269")] +[assembly: AssemblyVersion("1.4.27")] +[assembly: AssemblyFileVersion("1.4.27")] diff --git a/DS4Windows/Properties/Resources1.Designer.cs b/DS4Windows/Properties/Resources.Designer.cs similarity index 98% rename from DS4Windows/Properties/Resources1.Designer.cs rename to DS4Windows/Properties/Resources.Designer.cs index e477ea477e..160a7f76d3 100644 --- a/DS4Windows/Properties/Resources1.Designer.cs +++ b/DS4Windows/Properties/Resources.Designer.cs @@ -851,6 +851,16 @@ internal static System.Drawing.Bitmap LEFT { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left_touch { + get { + object obj = ResourceManager.GetObject("left_touch", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -1236,6 +1246,16 @@ internal static System.Drawing.Bitmap RIGHT { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right_touch { + get { + object obj = ResourceManager.GetObject("right_touch", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized string similar to Right Click to set presets for a set of controls. /// diff --git a/DS4Windows/Properties/Resources.resx b/DS4Windows/Properties/Resources.resx index d33c4c022b..96398eb7b2 100644 --- a/DS4Windows/Properties/Resources.resx +++ b/DS4Windows/Properties/Resources.resx @@ -694,4 +694,10 @@ Charge the battery + + ..\Resources\left touch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right touch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/DS4Windows/Resources/left touch.png b/DS4Windows/Resources/left touch.png new file mode 100644 index 0000000000..4c94c3667b Binary files /dev/null and b/DS4Windows/Resources/left touch.png differ diff --git a/DS4Windows/Resources/right touch.png b/DS4Windows/Resources/right touch.png new file mode 100644 index 0000000000..4e2ac3d54e Binary files /dev/null and b/DS4Windows/Resources/right touch.png differ