mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added a parameter to the MidiMessage constructor to optionally parse sysexes without embdedded lengths
This commit is contained in:
parent
e91a69080e
commit
93bc4b97be
2 changed files with 12 additions and 7 deletions
|
|
@ -152,7 +152,8 @@ MidiMessage::MidiMessage (const MidiMessage& other, const double newTimeStamp)
|
|||
}
|
||||
}
|
||||
|
||||
MidiMessage::MidiMessage (const void* srcData, int sz, int& numBytesUsed, const uint8 lastStatusByte, double t)
|
||||
MidiMessage::MidiMessage (const void* srcData, int sz, int& numBytesUsed, const uint8 lastStatusByte,
|
||||
double t, bool sysexHasEmbeddedLength)
|
||||
: timeStamp (t)
|
||||
{
|
||||
const uint8* src = static_cast<const uint8*> (srcData);
|
||||
|
|
@ -175,7 +176,7 @@ MidiMessage::MidiMessage (const void* srcData, int sz, int& numBytesUsed, const
|
|||
if (byte == 0xf0)
|
||||
{
|
||||
const uint8* d = src;
|
||||
bool haveReadAllLengthBytes = false;
|
||||
bool haveReadAllLengthBytes = ! sysexHasEmbeddedLength;
|
||||
int numVariableLengthSysexBytes = 0;
|
||||
|
||||
while (d < src + sz)
|
||||
|
|
|
|||
|
|
@ -82,10 +82,14 @@ public:
|
|||
has in fact been dropped.
|
||||
@param timeStamp the time to give the midi message - this value doesn't
|
||||
use any particular units, so will be application-specific
|
||||
@param sysexHasEmbeddedLength when reading sysexes, this flag indicates whether
|
||||
to expect the data to begin with a variable-length field
|
||||
indicating its size
|
||||
*/
|
||||
MidiMessage (const void* data, int maxBytesToUse,
|
||||
int& numBytesUsed, uint8 lastStatusByte,
|
||||
double timeStamp = 0);
|
||||
double timeStamp = 0,
|
||||
bool sysexHasEmbeddedLength = true);
|
||||
|
||||
/** Creates an active-sense message.
|
||||
Since the MidiMessage has to contain a valid message, this default constructor
|
||||
|
|
@ -94,10 +98,10 @@ public:
|
|||
MidiMessage() noexcept;
|
||||
|
||||
/** Creates a copy of another midi message. */
|
||||
MidiMessage (const MidiMessage& other);
|
||||
MidiMessage (const MidiMessage&);
|
||||
|
||||
/** Creates a copy of another midi message, with a different timestamp. */
|
||||
MidiMessage (const MidiMessage& other, double newTimeStamp);
|
||||
MidiMessage (const MidiMessage&, double newTimeStamp);
|
||||
|
||||
/** Destructor. */
|
||||
~MidiMessage();
|
||||
|
|
@ -106,8 +110,8 @@ public:
|
|||
MidiMessage& operator= (const MidiMessage& other);
|
||||
|
||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
||||
MidiMessage (MidiMessage&& other) noexcept;
|
||||
MidiMessage& operator= (MidiMessage&& other) noexcept;
|
||||
MidiMessage (MidiMessage&&) noexcept;
|
||||
MidiMessage& operator= (MidiMessage&&) noexcept;
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue