* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
+#ifdef HAVE_LV2
#include "clip.h"
#include "cstrdup.h"
#include "pluginlv2config.h"
#include "pluginlv2gui.h"
#include "pluginserver.h"
+#include "preferences.h"
#include "samples.h"
#include <ctype.h>
int PluginLV2ClientReset::handle_event()
{
PluginLV2Client *client = gui->client;
- client->config.init_lv2(client->lilv);
+ client->config.init_lv2(client->lilv, client);
client->config.update();
client->update_lv2();
gui->update(0);
BC_Title *title;
int x = 10, y = 10, x1;
add_subwindow(title = new BC_Title(x, y, client->title));
-#ifdef HAVE_LV2UI
x1 = get_w() - BC_GenericButton::calculate_w(this, _("UI")) - 8;
- add_subwindow(ui = new PluginLV2ClientUI(this, x1, y));
-#else
- ui = 0;
-#endif
+ add_subwindow(client_ui = new PluginLV2ClientUI(this, x1, y));
y += title->get_h() + 10;
add_subwindow(varbl = new BC_Title(x, y, ""));
add_subwindow(range = new BC_Title(x+160, y, ""));
add_subwindow(slider = new PluginLV2ClientSlider(this, x1, y+10));
y += pot->get_h() + 10;
- client->init_lv2();
client->load_configuration();
client->config.update();
add_subwindow(panel);
panel->update();
show_window(1);
+
+ if( client->server->mwindow->preferences->autostart_lv2ui ) {
+ client_ui->disable();
+ PluginLV2ParentUI *ui = get_ui();
+ ui->show();
+ }
}
int PluginLV2ClientWindow::resize_event(int w, int h)
{
int x1;
-#ifdef HAVE_LV2UI
- x1 = w - ui->get_w() - 8;
- ui->reposition_window(x1, ui->get_y());
-#endif
+ x1 = w - client_ui->get_w() - 8;
+ client_ui->reposition_window(x1, client_ui->get_y());
x1 = w - reset->get_w() - 8;
reset->reposition_window(x1, reset->get_y());
x1 = w - apply->get_w() - 8;
if( !selected ) return;
PluginLV2ParentUI *ui = find_ui();
if( !ui ) return;
- control_bfr_t ctl_bfr;
- ctl_bfr.idx = selected->idx;
- ctl_bfr.value = selected->get_value();
- ui->send_child(LV2_SET, &ctl_bfr, sizeof(ctl_bfr));
+ PluginLV2ClientConfig &conf = client->config;
+ ui->send_child(LV2_UPDATE, conf.ctls, sizeof(float)*conf.nb_ports);
}
int PluginLV2ClientWindow::scalar(float f, char *rp)
cp += sprintf(cp, " )");
float v = opt->get_value();
sprintf(val, "%f", v);
+ float p = (max-min) / slider->get_w();
+ slider->set_precision(p);
slider->update(slider->get_w(), v, min, max);
+ pot->set_precision(p);
pot->update(v, min, max);
}
else {
lv2_update();
}
+void PluginLV2ClientWindow::lv2_ui_enable()
+{
+ lock_window("PluginLV2ClientWindow::lv2_update");
+ client_ui->enable();
+ unlock_window();
+}
+
+#endif