[libcamera-devel] [PATCH v4 1/9] libcamera: stream: Add operator<<() to print StreamRole as a string
Jacopo Mondi
jacopo at jmondi.org
Thu Nov 24 13:19:07 CET 2022
Hi Laurent
On Thu, Nov 24, 2022 at 04:51:25AM +0200, Laurent Pinchart via libcamera-devel wrote:
> 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>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> ---
> 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