{
if (_plugin->flags & 32 /* effFlagsProgramsChunks */) {
- /* XXX: TODO */
-
- error << _("no support for presets using chunks at this time")
- << endmsg;
- return;
+ XMLTree* t = presets_tree ();
+ if (t == 0) {
+ return;
+ }
+
+ t->root()->remove_nodes_and_delete (X_("label"), name);
+
+ sys::path f = ARDOUR::user_config_directory ();
+ f /= "presets";
+ f /= "vst";
+
+ t->write (f.to_string ());
+ delete t;
}
}
if (vst_version >= 2) {
char buf[256];
- _plugin->dispatcher (_plugin, 29, i, 0, buf, 0);
- r.label = buf;
+ if (_plugin->dispatcher (_plugin, 29, i, 0, buf, 0) == 1) {
+ r.label = buf;
+ } else {
+ r.label = string_compose (_("Preset %1"), i);
+ }
} else {
r.label = string_compose (_("Preset %1"), i);
}