UI: Disable toggle record shortcuts when no game is running

This commit is contained in:
Sour 2020-06-20 13:59:19 -04:00
parent 77ed078899
commit ecadab92db

View file

@ -989,39 +989,9 @@ namespace Mesen.GUI.Forms
}
break;
case EmulatorShortcut.ToggleRecordVideo:
if(InteropEmu.AviIsRecording()) {
InteropEmu.AviStop();
} else {
string filename = GetOutputFilename(ConfigManager.AviFolder, ConfigManager.Config.AviRecordInfo.Codec == VideoCodec.GIF ? ".gif" : ".avi");
InteropEmu.AviRecord(filename, ConfigManager.Config.AviRecordInfo.Codec, ConfigManager.Config.AviRecordInfo.CompressionLevel);
}
break;
case EmulatorShortcut.ToggleRecordAudio:
if(InteropEmu.WaveIsRecording()) {
InteropEmu.WaveStop();
} else {
string filename = GetOutputFilename(ConfigManager.WaveFolder, ".wav");
InteropEmu.WaveRecord(filename);
}
break;
case EmulatorShortcut.ToggleRecordMovie:
if(!InteropEmu.MoviePlaying() && !InteropEmu.IsConnected()) {
if(InteropEmu.MovieRecording()) {
InteropEmu.MovieStop();
} else {
RecordMovieOptions options = new RecordMovieOptions(
GetOutputFilename(ConfigManager.MovieFolder, ".mmo"),
ConfigManager.Config.MovieRecordInfo.Author,
ConfigManager.Config.MovieRecordInfo.Description,
ConfigManager.Config.MovieRecordInfo.RecordFrom
);
InteropEmu.MovieRecord(ref options);
}
}
break;
case EmulatorShortcut.ToggleRecordVideo: ToggleRecordVideo(); break;
case EmulatorShortcut.ToggleRecordAudio: ToggleRecordAudio(); break;
case EmulatorShortcut.ToggleRecordMovie: ToggleRecordMovie(); break;
case EmulatorShortcut.TakeScreenshot: InteropEmu.TakeScreenshot(); break;
case EmulatorShortcut.LoadRandomGame: LoadRandomGame(); break;
@ -1078,6 +1048,53 @@ namespace Mesen.GUI.Forms
}
}
private void ToggleRecordMovie()
{
if(!InteropEmu.IsRunning() || InteropEmu.MoviePlaying() || InteropEmu.IsConnected()) {
return;
}
if(InteropEmu.MovieRecording()) {
InteropEmu.MovieStop();
} else {
RecordMovieOptions options = new RecordMovieOptions(
GetOutputFilename(ConfigManager.MovieFolder, ".mmo"),
ConfigManager.Config.MovieRecordInfo.Author,
ConfigManager.Config.MovieRecordInfo.Description,
ConfigManager.Config.MovieRecordInfo.RecordFrom
);
InteropEmu.MovieRecord(ref options);
}
}
private void ToggleRecordAudio()
{
if(!InteropEmu.IsRunning()) {
return;
}
if(InteropEmu.WaveIsRecording()) {
InteropEmu.WaveStop();
} else {
string filename = GetOutputFilename(ConfigManager.WaveFolder, ".wav");
InteropEmu.WaveRecord(filename);
}
}
private void ToggleRecordVideo()
{
if(!InteropEmu.IsRunning()) {
return;
}
if(InteropEmu.AviIsRecording()) {
InteropEmu.AviStop();
} else {
string filename = GetOutputFilename(ConfigManager.AviFolder, ConfigManager.Config.AviRecordInfo.Codec == VideoCodec.GIF ? ".gif" : ".avi");
InteropEmu.AviRecord(filename, ConfigManager.Config.AviRecordInfo.Codec, ConfigManager.Config.AviRecordInfo.CompressionLevel);
}
}
private string GetOutputFilename(string folder, string ext)
{
DateTime now = DateTime.Now;