[libcamera-devel] [PATCH v3 06/13] libcamera: stream: Add operator<<() to print StreamRole as a string
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Oct 24 02:03:49 CEST 2022
libcamera prints stream role values in log messages. To be more
user-friendly, add a specialization of operator<<() to print the role
name as a string instead of a numerical value.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
include/libcamera/stream.h | 3 +++
src/libcamera/stream.cpp | 19 +++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
index f0ae7e62e0a3..efec695ad317 100644
--- a/include/libcamera/stream.h
+++ b/include/libcamera/stream.h
@@ -9,6 +9,7 @@
#include <map>
#include <memory>
+#include <ostream>
#include <string>
#include <vector>
@@ -70,6 +71,8 @@ enum StreamRole {
using StreamRoles = std::vector<StreamRole>;
+std::ostream &operator<<(std::ostream &out, StreamRole role);
+
class Stream
{
public:
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 686e693bccba..67f308157fbf 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -417,6 +417,25 @@ std::string StreamConfiguration::toString() const
* acceptable.
*/
+/**
+ * \brief Insert a text representation of a StreamRole into an output stream
+ * \param[in] out The output stream
+ * \param[in] role The StreamRole
+ * \return The output stream \a out
+ */
+std::ostream &operator<<(std::ostream &out, StreamRole role)
+{
+ static constexpr std::array<const char *, 4> names{
+ "Raw",
+ "StillCapture",
+ "VideoRecording",
+ "Viewfinder",
+ };
+
+ out << names[static_cast<std::underlying_type_t<StreamRole>>(role)];
+ return out;
+}
+
/**
* \typedef StreamRoles
* \brief A vector of StreamRole
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list