libcamera: pipeline: uvcvideo: Migrate to Camera::Private

As part of the effort to remove the CameraData class, migrate the
pipeline handler-specific camera data from CameraData to the
Camera::Private class.

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 2021-07-23 04:39:44 +03:00
parent fb1bcb9c38
commit aae303c5aa

View file

@ -33,11 +33,11 @@ namespace libcamera {
LOG_DEFINE_CATEGORY(UVC) LOG_DEFINE_CATEGORY(UVC)
class UVCCameraData : public CameraData class UVCCameraData : public Camera::Private
{ {
public: public:
UVCCameraData(PipelineHandler *pipe) UVCCameraData(PipelineHandler *pipe)
: CameraData(pipe) : Camera::Private(pipe)
{ {
} }
@ -87,10 +87,9 @@ private:
const ControlValue &value); const ControlValue &value);
int processControls(UVCCameraData *data, Request *request); int processControls(UVCCameraData *data, Request *request);
UVCCameraData *cameraData(const Camera *camera) UVCCameraData *cameraData(Camera *camera)
{ {
return static_cast<UVCCameraData *>( return static_cast<UVCCameraData *>(camera->_d());
PipelineHandler::cameraData(camera));
} }
}; };
@ -472,9 +471,8 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)
std::set<Stream *> streams{ &data->stream_ }; std::set<Stream *> streams{ &data->stream_ };
std::shared_ptr<Camera> camera = std::shared_ptr<Camera> camera =
Camera::create(std::make_unique<Camera::Private>(this), id, Camera::create(std::move(data), id, streams);
streams); registerCamera(std::move(camera), nullptr);
registerCamera(std::move(camera), std::move(data));
/* Enable hot-unplug notifications. */ /* Enable hot-unplug notifications. */
hotplugMediaDevice(media); hotplugMediaDevice(media);
@ -669,8 +667,8 @@ void UVCCameraData::bufferReady(FrameBuffer *buffer)
request->metadata().set(controls::SensorTimestamp, request->metadata().set(controls::SensorTimestamp,
buffer->metadata().timestamp); buffer->metadata().timestamp);
pipe_->completeBuffer(request, buffer); pipe()->completeBuffer(request, buffer);
pipe_->completeRequest(request); pipe()->completeRequest(request);
} }
REGISTER_PIPELINE_HANDLER(PipelineHandlerUVC) REGISTER_PIPELINE_HANDLER(PipelineHandlerUVC)