initial commit

This commit is contained in:
what 2021-07-26 13:04:16 -07:00
commit 1b60743303
274 changed files with 25866 additions and 0 deletions

View file

@ -0,0 +1,14 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.CDROMDataModeType
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public enum CDROMDataModeType : byte
{
MODE1_RAW = 1,
MODE2_RAW = 2,
}
}

View file

@ -0,0 +1,58 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.CDROMFrameHeaderConverter
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
namespace ImageReader.DiscSectors
{
public class CDROMFrameHeaderConverter
{
public static readonly ushort CDROM_FRAME_HEADER_SIZE = 16;
private static readonly byte[] CDROM_FRAME_HEADER_SYNC = new byte[12]
{
(byte) 0,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
byte.MaxValue,
(byte) 0
};
public static CDROMDataModeType ToCDROMFrameHeader(
byte[] buffer,
int startIndex)
{
if (buffer.Length < startIndex + (int) CDROMFrameHeaderConverter.CDROM_FRAME_HEADER_SIZE)
throw new ArgumentOutOfRangeException();
GCHandle gcHandle = GCHandle.Alloc((object) buffer, GCHandleType.Pinned);
CDROMFrameHeaderConverter.CDROMFrameHeader structure = (CDROMFrameHeaderConverter.CDROMFrameHeader) Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof (CDROMFrameHeaderConverter.CDROMFrameHeader));
gcHandle.Free();
if (((IEnumerable<byte>) CDROMFrameHeaderConverter.CDROM_FRAME_HEADER_SYNC).Where<byte>((Func<byte, int, bool>) ((t, i) => (int) t != (int) buffer[i])).Any<byte>())
throw new FormatException();
return Enum.IsDefined(typeof (CDROMDataModeType), (object) structure.Mode) ? structure.Mode : throw new FormatException();
}
[StructLayout(LayoutKind.Explicit, Size = 16)]
private struct CDROMFrameHeader
{
[FieldOffset(0)]
public byte Sync;
[FieldOffset(12)]
public byte Address;
[FieldOffset(15)]
public CDROMDataModeType Mode;
}
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.CDROMMode1RawSector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class CDROMMode1RawSector : DiscSectorBase
{
public override int Size => 2352;
public override int DataOffset => 16;
public override int DataLength => 2048;
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.CDROMXAMode2Form1RawSector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class CDROMXAMode2Form1RawSector : DiscSectorBase
{
public override int Size => 2352;
public override int DataOffset => 24;
public override int DataLength => 2048;
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.CDROMXAMode2Form1Sector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class CDROMXAMode2Form1Sector : DiscSectorBase
{
public override int Size => 2336;
public override int DataOffset => 8;
public override int DataLength => 2048;
}
}

View file

@ -0,0 +1,33 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.DiscSectorBase
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
using System;
namespace ImageReader.DiscSectors
{
public abstract class DiscSectorBase : IDiscSector
{
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (this == obj)
return true;
if (!(obj is IDiscSector))
return false;
IDiscSector discSector = obj as IDiscSector;
return this.Size == discSector.Size && this.DataOffset == discSector.DataOffset && this.DataLength == discSector.DataLength;
}
public override int GetHashCode() => ((17 * 23 + this.Size) * 23 + this.DataOffset) * 23 + this.DataLength;
public virtual int Size => throw new NotImplementedException();
public virtual int DataOffset => throw new NotImplementedException();
public virtual int DataLength => throw new NotImplementedException();
}
}

View file

@ -0,0 +1,14 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.DiscSectorCommon
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class DiscSectorCommon
{
public static readonly int RawSectorSize = 2352;
public static readonly int LogicalSectorSize = 2048;
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.IDiscSector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public interface IDiscSector
{
int Size { get; }
int DataOffset { get; }
int DataLength { get; }
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.ISO9660Sector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class ISO9660Sector : DiscSectorBase
{
public override int Size => 2048;
public override int DataOffset => 0;
public override int DataLength => 2048;
}
}

View file

@ -0,0 +1,17 @@
// Decompiled with JetBrains decompiler
// Type: ImageReader.DiscSectors.RawSector
// Assembly: ImageReader, Version=1.5.2.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: E0717604-B50B-4CB4-B85C-C17F43D5C04B
// Assembly location: ImageReader.dll
namespace ImageReader.DiscSectors
{
public class RawSector : DiscSectorBase
{
public override int Size => 2352;
public override int DataOffset => 0;
public override int DataLength => 2352;
}
}