diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 0dd7f9efac..6853a1dc36 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -113,7 +113,7 @@ class LadspaPlugin : public ARDOUR::Plugin LADSPA_Properties properties() const { return _descriptor->Properties; } uint32_t index() const { return _index; } const char * copyright() const { return _descriptor->Copyright; } - LADSPA_PortDescriptor port_descriptor(uint32_t i) const { return _descriptor->PortDescriptors[i]; } + LADSPA_PortDescriptor port_descriptor(uint32_t i) const; const LADSPA_PortRangeHint* port_range_hints() const { return _descriptor->PortRangeHints; } const char * const * port_names() const { return _descriptor->PortNames; } diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index b9400dd8d8..3a25eab384 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -916,3 +916,16 @@ LadspaPlugin::do_save_preset (string name) return uri; } +LADSPA_PortDescriptor +LadspaPlugin::port_descriptor (uint32_t i) const +{ + if (i < _descriptor->PortCount) { + return _descriptor->PortDescriptors[i]; + } + + warning << "LADSPA plugin port index " << i << " out of range." << endmsg; + return 0; +} + + +