some random code cleanup on BizHawk.Emulation.DiscSystem
This commit is contained in:
parent
030f30628d
commit
00308de99a
|
@ -31,9 +31,9 @@ using BizHawk.Common;
|
|||
|
||||
namespace BizHawk.Emulation.DiscSystem
|
||||
{
|
||||
partial class Disc
|
||||
sealed partial class Disc
|
||||
{
|
||||
class Blob_ECM : IBlob
|
||||
private class Blob_ECM : IBlob
|
||||
{
|
||||
FileStream stream;
|
||||
|
||||
|
@ -44,7 +44,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
stream = null;
|
||||
}
|
||||
|
||||
class IndexEntry
|
||||
private class IndexEntry
|
||||
{
|
||||
public int Type;
|
||||
public uint Number;
|
||||
|
|
|
@ -8,6 +8,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
{
|
||||
class Blob_WaveFile : IBlob
|
||||
{
|
||||
[Serializable]
|
||||
public class Blob_WaveFile_Exception : Exception
|
||||
{
|
||||
public Blob_WaveFile_Exception(string message)
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
using System.IO;
|
||||
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Emulation.DiscSystem;
|
||||
|
||||
// The state of the cd player is quantized to the frame level.
|
||||
// This isn't ideal. But life's too short.
|
||||
|
@ -42,7 +41,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
|
||||
public int CurrentSector, SectorOffset; // Offset is in SAMPLES, not bytes. Sector is 588 samples long.
|
||||
int CachedSector;
|
||||
byte[] SectorCache = new byte[2352];
|
||||
readonly byte[] SectorCache = new byte[2352];
|
||||
|
||||
public int FadeOutOverFrames = 0;
|
||||
public int FadeOutFramesRemaining = 0;
|
||||
|
|
|
@ -53,8 +53,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
{
|
||||
//TODO - add cue directory to CueBinPrefs???? could make things cleaner...
|
||||
|
||||
var session = new DiscTOC.Session();
|
||||
session.num = 1;
|
||||
var session = new DiscTOC.Session {num = 1};
|
||||
TOC.Sessions.Add(session);
|
||||
var pregap_sector = new Sector_Zero();
|
||||
|
||||
|
@ -254,8 +253,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
bool is_last_index = index == num_indexes - 1;
|
||||
|
||||
//install index into hierarchy
|
||||
var toc_index = new DiscTOC.Index();
|
||||
toc_index.num = index;
|
||||
var toc_index = new DiscTOC.Index {num = index};
|
||||
toc_track.Indexes.Add(toc_index);
|
||||
if (index == 0)
|
||||
{
|
||||
|
@ -310,9 +308,11 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
{
|
||||
//ECM needs to know the sector number so we have to record that here
|
||||
int curr_disc_aba = Sectors.Count;
|
||||
var sector_2048 = new Sector_Mode1_2048(curr_disc_aba + 150);
|
||||
sector_2048.Blob = new ECMCacheBlob(cue_blob);
|
||||
sector_2048.Offset = blob_cursor;
|
||||
var sector_2048 = new Sector_Mode1_2048(curr_disc_aba + 150)
|
||||
{
|
||||
Blob = new ECMCacheBlob(cue_blob),
|
||||
Offset = blob_cursor
|
||||
};
|
||||
blob_cursor += 2048;
|
||||
Sectors.Add(new SectorEntry(sector_2048));
|
||||
break;
|
||||
|
@ -472,6 +472,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
public Timestamp Timestamp;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class CueBrokenException : Exception
|
||||
{
|
||||
public CueBrokenException(string why)
|
||||
|
@ -576,9 +577,10 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
if (indexnum < 0 || indexnum > 99) throw new CueBrokenException("`All index numbers must be between 0 and 99 inclusive.`");
|
||||
if (indexnum != 1 && indexnum != last_index_num + 1) throw new CueBrokenException("`The first index must be 0 or 1 with all other indexes being sequential to the first one.`");
|
||||
last_index_num = indexnum;
|
||||
CueTrackIndex cti = new CueTrackIndex(indexnum);
|
||||
cti.Timestamp = new Timestamp(str_timestamp);
|
||||
cti.IndexNum = indexnum;
|
||||
CueTrackIndex cti = new CueTrackIndex(indexnum)
|
||||
{
|
||||
Timestamp = new Timestamp(str_timestamp), IndexNum = indexnum
|
||||
};
|
||||
currTrack.Indexes[indexnum] = cti;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
@ -16,12 +17,12 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
public bool IsAudio;
|
||||
}
|
||||
|
||||
static string[] Escape(string[] args)
|
||||
private static string[] Escape(IEnumerable<string> args)
|
||||
{
|
||||
return args.Select(s => s.Contains(" ") ? string.Format("\"{0}\"", s) : s).ToArray();
|
||||
}
|
||||
|
||||
static Regex rxHasAudio = new Regex(@"Stream \#(\d*\.\d*)\: Audio", RegexOptions.Compiled);
|
||||
static readonly Regex rxHasAudio = new Regex(@"Stream \#(\d*\.\d*)\: Audio", RegexOptions.Compiled);
|
||||
public AudioQueryResult QueryAudio(string path)
|
||||
{
|
||||
var ret = new AudioQueryResult();
|
||||
|
@ -56,11 +57,13 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
if (i != args.Length - 1) sbCmdline.Append(' ');
|
||||
}
|
||||
|
||||
ProcessStartInfo oInfo = new ProcessStartInfo(FFMpegPath, sbCmdline.ToString());
|
||||
oInfo.UseShellExecute = false;
|
||||
oInfo.CreateNoWindow = true;
|
||||
oInfo.RedirectStandardOutput = true;
|
||||
oInfo.RedirectStandardError = true;
|
||||
ProcessStartInfo oInfo = new ProcessStartInfo(FFMpegPath, sbCmdline.ToString())
|
||||
{
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true,
|
||||
RedirectStandardOutput = true,
|
||||
RedirectStandardError = true
|
||||
};
|
||||
|
||||
Process proc = Process.Start(oInfo);
|
||||
string result = proc.StandardError.ReadToEnd();
|
||||
|
@ -89,6 +92,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
|
||||
class AudioDecoder
|
||||
{
|
||||
[Serializable]
|
||||
public class AudioDecoder_Exception : Exception
|
||||
{
|
||||
public AudioDecoder_Exception(string message)
|
||||
|
@ -130,7 +134,9 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
if (Path.GetFileNameWithoutExtension(fi.FullName).ToUpper() == basePath.ToUpper())
|
||||
{
|
||||
if (CheckForAudio(fi.FullName))
|
||||
{
|
||||
return fi.FullName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -143,8 +149,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
{
|
||||
throw new AudioDecoder_Exception("Could not find source audio for: " + Path.GetFileName(audioPath));
|
||||
}
|
||||
FFMpeg ffmpeg = new FFMpeg();
|
||||
return ffmpeg.DecodeAudio(path);
|
||||
return new FFMpeg().DecodeAudio(path);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ using BizHawk.Common;
|
|||
|
||||
namespace BizHawk.Emulation.DiscSystem
|
||||
{
|
||||
[Serializable]
|
||||
public class DiscReferenceException : Exception
|
||||
{
|
||||
public DiscReferenceException(string fname, Exception inner)
|
||||
|
@ -136,7 +137,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
public override void Write(byte[] buffer, int offset, int count) { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public partial class Disc
|
||||
sealed public partial class Disc
|
||||
{
|
||||
/// <summary>
|
||||
/// Main API to read a 2352-byte sector from a disc.
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
TurboCD
|
||||
}
|
||||
|
||||
public partial class Disc
|
||||
sealed public partial class Disc
|
||||
{
|
||||
/// <summary>
|
||||
/// Attempts to determine the type of the disc.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
@ -97,7 +96,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
int Read(long byte_pos, byte[] buffer, int offset, int count);
|
||||
}
|
||||
|
||||
public class Blob_ZeroPadAdapter : IBlob
|
||||
public sealed class Blob_ZeroPadAdapter : IBlob
|
||||
{
|
||||
public Blob_ZeroPadAdapter(IBlob baseBlob, long padFrom, long padLen)
|
||||
{
|
||||
|
@ -152,15 +151,18 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
baseBlob.Dispose();
|
||||
}
|
||||
|
||||
IBlob baseBlob;
|
||||
long padFrom;
|
||||
long padLen;
|
||||
private readonly IBlob baseBlob;
|
||||
private long padFrom;
|
||||
private long padLen;
|
||||
}
|
||||
|
||||
class Blob_RawFile : IBlob
|
||||
private class Blob_RawFile : IBlob
|
||||
{
|
||||
public string PhysicalPath {
|
||||
get { return physicalPath; }
|
||||
get
|
||||
{
|
||||
return physicalPath;
|
||||
}
|
||||
set
|
||||
{
|
||||
physicalPath = value;
|
||||
|
@ -319,7 +321,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
static byte[] TempSector = new byte[2352];
|
||||
}
|
||||
|
||||
protected static byte BCD_Byte(byte val)
|
||||
private static byte BCD_Byte(byte val)
|
||||
{
|
||||
byte ret = (byte)(val % 10);
|
||||
ret += (byte)(16 * (val / 10));
|
||||
|
@ -481,13 +483,13 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
void FromIsoPathInternal(string isoPath)
|
||||
{
|
||||
//make a fake cue file to represent this iso file
|
||||
string isoCueWrapper = @"
|
||||
const string isoCueWrapper = @"
|
||||
FILE ""xarp.barp.marp.farp"" BINARY
|
||||
TRACK 01 MODE1/2048
|
||||
INDEX 01 00:00:00
|
||||
";
|
||||
|
||||
string cueDir = "";
|
||||
string cueDir = String.Empty;
|
||||
var cue = new Cue();
|
||||
CueFileResolver["xarp.barp.marp.farp"] = isoPath;
|
||||
cue.LoadFromString(isoCueWrapper);
|
||||
|
@ -542,8 +544,7 @@ FILE ""xarp.barp.marp.farp"" BINARY
|
|||
{
|
||||
//this is the preferred mode of dumping things. we will always write full sectors.
|
||||
string cue = TOC.GenerateCUE_OneBin(prefs);
|
||||
var bfd = new CueBin.BinFileDescriptor();
|
||||
bfd.name = baseName + ".bin";
|
||||
var bfd = new CueBin.BinFileDescriptor {name = baseName + ".bin"};
|
||||
ret.cue = string.Format("FILE \"{0}\" BINARY\n", bfd.name) + cue;
|
||||
ret.bins.Add(bfd);
|
||||
bfd.SectorSize = 2352;
|
||||
|
@ -563,9 +564,11 @@ FILE ""xarp.barp.marp.farp"" BINARY
|
|||
for (int i = 0; i < TOC.Sessions[0].Tracks.Count; i++)
|
||||
{
|
||||
var track = TOC.Sessions[0].Tracks[i];
|
||||
var bfd = new CueBin.BinFileDescriptor();
|
||||
bfd.name = baseName + string.Format(" (Track {0:D2}).bin", track.num);
|
||||
bfd.SectorSize = Cue.BINSectorSizeForTrackType(track.TrackType);
|
||||
var bfd = new CueBin.BinFileDescriptor
|
||||
{
|
||||
name = baseName + string.Format(" (Track {0:D2}).bin", track.num),
|
||||
SectorSize = Cue.BINSectorSizeForTrackType(track.TrackType)
|
||||
};
|
||||
ret.bins.Add(bfd);
|
||||
int aba = 0;
|
||||
|
||||
|
@ -740,9 +743,7 @@ FILE ""xarp.barp.marp.farp"" BINARY
|
|||
/// </summary>
|
||||
public static BCD2 FromDecimal(int d)
|
||||
{
|
||||
BCD2 ret = new BCD2();
|
||||
ret.DecimalValue = d;
|
||||
return ret;
|
||||
return new BCD2 {DecimalValue = d};
|
||||
}
|
||||
|
||||
|
||||
|
@ -769,7 +770,7 @@ FILE ""xarp.barp.marp.farp"" BINARY
|
|||
/// </summary>
|
||||
public Timestamp(string value)
|
||||
{
|
||||
this.Value = value;
|
||||
Value = value;
|
||||
MIN = int.Parse(value.Substring(0, 2));
|
||||
SEC = int.Parse(value.Substring(3, 2));
|
||||
FRAC = int.Parse(value.Substring(6, 2));
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BizHawk.Emulation.DiscSystem
|
||||
|
|
|
@ -66,7 +66,7 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
// Px ^= (long)bit << (i + j);
|
||||
// }
|
||||
//uint edc_poly = (uint)Px;
|
||||
uint edc_poly = (uint)0x8001801B;
|
||||
const uint edc_poly = 0x8001801B;
|
||||
|
||||
//generate the CRC table
|
||||
uint reverse_edc_poly = Bitrev.reverse_32(edc_poly);
|
||||
|
|
Loading…
Reference in New Issue