diff --git a/GUI.NET/Forms/frmMain.cs b/GUI.NET/Forms/frmMain.cs index c25a20f6..cd19dbf7 100644 --- a/GUI.NET/Forms/frmMain.cs +++ b/GUI.NET/Forms/frmMain.cs @@ -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;