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_;
