diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-09-28 00:40:51 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-10-04 19:33:08 +0300 |
commit | 224ef9776ac5be51f984780c761713027f2c6102 (patch) | |
tree | 3d626e0a4991c70e4b51b57abe0e821deb4a138b /include | |
parent | c5dfd9d57eae881626a842c666cc6140b11bbba4 (diff) |
libcamera: controls: Make ControlValue get/set accessors template methods
The ControlValue get accessors are implemented with functions of
different names, whlie the set accessors use polymorphism to support
different control types. This isn't very consistent and intuitive. Make
the API clearer by using template methods. This will also have the added
advantage that support for the new types will only require adding
template specialisations, without adding new methods.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/controls.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h index ffba880a..0886370f 100644 --- a/include/libcamera/controls.h +++ b/include/libcamera/controls.h @@ -36,13 +36,10 @@ public: ControlType type() const { return type_; }; bool isNone() const { return type_ == ControlTypeNone; }; - void set(bool value); - void set(int value); - void set(int64_t value); - - bool getBool() const; - int getInt() const; - int64_t getInt64() const; + template<typename T> + const T &get() const; + template<typename T> + void set(const T &value); std::string toString() const; |