| 717 | |
| 718 | #if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
| 719 | void sendNote(const uint8_t channel, const uint8_t note, const uint8_t velocity) |
| 720 | { |
| 721 | DISTRHO_SAFE_ASSERT_RETURN(fConnection != nullptr,); |
| 722 | |
| 723 | v3_message** const message = createMessage("midi"); |
| 724 | DISTRHO_SAFE_ASSERT_RETURN(message != nullptr,); |
| 725 | |
| 726 | v3_attribute_list** const attrlist = v3_cpp_obj(message)->get_attributes(message); |
| 727 | DISTRHO_SAFE_ASSERT_RETURN(attrlist != nullptr,); |
| 728 | |
| 729 | uint8_t midiData[3]; |
| 730 | midiData[0] = (velocity != 0 ? 0x90 : 0x80) | channel; |
| 731 | midiData[1] = note; |
| 732 | midiData[2] = velocity; |
| 733 | |
| 734 | v3_cpp_obj(attrlist)->set_int(attrlist, "__dpf_msg_target__", 1); |
| 735 | v3_cpp_obj(attrlist)->set_binary(attrlist, "data", midiData, sizeof(midiData)); |
| 736 | v3_cpp_obj(fConnection)->notify(fConnection, message); |
| 737 | |
| 738 | v3_cpp_obj_unref(message); |
| 739 | } |
| 740 | |
| 741 | static void sendNoteCallback(void* const ptr, const uint8_t channel, const uint8_t note, const uint8_t velocity) |
| 742 | { |
no test coverage detected