void set_property(uint32_t key, const Variant& value);
const PropertyDescriptors& get_supported_properties() const { return _property_descriptors; }
const ParameterDescriptor& get_property_descriptor(uint32_t id) const;
+ Variant get_property_value (uint32_t) const;
void announce_property_values();
private:
std::vector<size_t> _port_minimumSize;
std::map<std::string,uint32_t> _port_indices;
+ std::map<uint32_t, Variant> _property_values;
+
PropertyDescriptors _property_descriptors;
struct AutomationCtrl {
lilv_nodes_free(properties);
}
+Variant
+LV2Plugin::get_property_value (uint32_t prop_id) const
+{
+ std::map<uint32_t, Variant>::const_iterator it;
+ if ((it = _property_values.find (prop_id)) == _property_values.end()) {
+ return Variant();
+ }
+ return it->second;
+}
+
void
LV2Plugin::announce_property_values()
{
// Emit PropertyChanged signal for UI
// TODO: This should emit the control's Changed signal
PropertyChanged(prop_id, Variant(Variant::PATH, path));
+ _property_values[prop_id] = Variant(Variant::PATH, path);
} else {
std::cerr << "warning: patch:Set for unknown property" << std::endl;
}