Mesen-X/GUI.NET/Forms/frmMain.Game.cs

107 lines
3.1 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Mesen.GUI.Config;
using Mesen.GUI.Forms.Config;
namespace Mesen.GUI.Forms
{
public partial class frmMain
{
private void mnuGame_DropDownOpening(object sender, EventArgs e)
{
InitializeVsSystemMenu();
InitializeFdsDiskMenu();
bool hasBarcodeReader = InteropEmu.GetAvailableFeatures().HasFlag(ConsoleFeatures.BarcodeReader);
mnuInputBarcode.Visible = hasBarcodeReader;
bool hasTapeRecorder = InteropEmu.GetAvailableFeatures().HasFlag(ConsoleFeatures.TapeRecorder);
mnuTapeRecorder.Visible = hasTapeRecorder;
sepBarcode.Visible = hasBarcodeReader || hasTapeRecorder;
}
private void InitializeFdsDiskMenu()
{
UInt32 sideCount = InteropEmu.FdsGetSideCount();
mnuSelectDisk.DropDownItems.Clear();
if(sideCount > 0) {
for(UInt32 i = 0; i < sideCount; i++) {
UInt32 diskNumber = i;
ToolStripItem item = mnuSelectDisk.DropDownItems.Add(ResourceHelper.GetMessage("FdsDiskSide", (diskNumber/2+1).ToString(), (diskNumber % 2 == 0 ? "A" : "B")));
item.Click += (object sender, EventArgs args) => {
InteropEmu.FdsInsertDisk(diskNumber);
};
}
sepFdsDisk.Visible = true;
mnuSelectDisk.Visible = true;
mnuEjectDisk.Visible = true;
mnuSwitchDiskSide.Visible = sideCount > 1;
} else {
sepFdsDisk.Visible = false;
mnuSelectDisk.Visible = false;
mnuEjectDisk.Visible = false;
mnuSwitchDiskSide.Visible = false;
}
}
private void InitializeVsSystemMenu()
{
sepVsSystem.Visible = InteropEmu.IsVsSystem();
mnuInsertCoin1.Visible = InteropEmu.IsVsSystem();
mnuInsertCoin2.Visible = InteropEmu.IsVsSystem();
mnuVsGameConfig.Visible = InteropEmu.IsVsSystem();
}
private void ShowVsGameConfig()
{
VsConfigInfo configInfo = VsConfigInfo.GetCurrentGameConfig(true);
using(frmVsGameConfig frm = new frmVsGameConfig(configInfo)) {
if(frm.ShowDialog(null, this) == DialogResult.OK) {
VsConfigInfo.ApplyConfig();
}
}
}
private void mnuVsGameConfig_Click(object sender, EventArgs e)
{
ShowVsGameConfig();
}
private void mnuLoadTapeFile_Click(object sender, EventArgs e)
{
using(OpenFileDialog ofd = new OpenFileDialog()) {
ofd.SetFilter(ResourceHelper.GetMessage("FilterTapeFiles"));
ofd.InitialDirectory = ConfigManager.SaveFolder;
ofd.FileName = InteropEmu.GetRomInfo().GetRomName() + ".fbt";
2017-11-29 23:24:26 -05:00
if(ofd.ShowDialog(this) == DialogResult.OK) {
InteropEmu.LoadTapeFile(ofd.FileName);
}
}
}
private void mnuStartRecordTapeFile_Click(object sender, EventArgs e)
{
using(SaveFileDialog sfd = new SaveFileDialog()) {
sfd.SetFilter(ResourceHelper.GetMessage("FilterTapeFiles"));
sfd.InitialDirectory = ConfigManager.SaveFolder;
sfd.FileName = InteropEmu.GetRomInfo().GetRomName() + ".fbt";
2017-11-29 23:24:26 -05:00
if(sfd.ShowDialog(this) == DialogResult.OK) {
InteropEmu.StartRecordingTapeFile(sfd.FileName);
}
}
}
private void mnuStopRecordTapeFile_Click(object sender, EventArgs e)
{
InteropEmu.StopRecordingTapeFile();
}
}
}