libcamera: camera_manager: Turn enumerator into a unique_ptr<>

Convey the fact that the CameraManager class owns the DeviceEnumerator
instance it creates by using std::unique_ptr<> to store the pointer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart
2019-01-15 15:32:59 +02:00
parent a2f095947f
commit 62eae99ed2
4 changed files with 10 additions and 13 deletions

View File

@@ -14,6 +14,7 @@
#include "device_enumerator.h"
#include "log.h"
#include "media_device.h"
#include "utils.h"
/**
* \file device_enumerator.h
@@ -128,20 +129,18 @@ bool DeviceMatch::match(const MediaDevice *device) const
* \return A pointer to the newly created device enumerator on success, or
* nullptr if an error occurs
*/
DeviceEnumerator *DeviceEnumerator::create()
std::unique_ptr<DeviceEnumerator> DeviceEnumerator::create()
{
DeviceEnumerator *enumerator;
std::unique_ptr<DeviceEnumerator> enumerator;
/**
* \todo Add compile time checks to only try udev enumerator if libudev
* is available.
*/
enumerator = new DeviceEnumeratorUdev();
enumerator = utils::make_unique<DeviceEnumeratorUdev>();
if (!enumerator->init())
return enumerator;
delete enumerator;
/*
* Either udev is not available or udev initialization failed. Fall back
* on the sysfs enumerator.