コード例 #1
0
        public static ITimeSpan GetDuration(this MidiFile midiFile, TimeSpanType durationType)
        {
            ThrowIfArgument.IsNull(nameof(midiFile), midiFile);
            ThrowIfArgument.IsInvalidEnumValue(nameof(durationType), durationType);

            var tempoMap = midiFile.GetTempoMap();

            return(midiFile.GetTimedEvents().LastOrDefault()?.TimeAs(durationType, tempoMap) ??
                   TimeSpanUtilities.GetZeroTimeSpan(durationType));
        }
コード例 #2
0
        public static TTimeSpan GetDuration <TTimeSpan>(this MidiFile midiFile)
            where TTimeSpan : class, ITimeSpan
        {
            ThrowIfArgument.IsNull(nameof(midiFile), midiFile);

            var tempoMap = midiFile.GetTempoMap();

            return(midiFile.GetTimedEvents().LastOrDefault()?.TimeAs <TTimeSpan>(tempoMap) ??
                   TimeSpanUtilities.GetZeroTimeSpan <TTimeSpan>());
        }