libcamera v0.0.0+3423-a7ab5ef1
Supporting cameras in Linux since 2019
camera_lens.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2021, Google Inc.
4 *
5 * camera_lens.h - A camera lens controller
6 */
7#pragma once
8
9#include <memory>
10#include <string>
11
13#include <libcamera/base/log.h>
14
15namespace libcamera {
16
17class MediaEntity;
18class V4L2Subdevice;
19
20class CameraLens : protected Loggable
21{
22public:
23 explicit CameraLens(const MediaEntity *entity);
25
26 int init();
27 int setFocusPostion(int32_t position);
28
29 const std::string &model() const { return model_; }
30
31protected:
32 std::string logPrefix() const override;
33
34private:
36
37 int validateLensDriver();
38
39 const MediaEntity *entity_;
40 std::unique_ptr<V4L2Subdevice> subdev_;
41
42 std::string model_;
43};
44
45} /* namespace libcamera */
Utilities to help constructing class interfaces.
#define LIBCAMERA_DISABLE_COPY_AND_MOVE(klass)
Disable copy and move construction and assignment of the klass.
A camera lens based on V4L2 subdevices.
Definition: camera_lens.h:21
CameraLens(const MediaEntity *entity)
Construct a CameraLens.
Definition: camera_lens.cpp:38
std::string logPrefix() const override
Retrieve a string to be prefixed to the log message.
Definition: camera_lens.cpp:137
int init()
Initialize the camera lens instance.
Definition: camera_lens.cpp:56
int setFocusPostion(int32_t position)
This function sets the focal point of the lens to a specific position.
Definition: camera_lens.cpp:87
const std::string & model() const
Retrieve the lens model name.
Definition: camera_lens.h:29
~CameraLens()
Destroy a CameraLens.
Base class to support log message extensions.
Definition: log.h:86
The MediaEntity represents an entity in the media graph.
Definition: media_object.h:89
Logging infrastructure.
Top-level libcamera namespace.
Definition: backtrace.h:17