From 7b20413c84b14d2c2bc1037bb08134dcdf152ddb Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 31 May 2012 06:23:57 +0000 Subject: Umm... commit pretty much all the work of the past few days. Again. git-svn-id: http://svn.drobilla.net/lad/trunk/plugins/blop.lv2@4488 a436a847-0d15-0410-975c-d299462d15a1 --- src/sequencer.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'src/sequencer.c') diff --git a/src/sequencer.c b/src/sequencer.c index ef22a8a..e5c97c7 100644 --- a/src/sequencer.c +++ b/src/sequencer.c @@ -94,6 +94,9 @@ instantiate(const LV2_Descriptor* descriptor, const LV2_Feature* const* features) { Sequencer* plugin = (Sequencer*)malloc(sizeof(Sequencer)); + if (!plugin) { + return NULL; + } plugin->srate = (float)sample_rate; plugin->inv_srate = 1.0f / plugin->srate; @@ -113,8 +116,8 @@ activate(LV2_Handle instance) } static void -runSequencer(LV2_Handle instance, - uint32_t sample_count) +run(LV2_Handle instance, + uint32_t sample_count) { Sequencer* plugin = (Sequencer*)instance; @@ -145,7 +148,7 @@ runSequencer(LV2_Handle instance, unsigned int step_index = plugin->step_index; unsigned int loop_index = LRINTF(loop_steps); - int rst = LRINTF(reset); + int rst = reset > 0.0f; int i; loop_index = loop_index == 0 ? 1 : loop_index; @@ -191,3 +194,23 @@ runSequencer(LV2_Handle instance, plugin->last_value = last_value; plugin->step_index = step_index; } + +static const LV2_Descriptor descriptor = { + SEQUENCER_URI, + instantiate, + connect_port, + activate, + run, + NULL, + cleanup, + NULL +}; + +LV2_SYMBOL_EXPORT const LV2_Descriptor* +lv2_descriptor(uint32_t index) +{ + switch (index) { + case 0: return &descriptor; + default: return NULL; + } +} -- cgit v1.2.1