public static byte[] ReadSinUUID(string sinfile) { using (Stream stream = new FileStream(sinfile, FileMode.Open, FileAccess.Read)) using (BinaryReader br = new BinaryReader(stream)) { if (SinFile.GetSinVersion(br) == 2) { return(null); } return(SinFileV3.GetUUID(br)); } }
public static int GetDataStart(BinaryReader br) { int SinVer = GetSinVersion(br); switch (SinVer) { case 2: return(SinFileV2.GetDataStart(br)); case 3: return(SinFileV3.GetDataStart(br)); default: throw new Exception("GetDataStart: Unknown Version (" + SinVer + ")"); } }
public static void ExtractSin(BackgroundWorker sender, string sinfile, string outfile, bool log = true) { using (FileStream stream = new FileStream(sinfile, FileMode.Open, FileAccess.Read)) using (BinaryReader br = new BinaryReader(stream)) { if (log) { Logger.WriteLog("Verifying extracted Sin File"); } ; if (!SinFile.VerifySin(br)) { sender.CancelAsync(); return; } List <SinFile.BlockInfoHeader> bihs = null; int SinVer = SinFile.GetSinVersion(br); switch (SinVer) { case 2: bihs = SinFileV2.GetBIHs(br); break; case 3: bihs = SinFileV3.GetBIHs(br); break; } if (log) { Logger.WriteLog("Extracting image from Sin File " + Path.GetFileName(sinfile)); } SinExtract.ExtractSinData(sender, br, bihs, outfile, log); } }