From 6a43277ae320a639156fc66468a2cd28c47ba0e8 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Tue, 2 Nov 2021 21:44:08 +1000 Subject: [PATCH] Move `AudioExtractor` to DiscSystem and clean up --- src/BizHawk.Client.DiscoHawk/Program.cs | 1 - .../DiscoHawkLogic}/AudioExtractor.cs | 26 +++++++------------ 2 files changed, 10 insertions(+), 17 deletions(-) rename src/{BizHawk.Client.DiscoHawk => BizHawk.Emulation.DiscSystem/DiscoHawkLogic}/AudioExtractor.cs (71%) diff --git a/src/BizHawk.Client.DiscoHawk/Program.cs b/src/BizHawk.Client.DiscoHawk/Program.cs index e74805b8e0..3d446e5336 100644 --- a/src/BizHawk.Client.DiscoHawk/Program.cs +++ b/src/BizHawk.Client.DiscoHawk/Program.cs @@ -77,7 +77,6 @@ namespace BizHawk.Client.DiscoHawk if (!File.Exists(ffmpegPath)) ffmpegPath = Path.Combine(Path.Combine(GetExeDirectoryAbsolute(), "dll"), "ffmpeg.exe"); FFmpegService.FFmpegPath = ffmpegPath; - AudioExtractor.FFmpegPath = ffmpegPath; if (args.Length == 0) { diff --git a/src/BizHawk.Client.DiscoHawk/AudioExtractor.cs b/src/BizHawk.Emulation.DiscSystem/DiscoHawkLogic/AudioExtractor.cs similarity index 71% rename from src/BizHawk.Client.DiscoHawk/AudioExtractor.cs rename to src/BizHawk.Emulation.DiscSystem/DiscoHawkLogic/AudioExtractor.cs index 7c92bfdd1b..b318ea0309 100644 --- a/src/BizHawk.Client.DiscoHawk/AudioExtractor.cs +++ b/src/BizHawk.Emulation.DiscSystem/DiscoHawkLogic/AudioExtractor.cs @@ -9,8 +9,6 @@ namespace BizHawk.Client.DiscoHawk { public static class AudioExtractor { - public static string FFmpegPath; - public static void Extract(Disc disc, string path, string fileBase, Func getOverwritePolicy) { var dsr = new DiscSectorReader(disc); @@ -21,24 +19,21 @@ namespace BizHawk.Client.DiscoHawk var tracks = disc.Session1.Tracks; Parallel.ForEach(tracks, track => { - if (shouldHalt) return; + if (shouldHalt || track.NextTrack == null) return; + if (!track.IsAudio) return; - if (!track.IsAudio) - return; - - if (track.NextTrack == null) - return; - - int trackLength = track.NextTrack.LBA - track.LBA; + var startLba = track.LBA; + var trackLength = track.NextTrack.LBA - startLba; var waveData = new byte[trackLength * 2352]; - int startLba = track.LBA; - lock(disc) - for (int sector = 0; sector < trackLength; sector++) + lock (disc) + { + for (var sector = 0; sector < trackLength; sector++) { dsr.ReadLBA_2352(startLba + sector, waveData, sector * 2352); } + } - string mp3Path = $"{Path.Combine(path, fileBase)} - Track {track.Number:D2}.mp3"; + var mp3Path = $"{Path.Combine(path, fileBase)} - Track {track.Number:D2}.mp3"; if (File.Exists(mp3Path)) { overwriteExisting ??= getOverwritePolicy(); @@ -55,8 +50,7 @@ namespace BizHawk.Client.DiscoHawk } } - string tempfile = Path.GetTempFileName(); - + var tempfile = Path.GetTempFileName(); try { File.WriteAllBytes(tempfile, waveData);