aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/ringbuffer.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Alc/ringbuffer.h b/Alc/ringbuffer.h
index b516ab57..cb2077f8 100644
--- a/Alc/ringbuffer.h
+++ b/Alc/ringbuffer.h
@@ -3,6 +3,7 @@
#include <stddef.h>
+#include <memory>
#include <utility>
@@ -72,4 +73,11 @@ size_t ll_ringbuffer_write(ll_ringbuffer_t *rb, const void *src, size_t cnt);
/** Advance the write pointer `cnt' places. */
void ll_ringbuffer_write_advance(ll_ringbuffer_t *rb, size_t cnt);
+
+struct RingBufferDeleter {
+ void operator()(ll_ringbuffer_t *ring) const
+ { ll_ringbuffer_free(ring); }
+};
+using RingBufferPtr = std::unique_ptr<ll_ringbuffer_t,RingBufferDeleter>;
+
#endif /* RINGBUFFER_H */