Skip to content

Commit 9187615

Browse files
committed
add is_registered_per_note_controller_pitch_message()
1 parent 41fea52 commit 9187615

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

inc/midi/midi2_channel_voice_message.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ constexpr bool is_midi2_channel_voice_message(const universal_packet&);
5353
constexpr bool is_registered_controller_message(const universal_packet&);
5454
constexpr bool is_assignable_controller_message(const universal_packet&);
5555
constexpr bool is_registered_per_note_controller_message(const universal_packet&);
56+
constexpr bool is_registered_per_note_controller_pitch_message(const universal_packet&);
5657
constexpr bool is_assignable_per_note_controller_message(const universal_packet&);
5758
constexpr bool is_per_note_pitch_bend_message(const universal_packet&);
5859

@@ -401,6 +402,11 @@ constexpr bool is_registered_per_note_controller_message(const universal_packet&
401402
return is_midi2_channel_voice_message(p) &&
402403
(p.status() & 0xF0) == channel_voice_status::registered_per_note_controller;
403404
}
405+
constexpr bool is_registered_per_note_controller_pitch_message(const universal_packet& p)
406+
{
407+
return is_registered_per_note_controller_message(p) &&
408+
get_per_note_controller_index(p) == registered_per_note_controller::pitch_7_25;
409+
}
404410
constexpr bool is_assignable_per_note_controller_message(const universal_packet& p)
405411
{
406412
return is_midi2_channel_voice_message(p) &&

tests/midi2_channel_voice_message_tests.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,24 @@ TEST_F(midi2_channel_voice_message, make_registered_per_note_controller_message)
238238
EXPECT_EQ((universal_packet{ 0x4F0E2C4D, 0x33445566 }), m);
239239
EXPECT_TRUE(is_registered_per_note_controller_message(m));
240240
EXPECT_TRUE(get_per_note_controller_index(m) == 77);
241+
EXPECT_FALSE(is_registered_per_note_controller_pitch_message(m));
241242
}
242243

243244
{
244245
const auto m = make_registered_per_note_controller_message(1, 5, 0x33, 0x44, controller_value{ 0x55u });
245246
EXPECT_EQ((universal_packet{ 0x41053344, 0x00000055 }), m);
246247
EXPECT_TRUE(is_registered_per_note_controller_message(m));
247248
EXPECT_TRUE(get_per_note_controller_index(m) == 0x44);
249+
EXPECT_FALSE(is_registered_per_note_controller_pitch_message(m));
250+
}
251+
252+
{
253+
const auto m = make_registered_per_note_controller_message(
254+
7, 4, 64, registered_per_note_controller::pitch_7_25, controller_value{ 0x12345678u });
255+
EXPECT_EQ((universal_packet{ 0x47044003, 0x12345678u }), m);
256+
EXPECT_TRUE(is_registered_per_note_controller_message(m));
257+
EXPECT_TRUE(get_per_note_controller_index(m) == 3);
258+
EXPECT_TRUE(is_registered_per_note_controller_pitch_message(m));
248259
}
249260
}
250261

0 commit comments

Comments
 (0)