static LV2_Handle instantiate(const LV2_Descriptor* descriptor, double rate, const char* bundle_path, const LV2_Feature* const* features) { int i; ADelay* adelay = (ADelay*)calloc(1, sizeof(ADelay)); if (!adelay) return NULL; for (i = 0; features[i]; ++i) { if (!strcmp(features[i]->URI, LV2_URID__map)) { adelay->map = (LV2_URID_Map*)features[i]->data; } } if (!adelay->map) { fprintf(stderr, "a-delay.lv2 error: Host does not support urid:map\n"); free(adelay); return NULL; } map_uris(adelay->map, &adelay->uris); lv2_atom_forge_init(&adelay->forge, adelay->map); adelay->srate = rate; adelay->bpmvalid = 0; return (LV2_Handle)adelay; }
/** Instantiate the user interface */ static LV2UI_Handle instantiate(const LV2UI_Descriptor *descriptor, const char *plugin_uri, const char *bundle_path, LV2UI_Write_Function write_function, LV2UI_Controller controller, LV2UI_Widget *widget, const LV2_Feature *const *features) { /* Create object data */ FluidUI *self = malloc(sizeof(FluidUI)); self->write = write_function; self->controller = controller; for (int i = 0; features[i]; i++) { if (strcmp(features[i]->URI, LV2_URID__map) == 0) self->map = (LV2_URID_Map *)features[i]->data; } map_uris(self->map, &self->uris); lv2_atom_forge_init(&self->forge, self->map); /* Create GUI */ self->box = gtk_hbox_new(FALSE, 4); self->label = gtk_label_new("Preset"); self->combo_box = gtk_combo_box_text_new(); get_presets(self); gtk_box_pack_start(GTK_BOX(self->box), self->label, TRUE, TRUE, 4); gtk_box_pack_start(GTK_BOX(self->box), self->combo_box, FALSE, TRUE, 4); g_signal_connect(self->combo_box, "changed", G_CALLBACK(on_changed), self); *widget = self->box; /* Send patch get to synth plug to get current preset setting */ uint8_t obj_buf[OBJ_BUF_SIZE]; lv2_atom_forge_set_buffer(&self->forge, obj_buf, OBJ_BUF_SIZE); LV2_Atom *patch_get = write_patch_get(&self->forge, &self->uris); self->write(self->controller, INPUT_PORT, lv2_atom_total_size(patch_get), self->uris.atom_event_transfer, patch_get); return self; }
static LV2_Handle instantiate(const LV2_Descriptor* descriptor, double sample_rate, const char* bundle_path, const LV2_Feature* const* features) { Lp4pole* plugin = (Lp4pole*)malloc(sizeof(Lp4pole)); if (plugin) { plugin->lpf = lp4pole_new(sample_rate); if (!plugin->lpf) { free(plugin); return NULL; } plugin->cutoff_is_cv = 0; plugin->resonance_is_cv = 0; map_uris(&plugin->uris, features); } return (LV2_Handle)plugin; }
static LV2_Handle instantiate(const LV2_Descriptor* descriptor, double sample_rate, const char* bundle_path, const LV2_Feature* const* features) { Sawtooth* plugin = (Sawtooth*)malloc(sizeof(Sawtooth)); if (!plugin) { return NULL; } if (wavedata_load(&plugin->wdat, bundle_path, "sawtooth_data", BLOP_DLSYM_SAWTOOTH, sample_rate)) { free(plugin); return 0; } plugin->frequency_is_cv = 0; map_uris(&plugin->uris, features); wavedata_get_table(&plugin->wdat, 440.0); return (LV2_Handle)plugin; }