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::reset) .addFunction ("read", &PBD::RingBufferNPT::read) .addFunction ("write", &PBD::RingBufferNPT::write) + .addFunction ("write_one", &PBD::RingBufferNPT::write_one) .addFunction ("write_space", &PBD::RingBufferNPT::write_space) .addFunction ("read_space", &PBD::RingBufferNPT::read_space) .addFunction ("increment_read_ptr", &PBD::RingBufferNPT::increment_read_ptr) @@ -314,6 +315,7 @@ LuaBindings::common (lua_State* L) .addFunction ("reset", &PBD::RingBufferNPT::reset) .addFunction ("read", &PBD::RingBufferNPT::read) .addFunction ("write", &PBD::RingBufferNPT::write) + .addFunction ("write_one", &PBD::RingBufferNPT::write_one) .addFunction ("write_space", &PBD::RingBufferNPT::write_space) .addFunction ("read_space", &PBD::RingBufferNPT::read_space) .addFunction ("increment_read_ptr", &PBD::RingBufferNPT::increment_read_ptr) @@ -325,6 +327,7 @@ LuaBindings::common (lua_State* L) .addFunction ("reset", &PBD::RingBufferNPT::reset) .addFunction ("read", &PBD::RingBufferNPT::read) .addFunction ("write", &PBD::RingBufferNPT::write) + .addFunction ("write_one", &PBD::RingBufferNPT::write_one) .addFunction ("write_space", &PBD::RingBufferNPT::write_space) .addFunction ("read_space", &PBD::RingBufferNPT::read_space) .addFunction ("increment_read_ptr", &PBD::RingBufferNPT::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::write (const T *src, size_t cnt) return to_write; } +template /*LIBPBD_API*/ size_t +RingBufferNPT::write_one (const T src) +{ + return write (&src, 1); +} + template /*LIBPBD_API*/ void RingBufferNPT::get_read_vector (typename RingBufferNPT::rw_vector *vec) {