Beispiel #1
0
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;
}
Beispiel #3
0
Datei: lp4pole.c Projekt: EQ4/lad
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;
}
Beispiel #4
0
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;
}