示例#1
0
        // Token: 0x060033BA RID: 13242 RVA: 0x001486D0 File Offset: 0x001468D0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (writeStatusByte)
            {
                writer.WriteByte(byte.MaxValue);
            }
            UnknownMetaEvent unknownMetaEvent = midiEvent as UnknownMetaEvent;
            byte             statusByte;

            if (unknownMetaEvent != null)
            {
                statusByte = unknownMetaEvent.StatusByte;
            }
            else
            {
                Type type = midiEvent.GetType();
                if (!StandardEventTypes.Meta.TryGetStatusByte(type, out statusByte))
                {
                    EventTypesCollection customMetaEventTypes = settings.CustomMetaEventTypes;
                    if (customMetaEventTypes != null)
                    {
                        bool flag = !customMetaEventTypes.TryGetStatusByte(type, out statusByte);
                    }
                }
            }
            writer.WriteByte(statusByte);
            int size = midiEvent.GetSize(settings);

            writer.WriteVlqNumber(size);
            midiEvent.Write(writer, settings);
        }
 /// <summary>
 /// Writes content of a MIDI meta event.
 /// </summary>
 /// <param name="writer">Writer to write the content with.</param>
 /// <param name="settings">Settings according to which the event's content must be written.</param>
 protected override void WriteContent(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteByte(Numerator);
     writer.WriteByte((byte)Math.Log(Denominator, 2));
     writer.WriteByte(ClocksPerClick);
     writer.WriteByte(NumberOf32ndNotesPerBeat);
 }
示例#3
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (writeStatusByte)
            {
                writer.WriteByte(EventStatusBytes.Global.Meta);
            }

            //

            byte statusByte;

            var unknownMetaEvent = midiEvent as UnknownMetaEvent;

            if (unknownMetaEvent != null)
            {
                statusByte = unknownMetaEvent.StatusByte;
            }
            else
            {
                var eventType = midiEvent.GetType();
                if (!StandardEventTypes.Meta.TryGetStatusByte(eventType, out statusByte) && settings.CustomMetaEventTypes?.TryGetStatusByte(eventType, out statusByte) != true)
                {
                    Debug.Fail($"Unable to write the {eventType} event.");
                }
            }

            writer.WriteByte(statusByte);

            //

            var contentSize = midiEvent.GetSize(settings);

            writer.WriteVlqNumber(contentSize);
            midiEvent.Write(writer, settings);
        }
示例#4
0
 // Token: 0x06003379 RID: 13177 RVA: 0x00017522 File Offset: 0x00015722
 protected override void WriteContent(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteByte(this.GetFormatAndHours());
     writer.WriteByte(this.Minutes);
     writer.WriteByte(this.Seconds);
     writer.WriteByte(this.Frames);
     writer.WriteByte(this.SubFrames);
 }
示例#5
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            VerifyEvent(midiEvent);

            //

            if (writeStatusByte)
            {
                var eventType = midiEvent.GetType();

                byte statusByte;
                if (!StandardEventTypes.Channel.TryGetStatusByte(eventType, out statusByte))
                {
                    Debug.Fail($"Unable to write the {eventType} event.");
                }

                var channel = ((ChannelEvent)midiEvent).Channel;

                var totalStatusByte = DataTypesUtilities.Combine((FourBitNumber)statusByte, channel);
                writer.WriteByte(totalStatusByte);
            }

            //

            midiEvent.Write(writer, settings);
        }
 /// <summary>
 /// Writes content of a MIDI event.
 /// </summary>
 /// <param name="writer">Writer to write the content with.</param>
 /// <param name="settings">Settings according to which the event's content must be written.</param>
 internal sealed override void Write(MidiWriter writer, WritingSettings settings)
 {
     foreach (var parameter in _parameters)
     {
         writer.WriteByte(parameter);
     }
 }
示例#7
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            VerifyEvent(midiEvent);

            //

            if (writeStatusByte)
            {
                var eventType = midiEvent.GetType();

                byte statusByte;
                if (!StandardEventTypes.SysEx.TryGetStatusByte(eventType, out statusByte))
                {
                    Debug.Fail($"Unable to write the {eventType} event.");
                }

                writer.WriteByte(statusByte);
            }

            //

            var contentSize = midiEvent.GetSize(settings);

            writer.WriteVlqNumber(contentSize);
            midiEvent.Write(writer, settings);
        }
示例#8
0
 // Token: 0x060032AC RID: 12972 RVA: 0x00147ACC File Offset: 0x00145CCC
 internal sealed override void Write(MidiWriter writer, WritingSettings settings)
 {
     foreach (SevenBitNumber number in this._parameters)
     {
         writer.WriteByte(number);
     }
 }
示例#9
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (midiEvent == null)
            {
                throw new ArgumentNullException(nameof(midiEvent));
            }

            if (!(midiEvent is MetaEvent))
            {
                throw new ArgumentException("Event is not Meta event.", nameof(midiEvent));
            }

            //

            if (writeStatusByte)
            {
                writer.WriteByte(EventStatusBytes.Global.Meta);
            }

            //

            byte statusByte;

            var unknownMetaEvent = midiEvent as UnknownMetaEvent;

            if (unknownMetaEvent != null)
            {
                statusByte = unknownMetaEvent.StatusByte;
            }
            else
            {
                var eventType = midiEvent.GetType();
                if (!StandardEventTypes.Meta.TryGetStatusByte(eventType, out statusByte) && settings.CustomMetaEventTypes?.TryGetStatusByte(eventType, out statusByte) != true)
                {
                    throw new InvalidOperationException($"Unable to write the {eventType} event.");
                }
            }

            writer.WriteByte(statusByte);

            //

            var contentSize = midiEvent.GetSize();

            writer.WriteVlqNumber(contentSize);
            midiEvent.Write(writer, settings);
        }
        internal override void Write(MidiWriter writer, WritingSettings settings)
        {
            var component = Component;

            var componentValueMask = ComponentValueMasks[component];
            var componentValue     = ComponentValue & componentValueMask;

            var data = DataTypesUtilities.Combine((FourBitNumber)(byte)component,
                                                  (FourBitNumber)(byte)componentValue);

            writer.WriteByte(data);
        }
 // Token: 0x060033B0 RID: 13232 RVA: 0x00148648 File Offset: 0x00146848
 public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
 {
     if (writeStatusByte)
     {
         Type type = midiEvent.GetType();
         byte number;
         StandardEventTypes.Channel.TryGetStatusByte(type, out number);
         FourBitNumber channel = ((ChannelEvent)midiEvent).Channel;
         byte          value   = DataTypesUtilities.Combine((FourBitNumber)number, channel);
         writer.WriteByte(value);
     }
     midiEvent.Write(writer, settings);
 }
示例#12
0
        // Token: 0x060033BF RID: 13247 RVA: 0x00148774 File Offset: 0x00146974
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (writeStatusByte)
            {
                Type type = midiEvent.GetType();
                byte value;
                StandardEventTypes.SysEx.TryGetStatusByte(type, out value);
                writer.WriteByte(value);
            }
            int size = midiEvent.GetSize(settings);

            writer.WriteVlqNumber(size);
            midiEvent.Write(writer, settings);
        }
示例#13
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (writeStatusByte)
            {
                var eventType = midiEvent.GetType();

                byte statusByte;
                if (!StandardEventTypes.SystemRealTime.TryGetStatusByte(eventType, out statusByte))
                {
                    Debug.Fail($"Unable to write the {eventType} event.");
                }

                writer.WriteByte(statusByte);
            }

            midiEvent.Write(writer, settings);
        }
示例#14
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (midiEvent == null)
            {
                throw new ArgumentNullException(nameof(midiEvent));
            }

            var sysExEvent = midiEvent as SysExEvent;

            if (sysExEvent == null)
            {
                throw new ArgumentException("Event is not SysEx event.", nameof(midiEvent));
            }

            //

            if (writeStatusByte)
            {
                var eventType = midiEvent.GetType();

                byte statusByte;
                if (!StandardEventTypes.SysEx.TryGetStatusByte(eventType, out statusByte))
                {
                    throw new InvalidOperationException($"Unable to write the {eventType} event.");
                }

                writer.WriteByte(statusByte);
            }

            //

            var contentSize = midiEvent.GetSize();

            writer.WriteVlqNumber(contentSize);
            midiEvent.Write(writer, settings);
        }
示例#15
0
        public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte)
        {
            if (midiEvent == null)
            {
                throw new ArgumentNullException(nameof(midiEvent));
            }

            var channelEvent = midiEvent as ChannelEvent;

            if (channelEvent == null)
            {
                throw new ArgumentException("Event is not Channel event.", nameof(midiEvent));
            }

            //

            if (writeStatusByte)
            {
                var eventType = midiEvent.GetType();

                byte statusByte;
                if (!StandardEventTypes.Channel.TryGetStatusByte(eventType, out statusByte))
                {
                    throw new InvalidOperationException($"Unable to write the {eventType} event.");
                }

                var channel = channelEvent.Channel;

                var totalStatusByte = DataTypesUtilities.Combine((FourBitNumber)statusByte, channel);
                writer.WriteByte(totalStatusByte);
            }

            //

            midiEvent.Write(writer, settings);
        }
示例#16
0
 // Token: 0x0600332E RID: 13102 RVA: 0x000171A2 File Offset: 0x000153A2
 protected override void WriteContent(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteSByte(this.Key);
     writer.WriteByte(this.Scale);
 }
示例#17
0
 // Token: 0x0600330C RID: 13068 RVA: 0x0001704D File Offset: 0x0001524D
 protected override void WriteContent(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteByte(this.Channel);
 }
 internal override void Write(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteByte(_lsb);
     writer.WriteByte(_msb);
 }
示例#19
0
 internal override void Write(MidiWriter writer, WritingSettings settings)
 {
     writer.WriteByte(Number);
 }