2017-04-16 01:34:13 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Windows.Forms;
|
2017-04-19 13:31:48 +00:00
|
|
|
|
|
2017-04-16 01:34:13 +00:00
|
|
|
|
using BizHawk.Emulation.Cores.Nintendo.SNES;
|
|
|
|
|
using BizHawk.Client.Common;
|
|
|
|
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
2017-04-19 13:31:48 +00:00
|
|
|
|
|
2017-04-16 01:34:13 +00:00
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
|
|
|
|
{
|
|
|
|
|
public partial class SNESControllerSettings : Form
|
|
|
|
|
{
|
|
|
|
|
private LibsnesCore.SnesSyncSettings _syncSettings;
|
2017-05-31 14:56:51 +00:00
|
|
|
|
private bool _supressDropdownChangeEvents;
|
2017-04-16 01:34:13 +00:00
|
|
|
|
|
|
|
|
|
public SNESControllerSettings()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SNESControllerSettings_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
2017-04-19 13:31:48 +00:00
|
|
|
|
_syncSettings = ((LibsnesCore)Global.Emulator).GetSyncSettings().Clone();
|
2017-04-20 01:30:42 +00:00
|
|
|
|
|
2017-04-21 00:50:46 +00:00
|
|
|
|
LimitAnalogChangeCheckBox.Checked = _syncSettings.LimitAnalogChangeSensitivity;
|
2017-04-20 01:30:42 +00:00
|
|
|
|
|
|
|
|
|
_supressDropdownChangeEvents = true;
|
2017-04-16 01:34:13 +00:00
|
|
|
|
Port1ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.LeftPort);
|
|
|
|
|
Port2ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.RightPort);
|
2017-04-20 01:30:42 +00:00
|
|
|
|
_supressDropdownChangeEvents = false;
|
2017-04-16 01:34:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OkBtn_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
bool changed =
|
|
|
|
|
_syncSettings.LeftPort.ToString() != Port1ComboBox.SelectedItem.ToString()
|
2017-04-20 01:30:42 +00:00
|
|
|
|
|| _syncSettings.RightPort.ToString() != Port2ComboBox.SelectedItem.ToString()
|
2017-04-21 00:50:46 +00:00
|
|
|
|
|| _syncSettings.LimitAnalogChangeSensitivity != LimitAnalogChangeCheckBox.Checked;
|
2017-04-16 01:34:13 +00:00
|
|
|
|
|
|
|
|
|
if (changed)
|
|
|
|
|
{
|
|
|
|
|
_syncSettings.LeftPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port1ComboBox.SelectedItem.ToString());
|
|
|
|
|
_syncSettings.RightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString());
|
2017-04-21 00:50:46 +00:00
|
|
|
|
_syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked;
|
2017-04-16 01:34:13 +00:00
|
|
|
|
|
|
|
|
|
GlobalWin.MainForm.PutCoreSyncSettings(_syncSettings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DialogResult = DialogResult.OK;
|
|
|
|
|
Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CancelBtn_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
GlobalWin.OSD.AddMessage("Controller settings aborted");
|
|
|
|
|
DialogResult = DialogResult.Cancel;
|
|
|
|
|
Close();
|
|
|
|
|
}
|
2017-04-20 01:30:42 +00:00
|
|
|
|
|
|
|
|
|
private void PortComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!_supressDropdownChangeEvents)
|
|
|
|
|
{
|
|
|
|
|
var leftPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port1ComboBox.SelectedItem.ToString());
|
|
|
|
|
var rightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString());
|
2017-04-21 01:45:29 +00:00
|
|
|
|
ToggleMouseSection(leftPort == LibsnesControllerDeck.ControllerType.Mouse
|
|
|
|
|
|| rightPort == LibsnesControllerDeck.ControllerType.Mouse);
|
2017-04-20 01:30:42 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ToggleMouseSection(bool show)
|
|
|
|
|
{
|
2017-04-21 00:50:46 +00:00
|
|
|
|
LimitAnalogChangeCheckBox.Visible =
|
2017-04-20 01:30:42 +00:00
|
|
|
|
MouseSpeedLabel1.Visible =
|
|
|
|
|
MouseSpeedLabel2.Visible =
|
|
|
|
|
MouseSpeedLabel3.Visible =
|
|
|
|
|
MouseNagLabel1.Visible =
|
|
|
|
|
MouseNagLabel2.Visible =
|
|
|
|
|
show;
|
|
|
|
|
}
|
2017-04-16 01:34:13 +00:00
|
|
|
|
}
|
|
|
|
|
}
|