private void ReadDat4File(string filename) { if (filename.Length < 1 || !File.Exists(filename)) { return; } StringBuilder builder = new StringBuilder(); var md = new RageAudioMetadata5(); using (RageDataFileReadReference file = new RageDataFileReadReference(filename)) { md.Read(file); } // using (RageDataFileWriteReference file = new RageDataFileWriteReference(Path.ChangeExtension(filename, ".output.rel54"))) // { // md.Write(file); // } // File.WriteAllText(Path.ChangeExtension(filename, ".txt"), md.ToString()); var xml = new ResourceXmlWriter5(Path.ChangeExtension(filename, ".xml")); xml.WriteData(md); /* * using (StreamWriter writer = new StreamWriter(Path.ChangeExtension(filename, ".txt"))) * { * writer.Write(md.ToString()); * }*/ }
public void WriteData(RageAudioMetadata5 data) { using (var writer = XmlWriter.Create(_filename, new XmlWriterSettings() { Indent = true, WriteEndDocumentOnClose = true })) { writer.WriteStartDocument(); writer.WriteStartElement(data.Type.ToString()); writer.WriteStartElement("waveContainers"); foreach (var item in data.StringTable) { writer.WriteElementString("item", item); } writer.WriteEndElement(); writer.WriteStartElement("dataEntries"); foreach (var item in data.DataItems) { Serialize(writer, item); // writer.WriteWhitespace("\n\n"); } writer.WriteEndElement(); /* * writer.WriteStartElement("waveTracks"); * * foreach (var item in data.WaveTracks) * { * writer.WriteElementString("item", item.Value.ToString()); * } * * writer.WriteEndElement();*/ /* writer.WriteStartElement("waveContainers"); * * foreach (var item in data.WaveContainers) * { * writer.WriteElementString("item", item.Value.ToString()); * } * * writer.WriteEndElement(); * */ writer.WriteEndElement(); writer.Close(); } }
public RageAudioMetadata5 ReadData() { RageAudioMetadata5 data = new RageAudioMetadata5 { Type = RageAudioMetadataFileType.Dat54DataEntries }; List <string> stringTable = new List <string>(); List <audSoundBase> sounds = new List <audSoundBase>(); using (XmlReader reader = XmlReader.Create(_filename)) { reader.ReadToFollowing("waveContainers"); if (reader.ReadToDescendant("item")) { string str = reader.ReadElementContentAsString(); stringTable.Add(str); while (reader.ReadToNextSibling("item")) { str = reader.ReadElementContentAsString(); stringTable.Add(str); } } data.StringTable = stringTable.ToArray(); reader.ReadToFollowing("dataEntries"); while (reader.Read()) { if (!reader.IsEmptyElement && reader.NodeType == XmlNodeType.Element && reader.Name != string.Empty) { if (!reader.IsStartElement()) { break; } var result = DeserializeSound(reader, reader.Name); if (result != null) { sounds.Add(result); } } } data.DataItems = sounds.ToArray(); } return(data); }