diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-11-23 11:49:08 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-11-23 11:49:08 -0500 |
commit | 5f7784e4f2f0b541819c5743cc42c588583bdab8 (patch) | |
tree | 476854caa1fec4fd4fa78dde6ebed847b31bbfb4 /libs/midi++2 | |
parent | 14fe7a0ae8f30bc25203b3d69b7bdcdaa8416ef5 (diff) |
change API for libmidi++ RPN-related signals to be more useful
Diffstat (limited to 'libs/midi++2')
-rw-r--r-- | libs/midi++2/channel.cc | 12 | ||||
-rw-r--r-- | libs/midi++2/midi++/parser.h | 11 |
2 files changed, 12 insertions, 11 deletions
diff --git a/libs/midi++2/channel.cc b/libs/midi++2/channel.cc index fd9a0d1026..ffe65c6df9 100644 --- a/libs/midi++2/channel.cc +++ b/libs/midi++2/channel.cc @@ -174,12 +174,12 @@ Channel::maybe_process_rpns (Parser& parser, EventTwoBytes *tb) case 0x60: /* data increment */ _nrpn_state = RPNState (_nrpn_state|HaveValue); - parser.channel_nrpn_increment[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_nrpn_increment[_channel_number] (parser, rpn_id, 1); /* EMIT SIGNAL */ return true; case 0x61: /* data decrement */ _nrpn_state = RPNState (_nrpn_state|HaveValue); - parser.channel_nrpn_decrement[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_nrpn_decrement[_channel_number] (parser, rpn_id, -1); /* EMIT SIGNAL */ return true; case 0x06: /* data entry MSB */ @@ -202,7 +202,7 @@ Channel::maybe_process_rpns (Parser& parser, EventTwoBytes *tb) result.first->second = rpn_val; } - parser.channel_nrpn[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_nrpn[_channel_number] (parser, rpn_id, rpn_val); /* EMIT SIGNAL */ return true; } @@ -214,12 +214,12 @@ Channel::maybe_process_rpns (Parser& parser, EventTwoBytes *tb) case 0x60: /* data increment */ _rpn_state = RPNState (_rpn_state|HaveValue); - parser.channel_rpn_increment[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_rpn_increment[_channel_number] (parser, rpn_id, 1); /* EMIT SIGNAL */ return true; case 0x61: /* data decrement */ _rpn_state = RPNState (_rpn_state|HaveValue); - parser.channel_rpn_decrement[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_rpn_decrement[_channel_number] (parser, rpn_id, -1); /* EMIT SIGNAL */ return true; case 0x06: /* data entry MSB */ @@ -242,7 +242,7 @@ Channel::maybe_process_rpns (Parser& parser, EventTwoBytes *tb) result.first->second = rpn_val; } - parser.channel_rpn[_channel_number] (parser, rpn_id); /* EMIT SIGNAL */ + parser.channel_rpn[_channel_number] (parser, rpn_id, rpn_val); /* EMIT SIGNAL */ return true; } } diff --git a/libs/midi++2/midi++/parser.h b/libs/midi++2/midi++/parser.h index 7eb690d402..40ba8209b0 100644 --- a/libs/midi++2/midi++/parser.h +++ b/libs/midi++2/midi++/parser.h @@ -39,7 +39,8 @@ typedef PBD::Signal2<void,Parser&,framecnt_t> TimestampedSignal; typedef PBD::Signal2<void,Parser&, byte> OneByteSignal; typedef PBD::Signal2<void,Parser &, EventTwoBytes *> TwoByteSignal; typedef PBD::Signal2<void,Parser &, pitchbend_t> PitchBendSignal; -typedef PBD::Signal2<void,Parser &, uint16_t> RPNSignal; +typedef PBD::Signal3<void,Parser &, uint16_t, int> RPNSignal; +typedef PBD::Signal3<void,Parser &, uint16_t, float> RPNValueSignal; typedef PBD::Signal3<void,Parser &, byte *, size_t> Signal; class LIBMIDIPP_API Parser { @@ -78,10 +79,10 @@ class LIBMIDIPP_API Parser { ZeroByteSignal channel_active_postparse[16]; RPNSignal channel_rpn[16]; RPNSignal channel_nrpn[16]; - RPNSignal channel_rpn_increment[16]; - RPNSignal channel_rpn_decrement[16]; - RPNSignal channel_nrpn_increment[16]; - RPNSignal channel_nrpn_decrement[16]; + RPNValueSignal channel_rpn_increment[16]; + RPNValueSignal channel_rpn_decrement[16]; + RPNValueSignal channel_nrpn_increment[16]; + RPNValueSignal channel_nrpn_decrement[16]; OneByteSignal mtc_quarter_frame; /* see below for more useful signals */ Signal mtc; |