parser pointer types as int, not byte

increase pointer size, spec says message can have any length (quick internet search indicate packet length can be larger than 255)
This commit is contained in:
lathoub 2021-08-04 05:40:29 +02:00
parent e572f7f599
commit fa85454114
2 changed files with 7 additions and 7 deletions

View File

@ -224,8 +224,8 @@ public:
void receive(byte *buffer, size_t length) void receive(byte *buffer, size_t length)
{ {
// Pointers used to search through payload. // Pointers used to search through payload.
byte lPtr = 0; int lPtr = 0;
byte rPtr = 0; int rPtr = 0;
// lastStatus used to capture runningStatus // lastStatus used to capture runningStatus
byte lastStatus; byte lastStatus;
@ -296,7 +296,7 @@ public:
case MIDI_NAMESPACE::MidiType::AfterTouchPoly: case MIDI_NAMESPACE::MidiType::AfterTouchPoly:
case MIDI_NAMESPACE::MidiType::ControlChange: case MIDI_NAMESPACE::MidiType::ControlChange:
case MIDI_NAMESPACE::MidiType::PitchBend: case MIDI_NAMESPACE::MidiType::PitchBend:
for (byte i = lPtr; i < rPtr; i = i + 2) for (auto i = lPtr; i < rPtr; i = i + 2)
{ {
mBleClass.add(lastStatus); mBleClass.add(lastStatus);
mBleClass.add(buffer[i + 1]); mBleClass.add(buffer[i + 1]);
@ -305,7 +305,7 @@ public:
break; break;
case MIDI_NAMESPACE::MidiType::ProgramChange: case MIDI_NAMESPACE::MidiType::ProgramChange:
case MIDI_NAMESPACE::MidiType::AfterTouchChannel: case MIDI_NAMESPACE::MidiType::AfterTouchChannel:
for (byte i = lPtr; i < rPtr; i = i + 1) for (auto i = lPtr; i < rPtr; i = i + 1)
{ {
mBleClass.add(lastStatus); mBleClass.add(lastStatus);
mBleClass.add(buffer[i + 1]); mBleClass.add(buffer[i + 1]);
@ -314,7 +314,7 @@ public:
case MIDI_NAMESPACE::MidiType::SystemExclusive: case MIDI_NAMESPACE::MidiType::SystemExclusive:
mBleClass.add(buffer[lPtr]); mBleClass.add(buffer[lPtr]);
for (byte i = lPtr; i < rPtr; i++) for (auto i = lPtr; i < rPtr; i++)
mBleClass.add(buffer[i + 1]); mBleClass.add(buffer[i + 1]);
break; break;

View File

@ -24,8 +24,8 @@ void transmitMIDIonDIN(byte status, byte data1, byte data2)
void receive(byte* buffer, size_t length) void receive(byte* buffer, size_t length)
{ {
// Pointers used to search through payload. // Pointers used to search through payload.
byte lPtr = 0; int lPtr = 0;
byte rPtr = 0; int rPtr = 0;
// lastStatus used to capture runningStatus // lastStatus used to capture runningStatus
byte lastStatus; byte lastStatus;