duvc-ctl 2.0.0
USB Video Class Camera Control Library
Loading...
Searching...
No Matches
capability.h
Go to the documentation of this file.
1#pragma once
2
8#include "camera.h"
9#include "result.h"
10#include "types.h"
11#include <memory>
12#include <unordered_map>
13#include <vector>
14
15namespace duvc {
16
31
36public:
41 explicit DeviceCapabilities(const Device &device);
42
49
56
63
70
75 std::vector<CamProp> supported_camera_properties() const;
76
81 std::vector<VidProp> supported_video_properties() const;
82
87 const Device &device() const { return device_; }
88
93 bool is_device_accessible() const { return device_accessible_; }
94
100
101private:
102 Device device_;
103 bool device_accessible_;
104 std::unordered_map<CamProp, PropertyCapability> camera_capabilities_;
105 std::unordered_map<VidProp, PropertyCapability> video_capabilities_;
106
108 void scan_capabilities();
109
111 static const PropertyCapability empty_capability_;
112};
113
119Result<DeviceCapabilities> get_device_capabilities(const Device &device);
120
126Result<DeviceCapabilities> get_device_capabilities(int device_index);
127
128} // namespace duvc
RAII camera handle for simplified device management.
Complete device capability snapshot.
Definition capability.h:35
const PropertyCapability & get_video_capability(VidProp prop) const
Get video property capability.
DeviceCapabilities(const Device &device)
Create capabilities snapshot for device.
std::vector< CamProp > supported_camera_properties() const
Get list of supported camera properties.
const Device & device() const
Get the device this capability snapshot is for.
Definition capability.h:87
bool supports_video_property(VidProp prop) const
Check if video property is supported.
Result< void > refresh()
Refresh capability snapshot.
bool supports_camera_property(CamProp prop) const
Check if camera property is supported.
std::vector< VidProp > supported_video_properties() const
Get list of supported video properties.
const PropertyCapability & get_camera_capability(CamProp prop) const
Get camera property capability.
bool is_device_accessible() const
Check if device is connected and accessible.
Definition capability.h:93
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
Result< DeviceCapabilities > get_device_capabilities(const Device &device)
Create device capability snapshot.
@ Auto
Automatic control by camera.
CamProp
Camera control properties (IAMCameraControl interface)
Definition types.h:18
Result/Error type system for duvc-ctl.
Represents a camera device.
Definition types.h:131
Property range and default information.
Definition types.h:92
CamMode default_mode
Default control mode.
Definition types.h:97
Property setting with value and control mode.
Definition types.h:74
Property capability information.
Definition capability.h:20
bool supported
Property is supported by device.
Definition capability.h:21
PropSetting current
Current property value.
Definition capability.h:23
PropRange range
Valid range for property.
Definition capability.h:22
bool supports_auto() const
Check if property supports automatic mode.
Definition capability.h:29
Core data types and enumerations for duvc-ctl.