summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-10 15:56:18 +0200
committerRobin Gareus <robin@gareus.org>2016-07-10 15:56:18 +0200
commit7dfd39e708233b618c7911eb66e49625c60d4d1c (patch)
tree4783f564be78286dc3b4afac2bad1db3eb91829c /libs
parent140258d8abc366ddd600a7b3079b55a730b10225 (diff)
add a single-element ring-buffer write function
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/luabindings.cc3
-rw-r--r--libs/pbd/pbd/ringbufferNPT.h7
2 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 533395f5bb..89d132015c 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -303,6 +303,7 @@ LuaBindings::common (lua_State* L)
.addFunction ("reset", &PBD::RingBufferNPT<uint8_t>::reset)
.addFunction ("read", &PBD::RingBufferNPT<uint8_t>::read)
.addFunction ("write", &PBD::RingBufferNPT<uint8_t>::write)
+ .addFunction ("write_one", &PBD::RingBufferNPT<uint8_t>::write_one)
.addFunction ("write_space", &PBD::RingBufferNPT<uint8_t>::write_space)
.addFunction ("read_space", &PBD::RingBufferNPT<uint8_t>::read_space)
.addFunction ("increment_read_ptr", &PBD::RingBufferNPT<uint8_t>::increment_read_ptr)
@@ -314,6 +315,7 @@ LuaBindings::common (lua_State* L)
.addFunction ("reset", &PBD::RingBufferNPT<float>::reset)
.addFunction ("read", &PBD::RingBufferNPT<float>::read)
.addFunction ("write", &PBD::RingBufferNPT<float>::write)
+ .addFunction ("write_one", &PBD::RingBufferNPT<float>::write_one)
.addFunction ("write_space", &PBD::RingBufferNPT<float>::write_space)
.addFunction ("read_space", &PBD::RingBufferNPT<float>::read_space)
.addFunction ("increment_read_ptr", &PBD::RingBufferNPT<float>::increment_read_ptr)
@@ -325,6 +327,7 @@ LuaBindings::common (lua_State* L)
.addFunction ("reset", &PBD::RingBufferNPT<int>::reset)
.addFunction ("read", &PBD::RingBufferNPT<int>::read)
.addFunction ("write", &PBD::RingBufferNPT<int>::write)
+ .addFunction ("write_one", &PBD::RingBufferNPT<int>::write_one)
.addFunction ("write_space", &PBD::RingBufferNPT<int>::write_space)
.addFunction ("read_space", &PBD::RingBufferNPT<int>::read_space)
.addFunction ("increment_read_ptr", &PBD::RingBufferNPT<int>::increment_read_ptr)
diff --git a/libs/pbd/pbd/ringbufferNPT.h b/libs/pbd/pbd/ringbufferNPT.h
index f01a6f3a16..267adf83ff 100644
--- a/libs/pbd/pbd/ringbufferNPT.h
+++ b/libs/pbd/pbd/ringbufferNPT.h
@@ -59,6 +59,7 @@ class /*LIBPBD_API*/ RingBufferNPT
size_t read (T *dest, size_t cnt);
size_t write (const T *src, size_t cnt);
+ size_t write_one (const T src);
struct rw_vector {
T *buf[2];
@@ -198,6 +199,12 @@ RingBufferNPT<T>::write (const T *src, size_t cnt)
return to_write;
}
+template<class T> /*LIBPBD_API*/ size_t
+RingBufferNPT<T>::write_one (const T src)
+{
+ return write (&src, 1);
+}
+
template<class T> /*LIBPBD_API*/ void
RingBufferNPT<T>::get_read_vector (typename RingBufferNPT<T>::rw_vector *vec)
{