From 42b98a78cfa12d57253f50f232ad0edfef48b10b Mon Sep 17 00:00:00 2001 From: Francois Best Date: Thu, 11 Oct 2018 10:33:07 +0200 Subject: [PATCH] refactor: Avoid redundant call --- src/MIDI.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/MIDI.hpp b/src/MIDI.hpp index fa34533..7df1afb 100644 --- a/src/MIDI.hpp +++ b/src/MIDI.hpp @@ -676,8 +676,10 @@ template bool MidiInterface::parse() { if (mSerial.available() == 0) + { // No data available. return false; + } // Parsing algorithm: // Get a byte from the serial buffer. @@ -726,7 +728,9 @@ bool MidiInterface::parse() // It will be updated upon completion of this message. } - switch (getTypeFromStatusByte(mPendingMessage[0])) + const MidiType pendingType = getTypeFromStatusByte(mPendingMessage[0]); + + switch (pendingType) { // 1 byte messages case Start: @@ -737,7 +741,7 @@ bool MidiInterface::parse() case SystemReset: case TuneRequest: // Handle the message type directly here. - mMessage.type = getTypeFromStatusByte(mPendingMessage[0]); + mMessage.type = pendingType; mMessage.channel = 0; mMessage.data1 = 0; mMessage.data2 = 0; @@ -788,7 +792,7 @@ bool MidiInterface::parse() if (mPendingMessageIndex >= (mPendingMessageExpectedLenght - 1)) { // Reception complete - mMessage.type = getTypeFromStatusByte(mPendingMessage[0]); + mMessage.type = pendingType; mMessage.channel = getChannelFromStatusByte(mPendingMessage[0]); mMessage.data1 = mPendingMessage[1]; mMessage.data2 = 0; // Completed new message has 1 data byte