@@ -22,12 +22,10 @@ namespace libcamera {
class GlobalConfiguration
{
public:
- using Option = const ValueNode &;
-
GlobalConfiguration();
unsigned int version() const;
- Option configuration() const;
+ const ValueNode &configuration() const;
template<typename T>
std::optional<T> option(
@@ -55,14 +55,6 @@ LOG_DEFINE_CATEGORY(Configuration)
* options, or configuration() to access the whole configuration.
*/
-/**
- * \typedef GlobalConfiguration::Option
- * \brief Type representing a configuration option
- *
- * All code outside GlobalConfiguration must use this type declaration and not
- * the underlying type.
- */
-
/**
* \brief Initialize the global configuration
*/
@@ -158,7 +150,7 @@ unsigned int GlobalConfiguration::version() const
*
* \return The top-level configuration option
*/
-GlobalConfiguration::Option GlobalConfiguration::configuration() const
+const ValueNode &GlobalConfiguration::configuration() const
{
return (*configuration_)["configuration"];
}
@@ -1880,7 +1880,7 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr<MediaDevice> media,
swIspEnabled_ = info.swIspEnabled;
const GlobalConfiguration &configuration = cameraManager()->_d()->configuration();
- for (GlobalConfiguration::Option entry :
+ for (const ValueNode &entry :
configuration.configuration()["pipelines"]["simple"]["supported_devices"]
.asList()) {
auto name = entry["driver"].get<std::string>();
The GlobalConfiguration::Option type was introduced to decouple the configuration option storage from its users, and make changes to the underlying implementation easier. While the type could indeed be changed to map to a different class, the API would need to remain the same. The Option type therefore brings little value. Drop it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- include/libcamera/internal/global_configuration.h | 4 +--- src/libcamera/global_configuration.cpp | 10 +--------- src/libcamera/pipeline/simple/simple.cpp | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-)