libcamera v0.1.0+127-8e215127-dirty (2023-12-02T01:06:12+00:00)
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
15#include <libcamera/controls.h>
16
17namespace libcamera {
18
19class MediaEntity;
20class V4L2Subdevice;
21
22class CameraLens : protected Loggable
23{
24public:
25 explicit CameraLens(const MediaEntity *entity);
27
28 int init();
29 int setFocusPosition(int32_t position);
30
31 const std::string &model() const { return model_; }
32
33 const ControlInfoMap &controls() const;
34
35protected:
36 std::string logPrefix() const override;
37
38private:
40
41 int validateLensDriver();
42
43 const MediaEntity *entity_;
44 std::unique_ptr<V4L2Subdevice> subdev_;
45
46 std::string model_;
47};
48
49} /* 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:23
CameraLens(const MediaEntity *entity)
Construct a CameraLens.
Definition: camera_lens.cpp:38
int setFocusPosition(int32_t position)
This function sets the focal point of the lens to a specific position.
Definition: camera_lens.cpp:87
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
const std::string & model() const
Retrieve the lens model name.
Definition: camera_lens.h:31
~CameraLens()
Destroy a CameraLens.
const ControlInfoMap & controls() const
Retrieve the V4L2 controls of the lens' subdev.
Definition: camera_lens.cpp:148
A map of ControlId to ControlInfo.
Definition: controls.h:306
Base class to support log message extensions.
Definition: log.h:91
The MediaEntity represents an entity in the media graph.
Definition: media_object.h:89
Framework to manage controls related to an object.
Logging infrastructure.
Top-level libcamera namespace.
Definition: backtrace.h:17