示例#1
0
        public IAsyncOperation <ROMData> LoadROMAsync(ROMEntry entry)
        {
            IStorageFile           file          = entry.File;
            String                 fileExtension = this.GetFileExtension(file).ToLower();
            Func <Task <ROMData> > helper        = async() =>
            {
                ROMData romData = new ROMData();
                if (fileExtension == "zip")
                {
                    var zipData = await this.GetBytesFromZipFileAsync(file, this.romFileExtensions);

                    romData.data          = zipData.Bytes;
                    romData.fileExtension = zipData.ROMExtension;
                }
                else
                {
                    romData.data = await this.GetBytesFromFileAsync(file);

                    romData.fileExtension = this.GetFileExtension(file);
                }

                romData.file = file;
                romData.size = (uint)romData.data.Length;

                if (this.currentROM != null)
                {
                    this.currentROM.CheatCache = null;
                }
                this.currentROM = entry;

                return(romData);
            };

            return(helper().AsAsyncOperation <ROMData>());
        }
示例#2
0
 internal static ROMData FromUtility(Utility.ROMData data)
 {
     return(new ROMData()
     {
         size = data.Size,
         file = data.File,
         fileExtension = data.FileExtension,
         data = data.Data
     });
 }