libcamera/test/camera/configuration_default.cpp
Laurent Pinchart 75de3bff9e libcamera: camera: Return a pointer from generateConfiguration()
To prepare for specialising the CameraConfiguration class in pipeline
handlers, return a pointer to a camera configuration instead of a
reference from Camera::generateConfiguration(). The camera configuration
always needs to be allocated from the pipeline handler, and its
ownership is passed to the application.

For symmetry, change Camera::configure() to take a CameraConfiguration
pointer instead of a reference. This aligns with our coding practice of
passing parameters that are modified by the callee by pointer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
2019-05-23 01:07:21 +03:00

47 lines
983 B
C++

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* libcamera Camera API tests
*/
#include <iostream>
#include "camera_test.h"
using namespace std;
namespace {
class ConfigurationDefault : public CameraTest
{
protected:
int run()
{
std::unique_ptr<CameraConfiguration> config;
/* Test asking for configuration for a video stream. */
config = camera_->generateConfiguration({ StreamRole::VideoRecording });
if (!config || !config->isValid()) {
cout << "Default configuration invalid" << endl;
return TestFail;
}
/*
* Test that asking for configuration for an empty array of
* stream roles returns an empty camera configuration.
*/
config = camera_->generateConfiguration({});
if (!config || config->isValid()) {
cout << "Failed to retrieve configuration for empty roles list"
<< endl;
return TestFail;
}
return TestPass;
}
};
} /* namespace */
TEST_REGISTER(ConfigurationDefault);