libcamera  v0.3.2+116-83c5ad0f
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  * A camera lens controller
6  */
7 #pragma once
8 
9 #include <memory>
10 #include <string>
11 
12 #include <libcamera/base/class.h>
13 #include <libcamera/base/log.h>
14 
15 #include <libcamera/controls.h>
16 
17 namespace libcamera {
18 
19 class MediaEntity;
20 class V4L2Subdevice;
21 
22 class CameraLens : protected Loggable
23 {
24 public:
25  explicit CameraLens(const MediaEntity *entity);
26  ~CameraLens();
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 
35 protected:
36  std::string logPrefix() const override;
37 
38 private:
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.
int setFocusPosition(int32_t position)
This function sets the focal point of the lens to a specific position.
Definition: camera_lens.cpp:87
CameraLens(const MediaEntity *entity)
Construct a CameraLens.
Definition: camera_lens.cpp:38
Base class to support log message extensions.
Definition: log.h:90
Top-level libcamera namespace.
Definition: backtrace.h:17
~CameraLens()
Destroy a CameraLens.
const ControlInfoMap & controls() const
Retrieve the V4L2 controls of the lens&#39; subdev.
Definition: camera_lens.cpp:148
int init()
Initialize the camera lens instance.
Definition: camera_lens.cpp:56
A map of ControlId to ControlInfo.
Definition: controls.h:336
The MediaEntity represents an entity in the media graph.
Definition: media_object.h:96
#define LIBCAMERA_DISABLE_COPY_AND_MOVE(klass)
Disable copy and move construction and assignment of the klass.
const std::string & model() const
Retrieve the lens model name.
Definition: camera_lens.h:31
std::string logPrefix() const override
Retrieve a string to be prefixed to the log message.
Definition: camera_lens.cpp:137
A camera lens based on V4L2 subdevices.
Definition: camera_lens.h:22
Framework to manage controls related to an object.
Logging infrastructure.