diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 38715e2187..8c40a2fc5f 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -346,6 +346,11 @@ public string PlayBeginningBinding = ""; public string VolUpBinding = ""; public string VolDownBinding = ""; + public string ToggleMultiTrack = ""; + public string MTRecordAll = ""; + public string MTRecordNone = ""; + public string MTIncrementPlayer = ""; + public string MTDecrementPlayer = ""; // SMS / GameGear Settings public bool SmsEnableFM = true; diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 7dd94d847f..4b396b1944 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -446,6 +446,11 @@ namespace BizHawk.MultiClient controls.BindMulti("Play Beginning", Global.Config.PlayBeginningBinding); controls.BindMulti("Volume Up", Global.Config.VolUpBinding); controls.BindMulti("Volume Down", Global.Config.VolDownBinding); + controls.BindMulti("Toggle MultiTrack", Global.Config.ToggleMultiTrack); + controls.BindMulti("Record All", Global.Config.MTRecordAll); + controls.BindMulti("Record None", Global.Config.MTRecordNone); + controls.BindMulti("Increment Player", Global.Config.MTIncrementPlayer); + controls.BindMulti("Decrement Player", Global.Config.MTDecrementPlayer); Global.ClientControls = controls; @@ -1121,6 +1126,45 @@ namespace BizHawk.MultiClient VolumeDown(); Global.ClientControls.UnpressButton("Volume Down"); } + if (Global.ClientControls["Toggle MultiTrack"]) + { + Global.MultiTrack.isActive = !Global.MultiTrack.isActive; + Global.MultiTrack.RecordAll = false; + Global.MultiTrack.CurrentPlayer = 0; + Global.ClientControls.UnpressButton("Toggle MultiTrack"); + } + if (Global.ClientControls["Increment Player"]) + { + Global.MultiTrack.CurrentPlayer++; + Global.MultiTrack.RecordAll = false; + if (Global.MultiTrack.CurrentPlayer > 5) //TODO: Replace with console's maximum or current maximum players??! + { + Global.MultiTrack.CurrentPlayer = 1; + } + Global.ClientControls.UnpressButton("Decrement Player"); + } + if (Global.ClientControls["Decrement Player"]) + { + Global.MultiTrack.CurrentPlayer--; + Global.MultiTrack.RecordAll = false; + if (Global.MultiTrack.CurrentPlayer < 1) + { + Global.MultiTrack.CurrentPlayer = 5;//TODO: Replace with console's maximum or current maximum players??! + } + Global.ClientControls.UnpressButton("Decrement Player"); + } + if (Global.ClientControls["Record All"]) + { + Global.MultiTrack.CurrentPlayer = 0; + Global.MultiTrack.RecordAll = true; + Global.ClientControls.UnpressButton("Record All"); + } + if (Global.ClientControls["Record None"]) + { + Global.MultiTrack.CurrentPlayer = 0; + Global.MultiTrack.RecordAll = false; + Global.ClientControls.UnpressButton("Record None"); + } } void StepRunLoop_Throttle() diff --git a/BizHawk.MultiClient/config/HotkeyWindow.cs b/BizHawk.MultiClient/config/HotkeyWindow.cs index 8f00ba0a83..81520aab6d 100644 --- a/BizHawk.MultiClient/config/HotkeyWindow.cs +++ b/BizHawk.MultiClient/config/HotkeyWindow.cs @@ -82,6 +82,11 @@ namespace BizHawk.MultiClient.tools IDW_PLAYBEGINNING.Text = Global.Config.PlayBeginningBinding; IDW_VOLUP.Text = Global.Config.VolUpBinding; IDW_VOLDOWN.Text = Global.Config.VolDownBinding; + IDW_TOGGLEMTRACK.Text = Global.Config.ToggleMultiTrack; + IDW_SELECTNONE.Text = Global.Config.MTRecordNone; + IDW_MTSELECTALL.Text = Global.Config.MTRecordAll; + IDW_MTINCPLAYER.Text = Global.Config.MTIncrementPlayer; + IDW_MTDECPLAYER.Text = Global.Config.MTDecrementPlayer; } private void button2_Click(object sender, EventArgs e) { @@ -160,6 +165,12 @@ namespace BizHawk.MultiClient.tools Global.Config.VolUpBinding = IDW_VOLUP.Text; Global.Config.VolDownBinding = IDW_VOLDOWN.Text; + Global.Config.ToggleMultiTrack = IDW_TOGGLEMTRACK.Text; + Global.Config.MTRecordAll = IDW_MTSELECTALL.Text; + Global.Config.MTRecordNone = IDW_SELECTNONE.Text; + Global.Config.MTIncrementPlayer = IDW_MTINCPLAYER.Text; + Global.Config.MTDecrementPlayer = IDW_MTDECPLAYER.Text; + this.DialogResult = DialogResult.OK; this.Close(); }