CSharpSynth.Midi.MidiFile.GetTime C# (CSharp) Method

GetTime() private method

private GetTime ( UInt32 data, UInt16 &numOfBytes ) : uint
data System.UInt32
numOfBytes System.UInt16
return uint
        private uint GetTime(UInt32 data, ref UInt16 numOfBytes)
        {
            byte[] buff = BitConverter.GetBytes(data); numOfBytes++;
            for (int i = 0; i < buff.Length; i++) { if ((buff[i] & 0x80) > 0) { numOfBytes++; } else { break; } }
            for (int i = numOfBytes; i < 4; i++) buff[i] = 0x00;
            Array.Reverse(buff);
            data = BitConverter.ToUInt32(buff, 0);
            data >>= (32 - (numOfBytes * 8));
            UInt32 b = data;
            UInt32 bffr = (data & 0x7F);
            int c = 1;
            while ((data >>= 8) > 0)
            {
                bffr |= ((data & 0x7F) << (7 * c)); c++;
            }
            return bffr;
        }