cam: stream_options: Use OptionValue::empty() to test if option is set

The roles() and updateConfiguration() functions check if the OptStream
OptionValue they receive is empty by first casting it to an array. To
prepare for the toArray() function not allowing such a cast when the
option value is empty, test if the option value is empty instead.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2021-07-15 22:58:50 +03:00
parent 812e5a946f
commit 11298f3d47

View File

@@ -40,12 +40,12 @@ KeyValueParser::Options StreamKeyValueParser::parse(const char *arguments)
StreamRoles StreamKeyValueParser::roles(const OptionValue &values)
{
const std::vector<OptionValue> &streamParameters = values.toArray();
/* If no configuration values to examine default to viewfinder. */
if (streamParameters.empty())
if (values.empty())
return { StreamRole::Viewfinder };
const std::vector<OptionValue> &streamParameters = values.toArray();
StreamRoles roles;
for (auto const &value : streamParameters) {
StreamRole role;
@@ -63,17 +63,17 @@ StreamRoles StreamKeyValueParser::roles(const OptionValue &values)
int StreamKeyValueParser::updateConfiguration(CameraConfiguration *config,
const OptionValue &values)
{
const std::vector<OptionValue> &streamParameters = values.toArray();
if (!config) {
std::cerr << "No configuration provided" << std::endl;
return -EINVAL;
}
/* If no configuration values nothing to do. */
if (!streamParameters.size())
if (values.empty())
return 0;
const std::vector<OptionValue> &streamParameters = values.toArray();
if (config->size() != streamParameters.size()) {
std::cerr
<< "Number of streams in configuration "