From 6d41effb84c6663704d7f2ed562d7bbf4f5cc441 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 7 Feb 2014 15:53:28 +0000 Subject: Make eg-metro check for atom:Blank and atom:Object. --- plugins/eg03-metro.lv2/metro.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/eg03-metro.lv2/metro.c b/plugins/eg03-metro.lv2/metro.c index e7f8ead..5e484b7 100644 --- a/plugins/eg03-metro.lv2/metro.c +++ b/plugins/eg03-metro.lv2/metro.c @@ -38,6 +38,7 @@ typedef struct { LV2_URID atom_Blank; LV2_URID atom_Float; + LV2_URID atom_Object; LV2_URID atom_Path; LV2_URID atom_Resource; LV2_URID atom_Sequence; @@ -168,6 +169,7 @@ instantiate(const LV2_Descriptor* descriptor, self->map = map; uris->atom_Blank = map->map(map->handle, LV2_ATOM__Blank); uris->atom_Float = map->map(map->handle, LV2_ATOM__Float); + uris->atom_Object = map->map(map->handle, LV2_ATOM__Object); uris->atom_Path = map->map(map->handle, LV2_ATOM__Path); uris->atom_Resource = map->map(map->handle, LV2_ATOM__Resource); uris->atom_Sequence = map->map(map->handle, LV2_ATOM__Sequence); @@ -308,7 +310,10 @@ run(LV2_Handle instance, uint32_t sample_count) // Play the click for the time slice from last_t until now play(self, last_t, ev->time.frames); - if (ev->body.type == uris->atom_Blank) { + // Check if this event is an Object + // (or deprecated Blank to tolerate old hosts) + if (ev->body.type == uris->atom_Object || + ev->body.type == uris->atom_Blank) { const LV2_Atom_Object* obj = (const LV2_Atom_Object*)&ev->body; if (obj->body.otype == uris->time_Position) { // Received position information, update -- cgit v1.2.1