66 template <
typename...
Data>
70 jassert (size > 3 ||
byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8)
byte1) == size);
73 memcpy (allocateSpace (size), data, (
size_t) size);
78 MidiMessage (
const void* data,
int numBytes,
double timeStamp = 0);
102 double timeStamp = 0,
144 String getDescription()
const;
601 double getTempoMetaEventTickLength (
short timeFormat)
const noexcept;
781 void getFullFrameParameters (
int& hours,
803 mmc_deferredplay = 3,
821 MidiMachineControlCommand getMidiMachineControlCommand()
const noexcept;
824 static MidiMessage midiMachineControlCommand (MidiMachineControlCommand command);
830 bool isMidiMachineControlGoto (
int& hours,
864 static int readVariableLengthVal (
const uint8* data,
938 uint8* allocatedData;
939 uint8 asBytes[
sizeof (uint8*)];
942 PackedData packedData;
943 double timeStamp = 0;
947 inline bool isHeapAllocated() const noexcept {
return size > (int)
sizeof (packedData); }
948 inline uint8* getData() const noexcept {
return isHeapAllocated() ? packedData.allocatedData : (uint8*) packedData.asBytes; }
949 uint8* allocateSpace (
int);