libcamera: request: Make metadata_ a class instance
The metadata_ member variable is a pointer, for no specific reason. Make it an instance and simplify the class constructor and destructor. Suggested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
This commit is contained in:
@@ -36,7 +36,7 @@ public:
|
||||
Camera *camera() const { return camera_; }
|
||||
bool hasPendingBuffers() const;
|
||||
|
||||
ControlList &metadata() { return *metadata_; }
|
||||
ControlList &metadata() { return metadata_; }
|
||||
|
||||
bool completeBuffer(FrameBuffer *buffer);
|
||||
void complete();
|
||||
@@ -63,7 +63,7 @@ private:
|
||||
std::unordered_set<FrameBuffer *> pending_;
|
||||
std::map<FrameBuffer *, EventNotifier> notifiers_;
|
||||
std::unique_ptr<Timer> timer_;
|
||||
ControlList *metadata_;
|
||||
ControlList metadata_;
|
||||
};
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
@@ -53,20 +53,17 @@ LOG_DEFINE_CATEGORY(Request)
|
||||
/**
|
||||
* \brief Create a Request::Private
|
||||
* \param camera The Camera that creates the request
|
||||
*
|
||||
* \todo Add a validator for metadata controls.
|
||||
*/
|
||||
Request::Private::Private(Camera *camera)
|
||||
: camera_(camera), cancelled_(false)
|
||||
: camera_(camera), cancelled_(false), metadata_(controls::controls)
|
||||
{
|
||||
/**
|
||||
* \todo Add a validator for metadata controls.
|
||||
*/
|
||||
metadata_ = new ControlList(controls::controls);
|
||||
}
|
||||
|
||||
Request::Private::~Private()
|
||||
{
|
||||
doCancelRequest();
|
||||
delete metadata_;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -410,7 +407,7 @@ void Request::reuse(ReuseFlag flags)
|
||||
status_ = RequestPending;
|
||||
|
||||
controls_->clear();
|
||||
_d()->metadata_->clear();
|
||||
_d()->metadata_.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -435,7 +432,7 @@ void Request::reuse(ReuseFlag flags)
|
||||
*/
|
||||
const ControlList &Request::metadata() const
|
||||
{
|
||||
return *_d()->metadata_;
|
||||
return _d()->metadata_;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user