public void LoadTape(byte[] tapeBuffer) { _remote.SendCoreRequest(CoreRequest.LoadTape(tapeBuffer)); }
static public CoreRequest CoreRequestFromBytes(MemoryByteStream stream) { byte type = stream.ReadByte(); switch (type) { case _coreActionKeyPress: { byte keyCode = stream.ReadByte(); bool keyDown = stream.ReadBool(); return(CoreRequest.KeyPress(keyCode, keyDown)); } case _coreActionReset: { return(CoreRequest.Reset()); } case _coreActionLoadDisc: { byte drive = stream.ReadByte(); byte[] media = stream.ReadArray(); return(CoreRequest.LoadDisc(drive, media)); } case _coreActionLoadTape: { byte[] media = stream.ReadArray(); return(CoreRequest.LoadTape(media)); } case _coreActionRunUntil: { UInt64 stopTicks = stream.ReadUInt64(); return(CoreRequest.RunUntil(stopTicks)); } case _coreActionLoadCore: { byte[] state = stream.ReadArray(); return(CoreRequest.LoadCore(new MemoryBlob(state))); } case _coreActionCoreVersion: { Int32 version = stream.ReadInt32(); return(CoreRequest.CoreVersion(version)); } case _coreActionCreateSnapshot: { Int32 snapshotId = stream.ReadInt32(); return(CoreRequest.CreateSnapshot(snapshotId)); } case _coreActionDeleteSnapshot: { Int32 snapshotId = stream.ReadInt32(); return(CoreRequest.DeleteSnapshot(snapshotId)); } case _coreActionRevertToSnapshot: { Int32 snapshotId = stream.ReadInt32(); return(CoreRequest.RevertToSnapshot(snapshotId, null)); } default: throw new Exception(String.Format("Unknown CoreRequest type {0}!", type)); } }
/// <summary> /// Asynchronously loads a tape and begins playing it. /// </summary> /// <param name="tapeImage">A byte array containing an uncompressed .CDT image.</param> public void LoadTape(byte[] tapeImage) { PushRequest(CoreRequest.LoadTape(tapeImage)); }