20 #ifndef __ardour_event_ring_buffer_h__
21 #define __ardour_event_ring_buffer_h__
42 template<
typename Time>
62 inline bool peek (uint8_t*,
size_t size);
68 template<
typename Time>
74 get_read_vector (&vec);
76 if (vec.
len[0] + vec.
len[1] < size) {
81 memcpy (buf, vec.
buf[0], std::min (vec.
len[0], size));
84 if (vec.
len[0] < size) {
86 memcpy (buf + vec.
len[0], vec.
buf[1], size - vec.
len[0]);
93 template<
typename Time>
116 template<
typename Time>
120 if (!buf || write_space() < (
sizeof(Time) +
sizeof(
Evoral::EventType) +
sizeof(uint32_t) + size)) {
133 #endif // __ardour_event_ring_buffer_h__
uint32_t write(Time time, Evoral::EventType type, uint32_t size, const uint8_t *buf)
bool read(Time *time, Evoral::EventType *type, uint32_t *size, uint8_t *buf)
size_t write(const T *src, size_t cnt)
bool peek(uint8_t *, size_t size)
EventRingBuffer(size_t capacity)