46 MidiMessage (
int byte1,
int byte2,
int byte3,
double timeStamp = 0)
noexcept;
55 MidiMessage (
int byte1,
int byte2,
double timeStamp = 0)
noexcept;
63 MidiMessage (
int byte1,
double timeStamp = 0)
noexcept;
66 template <
typename...
Data>
70 jassert (size > 3 || byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == size);
72 const uint8 data[] = { (uint8) byte1, (uint8) byte2, (uint8)
byte3,
static_cast<uint8
> (
otherBytes)... };
73 memcpy (allocateSpace (size), data, (
size_t) size);
78 MidiMessage (
const void* data,
int numBytes,
double timeStamp = 0);
102 double timeStamp = 0,
145 String getDescription()
const;
224 return {
reinterpret_cast<const std::byte*
> (getSysExData()),
225 (
size_t) getSysExDataSize() };
609 double getTempoMetaEventTickLength (
short timeFormat)
const noexcept;
630 void getTimeSignatureInfo (
int& numerator,
int& denominator)
const noexcept;
789 void getFullFrameParameters (
int& hours,
811 mmc_deferredplay = 3,
829 MidiMachineControlCommand getMidiMachineControlCommand()
const noexcept;
832 static MidiMessage midiMachineControlCommand (MidiMachineControlCommand command);
838 bool isMidiMachineControlGoto (
int& hours,
878 [[
deprecated (
"This signature has been deprecated in favour of the safer readVariableLengthValue.")]]
879 static int readVariableLengthVal (
const uint8* data,
int&
numBytesUsed)
noexcept;
894 bool isValid()
const noexcept {
return bytesUsed > 0; }
917 static int getMessageLengthFromFirstByte (uint8
firstByte)
noexcept;
983 uint8* allocatedData;
984 uint8 asBytes[
sizeof (uint8*)];
987 PackedData packedData;
988 double timeStamp = 0;
992 inline bool isHeapAllocated()
const noexcept {
return size > (
int)
sizeof (packedData); }
993 inline uint8* getData() const noexcept {
return isHeapAllocated() ? packedData.allocatedData : (uint8*) packedData.asBytes; }
994 uint8* allocateSpace (
int);