libcamera v0.5.1 Supporting cameras in Linux since 2019 |

Loading...
Searching...
No Matches
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 * A camera lens controller
6 */
7#pragma once
8
9#include <memory>
10#include <stdint.h>
11#include <string>
12
13#include <libcamera/base/class.h>
14#include <libcamera/base/log.h>
15
16#include <libcamera/controls.h>
17
18 namespace libcamera {
19
20 class MediaEntity;
21 class V4L2Subdevice;
22
23 class CameraLens : protected Loggable
24{
25 public:
26 explicit CameraLens(const MediaEntity *entity);
27 ~CameraLens();
28
29 int init();
30 int setFocusPosition(int32_t position);
31
32 const std::string &model() const { return model_; }
33
34 const ControlInfoMap &controls() const;
35
36 protected:
37 std::string logPrefix() const override;
38
39 private:
40 LIBCAMERA_DISABLE_COPY_AND_MOVE(CameraLens)
41
42 int validateLensDriver();
43
44 const MediaEntity *entity_;
45 std::unique_ptr<V4L2Subdevice> subdev_;
46
47 std::string model_;
48};
49
50} /* namespace libcamera */
class.h
Utilities to help constructing class interfaces.
LIBCAMERA_DISABLE_COPY_AND_MOVE
#define LIBCAMERA_DISABLE_COPY_AND_MOVE(klass)
Disable copy and move construction and assignment of the klass.
Definition class.h:29
libcamera::CameraLens
A camera lens based on V4L2 subdevices.
Definition camera_lens.h:24
libcamera::CameraLens::CameraLens
CameraLens(const MediaEntity *entity)
Construct a CameraLens.
Definition camera_lens.cpp:38
libcamera::CameraLens::model
const std::string & model() const
Retrieve the lens model name.
Definition camera_lens.h:32
libcamera::CameraLens::setFocusPosition
int setFocusPosition(int32_t position)
This function sets the focal point of the lens to a specific position.
Definition camera_lens.cpp:87
libcamera::CameraLens::logPrefix
std::string logPrefix() const override
Retrieve a string to be prefixed to the log message.
Definition camera_lens.cpp:137
libcamera::CameraLens::init
int init()
Initialize the camera lens instance.
Definition camera_lens.cpp:56
libcamera::CameraLens::~CameraLens
~CameraLens()
Destroy a CameraLens.
libcamera::CameraLens::controls
const ControlInfoMap & controls() const
Retrieve the V4L2 controls of the lens' subdev.
Definition camera_lens.cpp:148
libcamera::ControlInfoMap
A map of ControlId to ControlInfo.
Definition controls.h:367
libcamera::Loggable
Base class to support log message extensions.
Definition log.h:92
libcamera::MediaEntity
The MediaEntity represents an entity in the media graph.
Definition media_object.h:97
libcamera::V4L2Subdevice
A V4L2 subdevice as exposed by the Linux kernel.
Definition v4l2_subdevice.h:75
controls.h
Framework to manage controls related to an object.
log.h
Logging infrastructure.
libcamera
Top-level libcamera namespace.
Definition backtrace.h:17