add Plugin API to query port-labels and side-chain property.

This commit is contained in:
Robin Gareus
2016-04-03 18:28:33 +02:00
parent fe1985c3e3
commit b23ef97845
2 changed files with 43 additions and 0 deletions

View File

@@ -102,6 +102,22 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent
virtual bool parameter_is_input(uint32_t) const = 0;
virtual bool parameter_is_output(uint32_t) const = 0;
struct LIBARDOUR_API IOPortDescription {
public:
IOPortDescription (const std::string& n)
: name (n)
, is_sidechain (false)
{}
IOPortDescription (const IOPortDescription &other)
: name (other.name)
, is_sidechain (other.is_sidechain)
{}
std::string name;
bool is_sidechain;
};
virtual IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id);
virtual void set_automation_control (uint32_t /*port_index*/, boost::shared_ptr<ARDOUR::AutomationControl>) { }
virtual boost::shared_ptr<ScalePoints> get_scale_points(uint32_t /*port_index*/) const {

View File

@@ -257,6 +257,33 @@ Plugin::input_streams () const
return ChanCount::ZERO;
}
Plugin::IOPortDescription
Plugin::describe_io_port (ARDOUR::DataType dt, bool input, uint32_t id)
{
std::stringstream ss;
switch (dt) {
case DataType::AUDIO:
ss << _("Audio") << " ";
break;
case DataType::MIDI:
ss << _("Midi") << " ";
break;
default:
ss << _("?") << " ";
break;
}
if (input) {
ss << _("In") << " ";
} else {
ss << _("Out") << " ";
}
ss << id;
Plugin::IOPortDescription iod (ss.str());
return iod;
}
const Plugin::PresetRecord *
Plugin::preset_by_label (const string& label)
{