cam: main: Cache lookup of role property

The code handling the stream role option retrieves the role property and
converts it to a string in every branch. Cache it and use the cached
value.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2020-03-23 12:33:30 +02:00
parent c153be4fec
commit 422e3e92ad

View file

@ -209,17 +209,19 @@ int CamApp::prepareConfig()
for (auto const &value : streamOptions) {
KeyValueParser::Options opt = value.toKeyValues();
if (!opt.isSet("role")) {
roles.push_back(StreamRole::VideoRecording);
} else if (opt["role"].toString() == "viewfinder") {
std::string role = opt.isSet("role")
? opt["role"].toString()
: "viewfinder";
if (role == "viewfinder") {
roles.push_back(StreamRole::Viewfinder);
} else if (opt["role"].toString() == "video") {
} else if (role == "video") {
roles.push_back(StreamRole::VideoRecording);
} else if (opt["role"].toString() == "still") {
} else if (role == "still") {
roles.push_back(StreamRole::StillCapture);
} else {
std::cerr << "Unknown stream role "
<< opt["role"].toString() << std::endl;
<< role << std::endl;
return -EINVAL;
}
}