public void ConvertAll(MusicDefinition definition) { var module = File.ReadAllBytes(definition.Module.FromInputFolder()); _writer.StartObject(ObjectType.Fast, "menuMusic"); _writer.WriteBlob(module); _writer.EndObject(); var samples = File.ReadAllBytes(definition.Samples.FromInputFolder()); _writer.StartObject(ObjectType.Chip, "menuSamples"); _writer.WriteBlob(samples); _writer.EndObject(); }
public GameMusic() { m_tracks = new Dictionary <string, Music>(); Asset <AssetList> assetListMusic = Engine.AssetManager.GetAsset <AssetList>("Audio/Music.lua"); foreach (AssetDefinition assetDefMusic in assetListMusic.Content.Definitions) { AssetInstantiationResult musicDefinitionRes = AssetInstanciator.CreateInstance(assetDefMusic, typeof(MusicDefinition)); MusicDefinition musicDefinition = (MusicDefinition)musicDefinitionRes.Instance; Music music = Music.Create(musicDefinition); m_tracks.Add(assetDefMusic.Name, music); } }
public async Task <bool> ValidateFileAsync(MusicDefinition md, Stream stream) { // Validate file header value var buffer = new byte[HEADER.Length]; stream.Position = 0; await stream.ReadAsync(buffer, 0, HEADER.Length); var fileHeader = Encoding.ASCII.GetString(buffer); if (string.IsNullOrWhiteSpace(fileHeader)) { return(false); } if (!fileHeader.Equals(HEADER, StringComparison.Ordinal)) { return(false); } // Validate game number in 0x08 and 0x09 pos stream.Position = 0x08; var minor = stream.ReadByte(); var major = stream.ReadByte(); if (md.Product.PackInfo.MetaInfo?.ContainsKey("ZWAVID_08") != true || md.Product.PackInfo.MetaInfo?.ContainsKey("ZWAVID_09") != true) { throw new TMRIException("Missing ZWAVID_08 or ZWAVID_09 values in PackInfo struct."); } var zwavid08 = ((JsonElement)md.Product.PackInfo.MetaInfo["ZWAVID_08"]).GetInt32(); var zwavid09 = ((JsonElement)md.Product.PackInfo.MetaInfo["ZWAVID_09"]).GetInt32(); if (minor != zwavid08 || major != zwavid09) { return(false); } return(true); }
public async Task <bool> ValidateFileAsync(MusicDefinition md, string file) { await using var fs = new FileStream(file, FileMode.Open); return(await ValidateFileAsync(md, fs)); }