MidiSheetMusic.MidiFile.GetTrackLength C# (CSharp) Method

GetTrackLength() private static method

private static GetTrackLength ( List events ) : int
events List
return int
        private static int GetTrackLength(List<MidiEvent> events)
        {
            int len = 0;
            byte[] buf = new byte[1024];
            foreach (MidiEvent mevent in events) {
            len += VarlenToBytes(mevent.DeltaTime, buf, 0);
            len += 1;  /* for eventflag */
            switch (mevent.EventFlag) {
                case EventNoteOn: len += 2; break;
                case EventNoteOff: len += 2; break;
                case EventKeyPressure: len += 2; break;
                case EventControlChange: len += 2; break;
                case EventProgramChange: len += 1; break;
                case EventChannelPressure: len += 1; break;
                case EventPitchBend: len += 2; break;

                case SysexEvent1:
                case SysexEvent2:
                    len += VarlenToBytes(mevent.Metalength, buf, 0);
                    len += mevent.Metalength;
                    break;
                case MetaEvent:
                    len += 1;
                    len += VarlenToBytes(mevent.Metalength, buf, 0);
                    len += mevent.Metalength;
                    break;
                default: break;
            }
            }
            return len;
        }