duvc-ctl 2.0.0
USB Video Class Camera Control Library
Loading...
Searching...
No Matches
camera.h
Go to the documentation of this file.
1#pragma once
2
10#include <memory>
11
12namespace duvc {
13
14// Forward declaration
15class DeviceConnection;
16
23class Camera {
24public:
29 explicit Camera(const Device &device);
30
35 explicit Camera(int device_index);
36
49 explicit Camera(const std::wstring &device_path);
50
51
54
55 // Non-copyable but movable
56 Camera(const Camera &) = delete;
57 Camera &operator=(const Camera &) = delete;
58 Camera(Camera &&) noexcept;
59 Camera &operator=(Camera &&) noexcept;
60
65 bool is_valid() const;
66
71 const Device &device() const { return device_; }
72
79
86 Result<void> set(CamProp prop, const PropSetting &setting);
87
94
101
108 Result<void> set(VidProp prop, const PropSetting &setting);
109
116
117private:
118 Device device_;
119 mutable std::unique_ptr<DeviceConnection> connection_;
120
122 DeviceConnection *get_connection() const;
123};
124
130Result<Camera> open_camera(int device_index);
131
137Result<Camera> open_camera(const Device &device);
138
149Result<Camera> open_camera(const std::wstring &device_path);
150
151} // namespace duvc
RAII camera handle for simplified device management.
Definition camera.h:23
~Camera()
Destructor - automatically releases device connection.
Camera(Camera &&) noexcept
Camera(const Device &device)
Create camera handle for device.
Definition camera.cpp:12
Result< PropRange > get_range(CamProp prop)
Get camera property range.
Definition camera.cpp:75
Camera(const Camera &)=delete
bool is_valid() const
Check if camera is valid and connected.
Definition camera.cpp:37
Result< void > set(CamProp prop, const PropSetting &setting)
Set camera property value.
Definition camera.cpp:62
Camera & operator=(const Camera &)=delete
const Device & device() const
Get the underlying device information.
Definition camera.h:71
Result< PropSetting > get(CamProp prop)
Get camera property value.
Definition camera.cpp:48
RAII wrapper for DirectShow device connections.
Definition core.h:55
Result type that can contain either a value or an error.
Definition result.h:75
Definition core.h:13
VidProp
Video processing properties (IAMVideoProcAmp interface)
Definition types.h:50
CamProp
Camera control properties (IAMCameraControl interface)
Definition types.h:18
Result< Camera > open_camera(int device_index)
Create camera from device index.
Definition camera.cpp:130
Result/Error type system for duvc-ctl.
Represents a camera device.
Definition types.h:131
Property setting with value and control mode.
Definition types.h:74
Core data types and enumerations for duvc-ctl.