// Token: 0x06003268 RID: 12904 RVA: 0x001478A8 File Offset: 0x00145AA8
            public int Compare(SingleTrackChunksConverter.EventDescriptor x, SingleTrackChunksConverter.EventDescriptor y)
            {
                long num = x.AbsoluteTime - y.AbsoluteTime;

                if (num != 0L)
                {
                    return((int)(num / Math.Abs(num)));
                }
                MetaEvent metaEvent  = x.Event as MetaEvent;
                MetaEvent metaEvent2 = y.Event as MetaEvent;

                if (metaEvent != null && metaEvent2 == null)
                {
                    return(-1);
                }
                if (metaEvent == null && metaEvent2 != null)
                {
                    return(1);
                }
                if (metaEvent == null && metaEvent2 == null)
                {
                    return(0);
                }
                int num2 = x.Channel - y.Channel;

                if (num2 != 0)
                {
                    return(num2);
                }
                ChannelPrefixEvent channelPrefixEvent  = x.Event as ChannelPrefixEvent;
                ChannelPrefixEvent channelPrefixEvent2 = y.Event as ChannelPrefixEvent;

                if (channelPrefixEvent != null && channelPrefixEvent2 == null)
                {
                    return(-1);
                }
                if (channelPrefixEvent == null && channelPrefixEvent2 != null)
                {
                    return(1);
                }
                return(0);
            }
        // Token: 0x060033A3 RID: 13219 RVA: 0x00148300 File Offset: 0x00146500
        public MidiEvent Read(MidiReader reader, ReadingSettings settings, byte currentStatusByte)
        {
            byte   b   = reader.ReadByte();
            int    num = reader.ReadVlqNumber();
            string typeName;

            MetaEventReader.TryGetEventType(b, out typeName);
            MetaEvent @event   = this.GetEvent(typeName, b);
            long      position = reader.Position;

            @event.Read(reader, settings, num);
            long num2 = reader.Position - position;
            long num3 = (long)num - num2;

            if (num3 > 0L)
            {
                reader.Position += num3;
            }
            return(@event);
        }