compensate for processor latency during bounce
[ardour.git] / libs / ardour / lv2_evbuf.c
index 3037e8275c55d98211413a1f057e03c61ee5b323..2802ab8c816fd14e9274b1b2cc585a7b13da7e8f 100644 (file)
@@ -115,6 +115,12 @@ lv2_evbuf_get_size(LV2_Evbuf* evbuf)
        return 0;
 }
 
+uint32_t
+lv2_evbuf_get_capacity(LV2_Evbuf* evbuf)
+{
+       return evbuf->capacity;
+}
+
 void*
 lv2_evbuf_get_buffer(LV2_Evbuf* evbuf)
 {
@@ -197,7 +203,7 @@ 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;
+               ev = (LV2_Event*)((char*)ebuf->data + iter.offset);
                *frames    = ev->frames;
                *subframes = ev->subframes;
                *type      = ev->type;
@@ -213,7 +219,7 @@ lv2_evbuf_get(LV2_Evbuf_Iterator iter,
                *subframes = 0;
                *type      = aev->body.type;
                *size      = aev->body.size;
-               *data      = LV2_ATOM_BODY(&aev->body);
+               *data      = (uint8_t*)LV2_ATOM_BODY(&aev->body);
                break;
        }
 
@@ -270,6 +276,8 @@ lv2_evbuf_write(LV2_Evbuf_Iterator* iter,
                aseq->atom.size += size;
                iter->offset    += size;
                break;
+       default:
+               return false;
        }
 
        return true;