示例#1
0
        public void Read()
        {
            Logger.Trace("Reading header...");
            var header = Header.ReadFrom(_stream, OutputDirectory);

            Logger.Trace("Header was read:");
            Logger.Trace("Signature: {0}, Unknown: {1}, ParametersSize: {2}, IsValid: {3}", header.Signature,
                         header.Unknown,
                         header.ParametersSize, header.IsValid);
            if (!header.IsValid)
            {
                return;
            }

            Logger.Trace("Reading parameter offsets...");
            var parametersStream = StreamBlock(_stream, (int)header.ParametersSize);

            Logger.Trace("Parameter offsets were read from file");
            Logger.Trace("Reading parameters descriptor...");
            var mainParam = Parameter.ReadFrom(parametersStream);

            Logger.Trace("Parameters descriptor was read:");
            var parametrsTableLength = mainParam.Children[0].Value;
            var imagesCount          = mainParam.Children[1].Value;

            Logger.Trace($"ParametrsTableLength: {parametrsTableLength}, ImagesCount: {imagesCount}");

            Logger.Trace("Reading parameters locations...");
            var parametersLocations = Parameter.ReadList(parametersStream);

            Logger.Trace("Watch face parameters locations were read:");

            Parameters = ReadParameters(parametrsTableLength, parametersLocations);
            Resources  = new Resources.Reader(_stream).Read((uint)imagesCount);
        }
示例#2
0
        public EmulatorHomeViewModel()
        {
            //Setup Paint and Touch Commands for SKView elements
            PaintEmulatorCommand   = new Command <SKPaintSurfaceEventArgs>(PaintEmulator);
            PaintControllerCommand = new Command <SKPaintSurfaceEventArgs>(PaintController);
            PaintConsoleCommand    = new Command <SKPaintSurfaceEventArgs>(PaintConsole);
            TouchConsoleCommand    = new Command <SKTouchEventArgs>(TouchConsole);
            TouchControllerCommand = new Command <SKTouchEventArgs>(TouchController);

            //Setup Renderer
            _resourceReader = new Resources.Reader();
            _renderer       = new SKBitmapRenderer();

            //Setup Emulator
            _emu = new NESEmulator(_resourceReader.GetResource(ResourceRom), GetFrameFromEmulator);

            //Setup Static Generator
            _renderStaticTask = Task.Factory.StartNew(RenderStatic);
        }
示例#3
0
        public void Read()
        {
            Logger.Trace("阅读头文件...");
            var header = Header.ReadFrom(_stream);

            Logger.Trace("已读:");
            Logger.Trace("已签名: {0}, 未知: {1}, 参数大小: {2}, 错误(非法): {3}", header.Signature,
                         header.Unknown,
                         header.ParametersSize, header.IsValid);
            if (!header.IsValid)
            {
                return;
            }

            Logger.Trace("读取偏移参数...");
            var parametersStream = StreamBlock(_stream, (int)header.ParametersSize);

            Logger.Trace("偏移参数已从文件读取");

            Logger.Trace("读取参数标识符...");
            var mainParam = Parameter.ReadFrom(parametersStream);

            Logger.Trace("参数标识符已读取:");
            var parametrsTableLength = mainParam.Children[0].Value;
            var imagesCount          = mainParam.Children[1].Value;

            Logger.Trace($"参数表长: {parametrsTableLength}, 图像数: {imagesCount}");

            Logger.Trace("读取位置参数...");
            var parametersLocations = Parameter.ReadList(parametersStream);

            Logger.Trace("表盘位置参数读取已读取:");

            Parameters = ReadParameters(parametrsTableLength, parametersLocations);
            Resources  = new Resources.Reader(_stream).Read((uint)imagesCount);
        }