コード例 #1
0
        public void ReadTest()
        {
            var Cso       = new Cso(File.OpenRead("../../../TestInput/cube.cso"));
            var IsoBytes  = File.ReadAllBytes("../../../TestInput/cube.iso");
            var CsoStream = new CsoProxyStream(Cso);

            Assert.AreEqual(0x72800, CsoStream.Length);
            var Data  = new byte[2048];
            var Data2 = new byte[3000];

            Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length));
            Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length));
            Assert.AreEqual(3000, CsoStream.Read(Data2, 0, 3000));

            CsoStream.Position = 0x72800 - Data.Length;
            Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length));

            CsoStream.Position = 0x72800 - 10;
            Assert.AreEqual(10, CsoStream.Read(Data, 0, 10));

            CsoStream.Position = 0x72800 - 10;
            Assert.AreEqual(10, CsoStream.Read(Data, 0, 100));

            CollectionAssert.AreEqual(
                IsoBytes,
                CsoStream.ReadAll(true)
                );

            CsoStream.Position = 0x10 * 2048 - 100;
            CollectionAssert.AreEqual(
                IsoBytes.Slice(0x10 * 2048 - 100, 300),
                CsoStream.ReadBytes(300)
                );
        }
コード例 #2
0
        public IsoFile SetIso(string IsoFile)
        {
            var    IsoFileStream = (Stream)File.OpenRead(IsoFile);
            string DetectedFormat;

            switch (DetectedFormat = new FormatDetector().Detect(IsoFileStream))
            {
            case "Cso":
                IsoFileStream = new CsoProxyStream(new Cso(IsoFileStream));
                break;

            case "Iso":
                break;

            default:
                throw (new InvalidDataException("Can't set an ISO for '" + DetectedFormat + "'"));
            }
            //"../../../TestInput/cube.iso"
            var Iso = new IsoFile(IsoFileStream, IsoFile);
            var Umd = new HleIoDriverIso(Iso);

            HleState.HleIoManager.SetDriver("disc:", Umd);
            HleState.HleIoManager.SetDriver(":", Umd);
            return(Iso);
        }