[libcamera-devel,RFC,v4,03/21] android: metadata: Fix addEntry template type
diff mbox series

Message ID 20210716105631.158153-4-paul.elder@ideasonboard.com
State Superseded
Headers show
Series
  • Preliminary FULL plumbing
Related show

Commit Message

Paul Elder July 16, 2021, 10:56 a.m. UTC
Since we set entries with android tags directly, which are enums and not
arithmetic types, the addEntry template fails to match. Fix this by also
allowing enum values in addEntry.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>

---
New in v4
---
 src/android/camera_metadata.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jacopo Mondi July 17, 2021, 9:59 a.m. UTC | #1
Hi Paul,

On Fri, Jul 16, 2021 at 07:56:13PM +0900, Paul Elder wrote:
> Since we set entries with android tags directly, which are enums and not
> arithmetic types, the addEntry template fails to match. Fix this by also
> allowing enum values in addEntry.
>
> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> ---
> New in v4
> ---
>  src/android/camera_metadata.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h
> index 03b3e701..60be416c 100644
> --- a/src/android/camera_metadata.h
> +++ b/src/android/camera_metadata.h
> @@ -34,7 +34,8 @@ public:
>  	bool hasEntry(uint32_t tag) const;
>
>  	template<typename T,
> -		 std::enable_if_t<std::is_arithmetic_v<T>> * = nullptr>
> +		 std::enable_if_t<std::is_arithmetic_v<T> ||
> +				  std::is_enum_v<T>> * = nullptr>
>  	bool addEntry(uint32_t tag, const T &data)
>  	{
>  		return addEntry(tag, &data, 1, sizeof(T));
> --
> 2.27.0
>

Patch
diff mbox series

diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h
index 03b3e701..60be416c 100644
--- a/src/android/camera_metadata.h
+++ b/src/android/camera_metadata.h
@@ -34,7 +34,8 @@  public:
 	bool hasEntry(uint32_t tag) const;
 
 	template<typename T,
-		 std::enable_if_t<std::is_arithmetic_v<T>> * = nullptr>
+		 std::enable_if_t<std::is_arithmetic_v<T> ||
+				  std::is_enum_v<T>> * = nullptr>
 	bool addEntry(uint32_t tag, const T &data)
 	{
 		return addEntry(tag, &data, 1, sizeof(T));