Skip to content

Commit

Permalink
add is_registered_per_note_controller_pitch_message()
Browse files Browse the repository at this point in the history
  • Loading branch information
fdetro committed Oct 24, 2024
1 parent 41fea52 commit 9187615
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
6 changes: 6 additions & 0 deletions inc/midi/midi2_channel_voice_message.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ constexpr bool is_midi2_channel_voice_message(const universal_packet&);
constexpr bool is_registered_controller_message(const universal_packet&);
constexpr bool is_assignable_controller_message(const universal_packet&);
constexpr bool is_registered_per_note_controller_message(const universal_packet&);
constexpr bool is_registered_per_note_controller_pitch_message(const universal_packet&);
constexpr bool is_assignable_per_note_controller_message(const universal_packet&);
constexpr bool is_per_note_pitch_bend_message(const universal_packet&);

Expand Down Expand Up @@ -401,6 +402,11 @@ constexpr bool is_registered_per_note_controller_message(const universal_packet&
return is_midi2_channel_voice_message(p) &&
(p.status() & 0xF0) == channel_voice_status::registered_per_note_controller;
}
constexpr bool is_registered_per_note_controller_pitch_message(const universal_packet& p)
{
return is_registered_per_note_controller_message(p) &&
get_per_note_controller_index(p) == registered_per_note_controller::pitch_7_25;
}
constexpr bool is_assignable_per_note_controller_message(const universal_packet& p)
{
return is_midi2_channel_voice_message(p) &&
Expand Down
11 changes: 11 additions & 0 deletions tests/midi2_channel_voice_message_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,13 +238,24 @@ TEST_F(midi2_channel_voice_message, make_registered_per_note_controller_message)
EXPECT_EQ((universal_packet{ 0x4F0E2C4D, 0x33445566 }), m);
EXPECT_TRUE(is_registered_per_note_controller_message(m));
EXPECT_TRUE(get_per_note_controller_index(m) == 77);
EXPECT_FALSE(is_registered_per_note_controller_pitch_message(m));
}

{
const auto m = make_registered_per_note_controller_message(1, 5, 0x33, 0x44, controller_value{ 0x55u });
EXPECT_EQ((universal_packet{ 0x41053344, 0x00000055 }), m);
EXPECT_TRUE(is_registered_per_note_controller_message(m));
EXPECT_TRUE(get_per_note_controller_index(m) == 0x44);
EXPECT_FALSE(is_registered_per_note_controller_pitch_message(m));
}

{
const auto m = make_registered_per_note_controller_message(
7, 4, 64, registered_per_note_controller::pitch_7_25, controller_value{ 0x12345678u });
EXPECT_EQ((universal_packet{ 0x47044003, 0x12345678u }), m);
EXPECT_TRUE(is_registered_per_note_controller_message(m));
EXPECT_TRUE(get_per_note_controller_index(m) == 3);
EXPECT_TRUE(is_registered_per_note_controller_pitch_message(m));
}
}

Expand Down

0 comments on commit 9187615

Please sign in to comment.