[libcamera-devel,v2,03/13] libcamera: controls: Use explicit 32-bit integer types

Message ID 20190929190254.18920-4-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • Improve the application-facing controls API
Related show

Commit Message

Laurent Pinchart Sept. 29, 2019, 7:02 p.m. UTC
Make the control API more explicit when dealing with integer controls by
specifying the size. We already do so for 64-bit integers, using int64_t
and ControlTypeInteger64, do the same for 32-bit integers.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
---
 include/libcamera/controls.h        |  6 ++---
 src/libcamera/controls.cpp          | 36 ++++++++++++++---------------
 src/libcamera/pipeline/uvcvideo.cpp | 10 ++++----
 src/libcamera/pipeline/vimc.cpp     |  6 ++---
 test/controls/control_info.cpp      | 10 ++++----
 test/controls/control_list.cpp      | 16 ++++++-------
 test/controls/control_value.cpp     |  6 ++---
 7 files changed, 46 insertions(+), 44 deletions(-)

Comments

Niklas Söderlund Oct. 3, 2019, 7:05 p.m. UTC | #1
Hi Laurent,

Thanks for your patch.

On 2019-09-29 22:02:44 +0300, Laurent Pinchart wrote:
> Make the control API more explicit when dealing with integer controls by
> specifying the size. We already do so for 64-bit integers, using int64_t
> and ControlTypeInteger64, do the same for 32-bit integers.
> 
> 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>

> ---
>  include/libcamera/controls.h        |  6 ++---
>  src/libcamera/controls.cpp          | 36 ++++++++++++++---------------
>  src/libcamera/pipeline/uvcvideo.cpp | 10 ++++----
>  src/libcamera/pipeline/vimc.cpp     |  6 ++---
>  test/controls/control_info.cpp      | 10 ++++----
>  test/controls/control_list.cpp      | 16 ++++++-------
>  test/controls/control_value.cpp     |  6 ++---
>  7 files changed, 46 insertions(+), 44 deletions(-)
> 
> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> index 0886370f0901..a3089064c4b5 100644
> --- a/include/libcamera/controls.h
> +++ b/include/libcamera/controls.h
> @@ -21,7 +21,7 @@ class Camera;
>  enum ControlType {
>  	ControlTypeNone,
>  	ControlTypeBool,
> -	ControlTypeInteger,
> +	ControlTypeInteger32,
>  	ControlTypeInteger64,
>  };
>  
> @@ -30,7 +30,7 @@ class ControlValue
>  public:
>  	ControlValue();
>  	ControlValue(bool value);
> -	ControlValue(int value);
> +	ControlValue(int32_t value);
>  	ControlValue(int64_t value);
>  
>  	ControlType type() const { return type_; };
> @@ -48,7 +48,7 @@ private:
>  
>  	union {
>  		bool bool_;
> -		int integer_;
> +		int32_t integer32_;
>  		int64_t integer64_;
>  	};
>  };
> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
> index 88aab88db327..295ccd55a622 100644
> --- a/src/libcamera/controls.cpp
> +++ b/src/libcamera/controls.cpp
> @@ -31,8 +31,8 @@ LOG_DEFINE_CATEGORY(Controls)
>   * Invalid type, for empty values
>   * \var ControlTypeBool
>   * The control stores a boolean value
> - * \var ControlTypeInteger
> - * The control stores an integer value
> + * \var ControlTypeInteger32
> + * The control stores a 32-bit integer value
>   * \var ControlTypeInteger64
>   * The control stores a 64-bit integer value
>   */
> @@ -63,8 +63,8 @@ ControlValue::ControlValue(bool value)
>   * \brief Construct an integer ControlValue
>   * \param[in] value Integer value to store
>   */
> -ControlValue::ControlValue(int value)
> -	: type_(ControlTypeInteger), integer_(value)
> +ControlValue::ControlValue(int32_t value)
> +	: type_(ControlTypeInteger32), integer32_(value)
>  {
>  }
>  
> @@ -115,17 +115,17 @@ const bool &ControlValue::get<bool>() const
>  }
>  
>  template<>
> -const int &ControlValue::get<int>() const
> +const int32_t &ControlValue::get<int32_t>() const
>  {
> -	ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
> +	ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
>  
> -	return integer_;
> +	return integer32_;
>  }
>  
>  template<>
>  const int64_t &ControlValue::get<int64_t>() const
>  {
> -	ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
> +	ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
>  
>  	return integer64_;
>  }
> @@ -138,10 +138,10 @@ void ControlValue::set<bool>(const bool &value)
>  }
>  
>  template<>
> -void ControlValue::set<int>(const int &value)
> +void ControlValue::set<int32_t>(const int32_t &value)
>  {
> -	type_ = ControlTypeInteger;
> -	integer_ = value;
> +	type_ = ControlTypeInteger32;
> +	integer32_ = value;
>  }
>  
>  template<>
> @@ -163,8 +163,8 @@ std::string ControlValue::toString() const
>  		return "<None>";
>  	case ControlTypeBool:
>  		return bool_ ? "True" : "False";
> -	case ControlTypeInteger:
> -		return std::to_string(integer_);
> +	case ControlTypeInteger32:
> +		return std::to_string(integer32_);
>  	case ControlTypeInteger64:
>  		return std::to_string(integer64_);
>  	}
> @@ -186,35 +186,35 @@ std::string ControlValue::toString() const
>  
>  /**
>   * \var Brightness
> - * ControlType: Integer
> + * ControlType: Integer32
>   *
>   * Specify a fixed brightness parameter.
>   */
>  
>  /**
>   * \var Contrast
> - * ControlType: Integer
> + * ControlType: Integer32
>   *
>   * Specify a fixed contrast parameter.
>   */
>  
>  /**
>   * \var Saturation
> - * ControlType: Integer
> + * ControlType: Integer32
>   *
>   * Specify a fixed saturation parameter.
>   */
>  
>  /**
>   * \var ManualExposure
> - * ControlType: Integer
> + * ControlType: Integer32
>   *
>   * Specify a fixed exposure time in milli-seconds
>   */
>  
>  /**
>   * \var ManualGain
> - * ControlType: Integer
> + * ControlType: Integer32
>   *
>   * Specify a fixed gain parameter
>   */
> diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
> index 81c548af2c64..0d56758e3e1d 100644
> --- a/src/libcamera/pipeline/uvcvideo.cpp
> +++ b/src/libcamera/pipeline/uvcvideo.cpp
> @@ -235,24 +235,24 @@ int PipelineHandlerUVC::processControls(UVCCameraData *data, Request *request)
>  
>  		switch (ci->id()) {
>  		case Brightness:
> -			controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
> +			controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
>  			break;
>  
>  		case Contrast:
> -			controls.add(V4L2_CID_CONTRAST, value.get<int>());
> +			controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
>  			break;
>  
>  		case Saturation:
> -			controls.add(V4L2_CID_SATURATION, value.get<int>());
> +			controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
>  			break;
>  
>  		case ManualExposure:
>  			controls.add(V4L2_CID_EXPOSURE_AUTO, 1);
> -			controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int>());
> +			controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int32_t>());
>  			break;
>  
>  		case ManualGain:
> -			controls.add(V4L2_CID_GAIN, value.get<int>());
> +			controls.add(V4L2_CID_GAIN, value.get<int32_t>());
>  			break;
>  
>  		default:
> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
> index 3e34e7a0edbf..e549dc64b996 100644
> --- a/src/libcamera/pipeline/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc.cpp
> @@ -288,15 +288,15 @@ int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request)
>  
>  		switch (ci->id()) {
>  		case Brightness:
> -			controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
> +			controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
>  			break;
>  
>  		case Contrast:
> -			controls.add(V4L2_CID_CONTRAST, value.get<int>());
> +			controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
>  			break;
>  
>  		case Saturation:
> -			controls.add(V4L2_CID_SATURATION, value.get<int>());
> +			controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
>  			break;
>  
>  		default:
> diff --git a/test/controls/control_info.cpp b/test/controls/control_info.cpp
> index faefaaa444d9..2aba568a302e 100644
> --- a/test/controls/control_info.cpp
> +++ b/test/controls/control_info.cpp
> @@ -26,13 +26,14 @@ protected:
>  		ControlInfo info(Brightness);
>  
>  		if (info.id() != Brightness ||
> -		    info.type() != ControlTypeInteger ||
> +		    info.type() != ControlTypeInteger32 ||
>  		    info.name() != std::string("Brightness")) {
>  			cout << "Invalid control identification for Brightness" << endl;
>  			return TestFail;
>  		}
>  
> -		if (info.min().get<int>() != 0 || info.max().get<int>() != 0) {
> +		if (info.min().get<int32_t>() != 0 ||
> +		    info.max().get<int32_t>() != 0) {
>  			cout << "Invalid control range for Brightness" << endl;
>  			return TestFail;
>  		}
> @@ -44,13 +45,14 @@ protected:
>  		info = ControlInfo(Contrast, 10, 200);
>  
>  		if (info.id() != Contrast ||
> -		    info.type() != ControlTypeInteger ||
> +		    info.type() != ControlTypeInteger32 ||
>  		    info.name() != std::string("Contrast")) {
>  			cout << "Invalid control identification for Contrast" << endl;
>  			return TestFail;
>  		}
>  
> -		if (info.min().get<int>() != 10 || info.max().get<int>() != 200) {
> +		if (info.min().get<int32_t>() != 10 ||
> +		    info.max().get<int32_t>() != 200) {
>  			cout << "Invalid control range for Contrast" << endl;
>  			return TestFail;
>  		}
> diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
> index 0402e7c23dba..5215840b1c4e 100644
> --- a/test/controls/control_list.cpp
> +++ b/test/controls/control_list.cpp
> @@ -96,7 +96,7 @@ protected:
>  			return TestFail;
>  		}
>  
> -		if (list[Brightness].get<int>() != 255) {
> +		if (list[Brightness].get<int32_t>() != 255) {
>  			cout << "Incorrest Brightness control value" << endl;
>  			return TestFail;
>  		}
> @@ -125,8 +125,8 @@ protected:
>  		/*
>  		 * Test control value retrieval and update through ControlInfo.
>  		 */
> -		if (list[brightness].get<int>() != 64 ||
> -		    list[contrast].get<int>() != 128) {
> +		if (list[brightness].get<int32_t>() != 64 ||
> +		    list[contrast].get<int32_t>() != 128) {
>  			cout << "Failed to retrieve control value" << endl;
>  			return TestFail;
>  		}
> @@ -134,8 +134,8 @@ protected:
>  		list[brightness] = 10;
>  		list[contrast] = 20;
>  
> -		if (list[brightness].get<int>() != 10 ||
> -		    list[contrast].get<int>() != 20) {
> +		if (list[brightness].get<int32_t>() != 10 ||
> +		    list[contrast].get<int32_t>() != 20) {
>  			cout << "Failed to update control value" << endl;
>  			return TestFail;
>  		}
> @@ -185,9 +185,9 @@ protected:
>  			return TestFail;
>  		}
>  
> -		if (newList[Brightness].get<int>() != 10 ||
> -		    newList[Contrast].get<int>() != 20 ||
> -		    newList[Saturation].get<int>() != 255) {
> +		if (newList[Brightness].get<int32_t>() != 10 ||
> +		    newList[Contrast].get<int32_t>() != 20 ||
> +		    newList[Saturation].get<int32_t>() != 255) {
>  			cout << "New list contains incorrect values" << endl;
>  			return TestFail;
>  		}
> diff --git a/test/controls/control_value.cpp b/test/controls/control_value.cpp
> index 397c43f799ad..a1ffa842f29e 100644
> --- a/test/controls/control_value.cpp
> +++ b/test/controls/control_value.cpp
> @@ -27,7 +27,7 @@ protected:
>  		     << " Bool: " << boolean.toString()
>  		     << endl;
>  
> -		if (integer.get<int>() != 1234) {
> +		if (integer.get<int32_t>() != 1234) {
>  			cerr << "Failed to get Integer" << endl;
>  			return TestFail;
>  		}
> @@ -56,8 +56,8 @@ protected:
>  			return TestFail;
>  		}
>  
> -		value.set<int>(10);
> -		if (value.get<int>() != 10) {
> +		value.set<int32_t>(10);
> +		if (value.get<int32_t>() != 10) {
>  			cerr << "Failed to get Integer" << endl;
>  			return TestFail;
>  		}
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
index 0886370f0901..a3089064c4b5 100644
--- a/include/libcamera/controls.h
+++ b/include/libcamera/controls.h
@@ -21,7 +21,7 @@  class Camera;
 enum ControlType {
 	ControlTypeNone,
 	ControlTypeBool,
-	ControlTypeInteger,
+	ControlTypeInteger32,
 	ControlTypeInteger64,
 };
 
@@ -30,7 +30,7 @@  class ControlValue
 public:
 	ControlValue();
 	ControlValue(bool value);
-	ControlValue(int value);
+	ControlValue(int32_t value);
 	ControlValue(int64_t value);
 
 	ControlType type() const { return type_; };
@@ -48,7 +48,7 @@  private:
 
 	union {
 		bool bool_;
-		int integer_;
+		int32_t integer32_;
 		int64_t integer64_;
 	};
 };
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
index 88aab88db327..295ccd55a622 100644
--- a/src/libcamera/controls.cpp
+++ b/src/libcamera/controls.cpp
@@ -31,8 +31,8 @@  LOG_DEFINE_CATEGORY(Controls)
  * Invalid type, for empty values
  * \var ControlTypeBool
  * The control stores a boolean value
- * \var ControlTypeInteger
- * The control stores an integer value
+ * \var ControlTypeInteger32
+ * The control stores a 32-bit integer value
  * \var ControlTypeInteger64
  * The control stores a 64-bit integer value
  */
@@ -63,8 +63,8 @@  ControlValue::ControlValue(bool value)
  * \brief Construct an integer ControlValue
  * \param[in] value Integer value to store
  */
-ControlValue::ControlValue(int value)
-	: type_(ControlTypeInteger), integer_(value)
+ControlValue::ControlValue(int32_t value)
+	: type_(ControlTypeInteger32), integer32_(value)
 {
 }
 
@@ -115,17 +115,17 @@  const bool &ControlValue::get<bool>() const
 }
 
 template<>
-const int &ControlValue::get<int>() const
+const int32_t &ControlValue::get<int32_t>() const
 {
-	ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
+	ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
 
-	return integer_;
+	return integer32_;
 }
 
 template<>
 const int64_t &ControlValue::get<int64_t>() const
 {
-	ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
+	ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
 
 	return integer64_;
 }
@@ -138,10 +138,10 @@  void ControlValue::set<bool>(const bool &value)
 }
 
 template<>
-void ControlValue::set<int>(const int &value)
+void ControlValue::set<int32_t>(const int32_t &value)
 {
-	type_ = ControlTypeInteger;
-	integer_ = value;
+	type_ = ControlTypeInteger32;
+	integer32_ = value;
 }
 
 template<>
@@ -163,8 +163,8 @@  std::string ControlValue::toString() const
 		return "<None>";
 	case ControlTypeBool:
 		return bool_ ? "True" : "False";
-	case ControlTypeInteger:
-		return std::to_string(integer_);
+	case ControlTypeInteger32:
+		return std::to_string(integer32_);
 	case ControlTypeInteger64:
 		return std::to_string(integer64_);
 	}
@@ -186,35 +186,35 @@  std::string ControlValue::toString() const
 
 /**
  * \var Brightness
- * ControlType: Integer
+ * ControlType: Integer32
  *
  * Specify a fixed brightness parameter.
  */
 
 /**
  * \var Contrast
- * ControlType: Integer
+ * ControlType: Integer32
  *
  * Specify a fixed contrast parameter.
  */
 
 /**
  * \var Saturation
- * ControlType: Integer
+ * ControlType: Integer32
  *
  * Specify a fixed saturation parameter.
  */
 
 /**
  * \var ManualExposure
- * ControlType: Integer
+ * ControlType: Integer32
  *
  * Specify a fixed exposure time in milli-seconds
  */
 
 /**
  * \var ManualGain
- * ControlType: Integer
+ * ControlType: Integer32
  *
  * Specify a fixed gain parameter
  */
diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index 81c548af2c64..0d56758e3e1d 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -235,24 +235,24 @@  int PipelineHandlerUVC::processControls(UVCCameraData *data, Request *request)
 
 		switch (ci->id()) {
 		case Brightness:
-			controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
+			controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
 			break;
 
 		case Contrast:
-			controls.add(V4L2_CID_CONTRAST, value.get<int>());
+			controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
 			break;
 
 		case Saturation:
-			controls.add(V4L2_CID_SATURATION, value.get<int>());
+			controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
 			break;
 
 		case ManualExposure:
 			controls.add(V4L2_CID_EXPOSURE_AUTO, 1);
-			controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int>());
+			controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int32_t>());
 			break;
 
 		case ManualGain:
-			controls.add(V4L2_CID_GAIN, value.get<int>());
+			controls.add(V4L2_CID_GAIN, value.get<int32_t>());
 			break;
 
 		default:
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
index 3e34e7a0edbf..e549dc64b996 100644
--- a/src/libcamera/pipeline/vimc.cpp
+++ b/src/libcamera/pipeline/vimc.cpp
@@ -288,15 +288,15 @@  int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request)
 
 		switch (ci->id()) {
 		case Brightness:
-			controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
+			controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
 			break;
 
 		case Contrast:
-			controls.add(V4L2_CID_CONTRAST, value.get<int>());
+			controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
 			break;
 
 		case Saturation:
-			controls.add(V4L2_CID_SATURATION, value.get<int>());
+			controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
 			break;
 
 		default:
diff --git a/test/controls/control_info.cpp b/test/controls/control_info.cpp
index faefaaa444d9..2aba568a302e 100644
--- a/test/controls/control_info.cpp
+++ b/test/controls/control_info.cpp
@@ -26,13 +26,14 @@  protected:
 		ControlInfo info(Brightness);
 
 		if (info.id() != Brightness ||
-		    info.type() != ControlTypeInteger ||
+		    info.type() != ControlTypeInteger32 ||
 		    info.name() != std::string("Brightness")) {
 			cout << "Invalid control identification for Brightness" << endl;
 			return TestFail;
 		}
 
-		if (info.min().get<int>() != 0 || info.max().get<int>() != 0) {
+		if (info.min().get<int32_t>() != 0 ||
+		    info.max().get<int32_t>() != 0) {
 			cout << "Invalid control range for Brightness" << endl;
 			return TestFail;
 		}
@@ -44,13 +45,14 @@  protected:
 		info = ControlInfo(Contrast, 10, 200);
 
 		if (info.id() != Contrast ||
-		    info.type() != ControlTypeInteger ||
+		    info.type() != ControlTypeInteger32 ||
 		    info.name() != std::string("Contrast")) {
 			cout << "Invalid control identification for Contrast" << endl;
 			return TestFail;
 		}
 
-		if (info.min().get<int>() != 10 || info.max().get<int>() != 200) {
+		if (info.min().get<int32_t>() != 10 ||
+		    info.max().get<int32_t>() != 200) {
 			cout << "Invalid control range for Contrast" << endl;
 			return TestFail;
 		}
diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
index 0402e7c23dba..5215840b1c4e 100644
--- a/test/controls/control_list.cpp
+++ b/test/controls/control_list.cpp
@@ -96,7 +96,7 @@  protected:
 			return TestFail;
 		}
 
-		if (list[Brightness].get<int>() != 255) {
+		if (list[Brightness].get<int32_t>() != 255) {
 			cout << "Incorrest Brightness control value" << endl;
 			return TestFail;
 		}
@@ -125,8 +125,8 @@  protected:
 		/*
 		 * Test control value retrieval and update through ControlInfo.
 		 */
-		if (list[brightness].get<int>() != 64 ||
-		    list[contrast].get<int>() != 128) {
+		if (list[brightness].get<int32_t>() != 64 ||
+		    list[contrast].get<int32_t>() != 128) {
 			cout << "Failed to retrieve control value" << endl;
 			return TestFail;
 		}
@@ -134,8 +134,8 @@  protected:
 		list[brightness] = 10;
 		list[contrast] = 20;
 
-		if (list[brightness].get<int>() != 10 ||
-		    list[contrast].get<int>() != 20) {
+		if (list[brightness].get<int32_t>() != 10 ||
+		    list[contrast].get<int32_t>() != 20) {
 			cout << "Failed to update control value" << endl;
 			return TestFail;
 		}
@@ -185,9 +185,9 @@  protected:
 			return TestFail;
 		}
 
-		if (newList[Brightness].get<int>() != 10 ||
-		    newList[Contrast].get<int>() != 20 ||
-		    newList[Saturation].get<int>() != 255) {
+		if (newList[Brightness].get<int32_t>() != 10 ||
+		    newList[Contrast].get<int32_t>() != 20 ||
+		    newList[Saturation].get<int32_t>() != 255) {
 			cout << "New list contains incorrect values" << endl;
 			return TestFail;
 		}
diff --git a/test/controls/control_value.cpp b/test/controls/control_value.cpp
index 397c43f799ad..a1ffa842f29e 100644
--- a/test/controls/control_value.cpp
+++ b/test/controls/control_value.cpp
@@ -27,7 +27,7 @@  protected:
 		     << " Bool: " << boolean.toString()
 		     << endl;
 
-		if (integer.get<int>() != 1234) {
+		if (integer.get<int32_t>() != 1234) {
 			cerr << "Failed to get Integer" << endl;
 			return TestFail;
 		}
@@ -56,8 +56,8 @@  protected:
 			return TestFail;
 		}
 
-		value.set<int>(10);
-		if (value.get<int>() != 10) {
+		value.set<int32_t>(10);
+		if (value.get<int32_t>() != 10) {
 			cerr << "Failed to get Integer" << endl;
 			return TestFail;
 		}