[libcamera-devel] [PATCH] cam: options: Add explicit conversion methods to OptionValue
Niklas Söderlund
niklas.soderlund at ragnatech.se
Fri Feb 1 10:40:28 CET 2019
Hi Laurent,
Thanks for your patch.
On 2019-02-01 11:29:19 +0200, Laurent Pinchart wrote:
> The OptionValue class defines operators to convert the variant to all
> the supported option types. As a convenience, add explicit methods to
> perform the same operations, avoiding the need to write long
> static_cast<>() statements in the caller.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/cam/options.cpp | 19 +++++++++++++++++--
> src/cam/options.h | 4 ++++
> 2 files changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/src/cam/options.cpp b/src/cam/options.cpp
> index 4c9f3a36d435..eb59376fa459 100644
> --- a/src/cam/options.cpp
> +++ b/src/cam/options.cpp
> @@ -273,6 +273,21 @@ OptionValue::OptionValue(const KeyValueParser::Options &value)
> }
>
> OptionValue::operator int() const
> +{
> + return toInteger();
> +}
> +
> +OptionValue::operator std::string() const
> +{
> + return toString();
> +}
> +
> +OptionValue::operator KeyValueParser::Options() const
> +{
> + return toKeyValues();
> +}
> +
> +int OptionValue::toInteger() const
> {
> if (type_ != OptionInteger)
> return 0;
> @@ -280,7 +295,7 @@ OptionValue::operator int() const
> return integer_;
> }
>
> -OptionValue::operator std::string() const
> +std::string OptionValue::toString() const
> {
> if (type_ != OptionString)
> return std::string();
> @@ -288,7 +303,7 @@ OptionValue::operator std::string() const
> return string_;
> }
>
> -OptionValue::operator KeyValueParser::Options() const
> +KeyValueParser::Options OptionValue::toKeyValues() const
> {
> if (type_ != OptionKeyValue)
> return KeyValueParser::Options();
> diff --git a/src/cam/options.h b/src/cam/options.h
> index e1fd62ecd369..2d3aa50b5051 100644
> --- a/src/cam/options.h
> +++ b/src/cam/options.h
> @@ -91,6 +91,10 @@ public:
> operator std::string() const;
> operator KeyValueParser::Options() const;
>
> + int toInteger() const;
> + std::string toString() const;
> + KeyValueParser::Options toKeyValues() const;
> +
> private:
> OptionType type_;
> int integer_;
> --
> Regards,
>
> Laurent Pinchart
>
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list