libcamera: byte_stream_buffer: Add Span<> support

Add support to write and read a Span<> to and from the ByteStreamBuffer
class.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Jacopo Mondi
2020-01-13 13:40:46 +01:00
committed by Laurent Pinchart
parent 34fc1f38bd
commit 8a1f0321dc
2 changed files with 35 additions and 0 deletions

View File

@@ -10,6 +10,8 @@
#include <stddef.h>
#include <stdint.h>
#include <libcamera/span.h>
namespace libcamera {
class ByteStreamBuffer
@@ -33,12 +35,27 @@ public:
{
return read(reinterpret_cast<uint8_t *>(t), sizeof(*t));
}
template<typename T>
int read(const Span<T> &data)
{
return read(reinterpret_cast<uint8_t *>(data.data()),
data.size_bytes());
}
template<typename T>
int write(const T *t)
{
return write(reinterpret_cast<const uint8_t *>(t), sizeof(*t));
}
template<typename T>
int write(const Span<T> &data)
{
return write(reinterpret_cast<const uint8_t *>(data.data()),
data.size_bytes());
}
private:
ByteStreamBuffer(const ByteStreamBuffer &other) = delete;
ByteStreamBuffer &operator=(const ByteStreamBuffer &other) = delete;