X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Flv2_evbuf.c;h=b487e1fea9ee9880d71c80c7340190f002cc58a2;hb=b285559767e21aae4467270590f048c3263fd742;hp=fba7fd521ddc42dd7aa78f63121045e804877895;hpb=2a6a16f980ff9181b138f7a30aedfbde4426a591;p=ardour.git diff --git a/libs/ardour/lv2_evbuf.c b/libs/ardour/lv2_evbuf.c index fba7fd521d..b487e1fea9 100644 --- a/libs/ardour/lv2_evbuf.c +++ b/libs/ardour/lv2_evbuf.c @@ -166,13 +166,13 @@ lv2_evbuf_next(LV2_Evbuf_Iterator iter) uint32_t size; switch (evbuf->type) { case LV2_EVBUF_EVENT: - size = ((LV2_Event*)(evbuf->buf.event.data + offset))->size; + size = ((LV2_Event*)((uintptr_t)(evbuf->buf.event.data + offset)))->size; offset += lv2_evbuf_pad_size(sizeof(LV2_Event) + size); break; case LV2_EVBUF_ATOM: - size = ((LV2_Atom_Event*) + size = ((LV2_Atom_Event*)((uintptr_t) ((char*)LV2_ATOM_CONTENTS(LV2_Atom_Sequence, &evbuf->buf.atom) - + offset))->body.size; + + offset)))->body.size; offset += lv2_evbuf_pad_size(sizeof(LV2_Atom_Event) + size); break; } @@ -183,13 +183,13 @@ lv2_evbuf_next(LV2_Evbuf_Iterator iter) bool lv2_evbuf_get(LV2_Evbuf_Iterator iter, - uint32_t* frames, + uint32_t* samples, uint32_t* subframes, uint32_t* type, uint32_t* size, uint8_t** data) { - *frames = *subframes = *type = *size = 0; + *samples = *subframes = *type = *size = 0; *data = NULL; if (!lv2_evbuf_is_valid(iter)) { @@ -203,8 +203,8 @@ lv2_evbuf_get(LV2_Evbuf_Iterator iter, switch (iter.evbuf->type) { case LV2_EVBUF_EVENT: ebuf = &iter.evbuf->buf.event; - ev = (LV2_Event*)ebuf->data + iter.offset; - *frames = ev->frames; + ev = (LV2_Event*)((uintptr_t)((char*)ebuf->data + iter.offset)); + *samples = ev->frames; *subframes = ev->subframes; *type = ev->type; *size = ev->size; @@ -212,10 +212,10 @@ lv2_evbuf_get(LV2_Evbuf_Iterator iter, break; case LV2_EVBUF_ATOM: aseq = (LV2_Atom_Sequence*)&iter.evbuf->buf.atom; - aev = (LV2_Atom_Event*)( + aev = (LV2_Atom_Event*)((uintptr_t)( (char*)LV2_ATOM_CONTENTS(LV2_Atom_Sequence, aseq) - + iter.offset); - *frames = aev->time.frames; + + iter.offset)); + *samples = aev->time.frames; *subframes = 0; *type = aev->body.type; *size = aev->body.size; @@ -228,7 +228,7 @@ lv2_evbuf_get(LV2_Evbuf_Iterator iter, bool lv2_evbuf_write(LV2_Evbuf_Iterator* iter, - uint32_t frames, + uint32_t samples, uint32_t subframes, uint32_t type, uint32_t size, @@ -245,8 +245,8 @@ lv2_evbuf_write(LV2_Evbuf_Iterator* iter, return false; } - ev = (LV2_Event*)(ebuf->data + iter->offset); - ev->frames = frames; + ev = (LV2_Event*)((uintptr_t)(ebuf->data + iter->offset)); + ev->frames = samples; ev->subframes = subframes; ev->type = type; ev->size = size; @@ -264,10 +264,10 @@ lv2_evbuf_write(LV2_Evbuf_Iterator* iter, return false; } - aev = (LV2_Atom_Event*)( + aev = (LV2_Atom_Event*)((uintptr_t)( (char*)LV2_ATOM_CONTENTS(LV2_Atom_Sequence, aseq) - + iter->offset); - aev->time.frames = frames; + + iter->offset)); + aev->time.frames = samples; aev->body.type = type; aev->body.size = size; memcpy(LV2_ATOM_BODY(&aev->body), data, size);