示例#1
0
文件: OJNList.cs 项目: Estrol/X3Solo
        public bool Update(int id, OJN header)
        {
            if (headers.ContainsKey(header.Id))
            {
                headers[id] = header;
                return(Modified = true);
            }

            return(false);
        }
示例#2
0
文件: OJNList.cs 项目: Estrol/X3Solo
        public bool Add(OJN header)
        {
            if (!headers.ContainsKey(header.Id))
            {
                headers.Add(header.Id, header);
                return(Modified = true);
            }

            return(false);
        }
示例#3
0
        public static byte[] Encode(OJN header, bool headerOnly = false)
        {
            byte[] data = new byte[300];
            if (File.Exists(header.Source) && !headerOnly)
            {
                data = File.ReadAllBytes(header.Source);
            }

            using MemoryStream mstream = new(data);
            using BinaryWriter writer  = new(mstream);

            writer.Write(header.Id);
            writer.Write(header.Signature);
            writer.Write(header.EncodingVersion);
            writer.Write((int)header.Genre);
            writer.Write(header.BPM);
            writer.Write(header.LevelEx);
            writer.Write(header.LevelNx);
            writer.Write(header.LevelHx);
            writer.Write(header.Padding);
            writer.Write(header.EventCountEx);
            writer.Write(header.EventCountNx);
            writer.Write(header.EventCountHx);
            writer.Write(header.NoteCountEx);
            writer.Write(header.NoteCountNx);
            writer.Write(header.NoteCountHx);
            writer.Write(header.MeasureCountEx);
            writer.Write(header.MeasureCountNx);
            writer.Write(header.MeasureCountHx);
            writer.Write(header.BlockCountEx);
            writer.Write(header.BlockCountNx);
            writer.Write(header.BlockCountHx);
            writer.Write(header.OldEncodingVersion);
            writer.Write(header.OldSongId);
            writer.Write(header.OldGenre);
            writer.Write(header.ThumbnailSize);
            writer.Write(header.FileVersion);
            writer.Write(header.Title);
            writer.Write(header.Artist);
            writer.Write(header.Pattern);
            writer.Write(header.OJM);
            writer.Write(header.CoverSize);
            writer.Write(header.DurationEx);
            writer.Write(header.DurationNx);
            writer.Write(header.DurationHx);
            writer.Write(header.BlockOffsetEx);
            writer.Write(header.BlockOffsetNx);
            writer.Write(header.BlockOffsetHx);
            writer.Write(header.CoverOffset);

            return(mstream.ToArray());
        }
示例#4
0
文件: OJNList.cs 项目: Estrol/X3Solo
 public bool Remove(OJN header)
 {
     return(Modified = headers.Remove(header.Id));
 }