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>
This commit is contained in:
Laurent Pinchart 2019-04-29 20:58:34 +03:00
parent 77ae64eb24
commit 75de3bff9e
15 changed files with 184 additions and 126 deletions

View file

@ -18,21 +18,21 @@ class ConfigurationDefault : public CameraTest
protected:
int run()
{
CameraConfiguration config;
std::unique_ptr<CameraConfiguration> config;
/* Test asking for configuration for a video stream. */
config = camera_->generateConfiguration({ StreamRole::VideoRecording });
if (!config.isValid()) {
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 list of configurations.
* stream roles returns an empty camera configuration.
*/
config = camera_->generateConfiguration({});
if (config.isValid()) {
if (!config || config->isValid()) {
cout << "Failed to retrieve configuration for empty roles list"
<< endl;
return TestFail;