apps: cam: Highlight default enumerator

Print "[default]" after the default enumerator when listing controls.

Example:

  $ cam -c 1 --list-controls
  [...]
  Control: [inout] libcamera::ExposureTimeMode:
    - ExposureTimeModeAuto (0) [default]
    - ExposureTimeModeManual (1)

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Barnabás Pőcze 2025-03-14 16:55:19 +01:00
parent fbb67a73c4
commit 90208694c8

View file

@ -10,6 +10,7 @@
#include <iomanip>
#include <iostream>
#include <limits.h>
#include <optional>
#include <sstream>
#include <libcamera/control_ids.h>
@ -174,6 +175,11 @@ void CameraSession::listControls() const
std::cout << "Control: " << io.str()
<< id->vendor() << "::" << id->name() << ":"
<< std::endl;
std::optional<int32_t> def;
if (!info.def().isNone())
def = info.def().get<int32_t>();
for (const auto &value : info.values()) {
int32_t val = value.get<int32_t>();
const auto &it = id->enumerators().find(val);
@ -183,7 +189,10 @@ void CameraSession::listControls() const
std::cout << "UNKNOWN";
else
std::cout << it->second;
std::cout << " (" << val << ")" << std::endl;
std::cout << " (" << val << ")"
<< (val == def ? " [default]" : "")
<< std::endl;
}
}