aboutsummaryrefslogtreecommitdiffstats
path: root/parameter/BooleanParameterType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parameter/BooleanParameterType.cpp')
-rw-r--r--parameter/BooleanParameterType.cpp48
1 files changed, 46 insertions, 2 deletions
diff --git a/parameter/BooleanParameterType.cpp b/parameter/BooleanParameterType.cpp
index 425596d..0e4c636 100644
--- a/parameter/BooleanParameterType.cpp
+++ b/parameter/BooleanParameterType.cpp
@@ -47,7 +47,8 @@ string CBooleanParameterType::getKind() const
return "BooleanParameter";
}
-bool CBooleanParameterType::asInteger(const string& strValue, uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const
+// Tuning interface
+bool CBooleanParameterType::toBlackboard(const string& strValue, uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const
{
if (strValue == "1" || strValue == "0x1") {
@@ -76,7 +77,7 @@ bool CBooleanParameterType::asInteger(const string& strValue, uint32_t& uiValue,
return true;
}
-void CBooleanParameterType::asString(const uint32_t& uiValue, string& strValue, CParameterAccessContext& parameterAccessContext) const
+bool CBooleanParameterType::fromBlackboard(string& strValue, const uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const
{
if (parameterAccessContext.valueSpaceIsRaw() && parameterAccessContext.outputRawFormatIsHex()) {
@@ -84,4 +85,47 @@ void CBooleanParameterType::asString(const uint32_t& uiValue, string& strValue,
}
strValue += uiValue ? "1" : "0";
+
+ return true;
+}
+
+// Value access
+bool CBooleanParameterType::toBlackboard(bool bUserValue, uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const
+{
+ (void)parameterAccessContext;
+
+ uiValue = bUserValue;
+
+ return true;
+}
+
+bool CBooleanParameterType::fromBlackboard(bool& bUserValue, uint32_t uiValue, CParameterAccessContext& parameterAccessContext) const
+{
+ (void)parameterAccessContext;
+
+ bUserValue = uiValue != 0;
+
+ return true;
+}
+
+// Integer
+bool CBooleanParameterType::toBlackboard(uint32_t uiUserValue, uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const
+{
+ if (uiUserValue > 1) {
+
+ parameterAccessContext.setError("Value out of range");
+ }
+
+ uiValue = uiUserValue;
+
+ return true;
+}
+
+bool CBooleanParameterType::fromBlackboard(uint32_t& uiUserValue, uint32_t uiValue, CParameterAccessContext& parameterAccessContext) const
+{
+ (void)parameterAccessContext;
+
+ uiUserValue = uiValue != 0;
+
+ return true;
}