add a single-element ring-buffer write function
authorRobin Gareus <robin@gareus.org>
Sun, 10 Jul 2016 13:56:18 +0000 (15:56 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 10 Jul 2016 13:56:18 +0000 (15:56 +0200)
libs/ardour/luabindings.cc
libs/pbd/pbd/ringbufferNPT.h

index 533395f5bb406e7f595b113554d1810da51091c8..89d132015c43409ade1b526bae1942b8276182d9 100644 (file)
@@ -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)
index f01a6f3a16ad08031050f7d24af97525e5f7b486..267adf83ffd522c343c23235ed7ac6fb5b3d5329 100644 (file)
@@ -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)
 {