| 3534 | // v3_funknown |
| 3535 | |
| 3536 | static v3_result V3_API query_interface_edit_controller(void* const self, const v3_tuid iid, void** const iface) |
| 3537 | { |
| 3538 | dpf_edit_controller* const controller = *static_cast<dpf_edit_controller**>(self); |
| 3539 | |
| 3540 | if (v3_tuid_match(iid, v3_funknown_iid) || |
| 3541 | v3_tuid_match(iid, v3_plugin_base_iid) || |
| 3542 | v3_tuid_match(iid, v3_edit_controller_iid)) |
| 3543 | { |
| 3544 | d_debug("query_interface_edit_controller => %p %s %p | OK", self, tuid2str(iid), iface); |
| 3545 | ++controller->refcounter; |
| 3546 | *iface = self; |
| 3547 | return V3_OK; |
| 3548 | } |
| 3549 | |
| 3550 | if (v3_tuid_match(iid, v3_midi_mapping_iid)) |
| 3551 | { |
| 3552 | #if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
| 3553 | d_debug("query_interface_edit_controller => %p %s %p | OK convert static", self, tuid2str(iid), iface); |
| 3554 | static dpf_midi_mapping midi_mapping; |
| 3555 | static dpf_midi_mapping* midi_mapping_ptr = &midi_mapping; |
| 3556 | *iface = &midi_mapping_ptr; |
| 3557 | return V3_OK; |
| 3558 | #else |
| 3559 | d_debug("query_interface_edit_controller => %p %s %p | reject unused", self, tuid2str(iid), iface); |
| 3560 | *iface = nullptr; |
| 3561 | return V3_NO_INTERFACE; |
| 3562 | #endif |
| 3563 | } |
| 3564 | |
| 3565 | if (v3_tuid_match(iid, v3_connection_point_iid)) |
| 3566 | { |
| 3567 | #if DPF_VST3_USES_SEPARATE_CONTROLLER |
| 3568 | d_debug("query_interface_edit_controller => %p %s %p | OK convert %p", |
| 3569 | self, tuid2str(iid), iface, controller->connectionComp2Ctrl.get()); |
| 3570 | |
| 3571 | if (controller->connectionComp2Ctrl == nullptr) |
| 3572 | controller->connectionComp2Ctrl = new dpf_comp2ctrl_connection_point(controller->vst3); |
| 3573 | else |
| 3574 | ++controller->connectionComp2Ctrl->refcounter; |
| 3575 | *iface = &controller->connectionComp2Ctrl; |
| 3576 | return V3_OK; |
| 3577 | #else |
| 3578 | d_debug("query_interface_edit_controller => %p %s %p | reject unwanted", self, tuid2str(iid), iface); |
| 3579 | *iface = nullptr; |
| 3580 | return V3_NO_INTERFACE; |
| 3581 | #endif |
| 3582 | } |
| 3583 | |
| 3584 | d_debug("query_interface_edit_controller => %p %s %p | WARNING UNSUPPORTED", self, tuid2str(iid), iface); |
| 3585 | *iface = nullptr; |
| 3586 | return V3_NO_INTERFACE; |
| 3587 | } |
| 3588 | |
| 3589 | static uint32_t V3_API ref_edit_controller(void* const self) |
| 3590 | { |
nothing calls this directly
no test coverage detected