AlphaTab.Audio.Model.MidiTrack.WriteTo C# (CSharp) Method

WriteTo() public method

public WriteTo ( IWriteable s ) : void
s IWriteable
return void
        public void WriteTo(IWriteable s)
        {
            // build track data first
            var trackData = ByteBuffer.Empty();
            var current = FirstEvent;
            int count = 0;
            while (current != null)
            {
                current.WriteTo(trackData);
                current = current.NextEvent;
                count++;
            }

            // magic number "MTrk" (0x4D54726B)
            var b = new byte[] { 0x4D, 0x54, 0x72, 0x6B };
            s.Write(b, 0, b.Length);

            // size as integer
            var data = trackData.ToArray();
            var l = data.Length;
            b = new[]{
              (byte)((l >> 24) & 0xFF), (byte)((l >> 16) & 0xFF),
              (byte)((l >> 8) & 0xFF), (byte)((l >> 0) & 0xFF)
            };
            s.Write(b, 0, b.Length);
            s.Write(data, 0, data.Length);
        }