}
Parser::Parser (Port &p)
- : _port (p)
-
+ : _port(p)
{
trace_stream = 0;
trace_prefix = "";
*o << trace_prefix
<< "Channel "
<< (msg[0]&0xF)+1
- << " Program PropertyChange ProgNum "
+ << " Program Change ProgNum "
<< (int) msg[1]
<< endmsg;
break;
Parser::scanner (unsigned char inbyte)
{
bool statusbit;
+ boost::optional<int> edit_result;
// cerr << "parse: " << hex << (int) inbyte << dec << " state = " << state << " msgindex = " << msgindex << " runnable = " << runnable << endl;
case NEEDONEBYTE:
/* We've completed a 1 or 2 byte message. */
- if (edit.empty() || !(*edit (msgbuf, msgindex) == 0)) {
+
+ edit_result = edit (msgbuf, msgindex);
+
+ if (edit_result.get_value_or (1)) {
/* message not cancelled by an editor */