duvc-ctl 2.1.0
USB Video Class Camera Control Library
Loading...
Searching...
No Matches
api.h
Go to the documentation of this file.
1#pragma once
9#ifdef __cplusplus
10extern "C" {
11#endif
12#include <stddef.h>
13#include <stdint.h>
14
15/* ========================================================================
16 * Version and ABI Constants
17 * ======================================================================== */
18#define DUVC_VERSION_MAJOR 1
19#define DUVC_VERSION_MINOR 0
20#define DUVC_VERSION_PATCH 0
21#define DUVC_ABI_VERSION \
22 ((DUVC_VERSION_MAJOR << 16) | (DUVC_VERSION_MINOR << 8) | DUVC_VERSION_PATCH)
23
24/* ========================================================================
25 * Core Enumerations
26 * ======================================================================== */
45
74
94
102
113
129
130/* ========================================================================
131 * Core Data Structures
132 * ======================================================================== */
136typedef struct {
137 int32_t value;
140
144typedef struct {
145 int32_t min;
146 int32_t max;
147 int32_t step;
148 int32_t default_val;
151
155typedef struct {
156 char property_set_guid[39];
158 uint32_t property_id;
159 void *data;
160 size_t data_size;
162
167
172
177
178/* ========================================================================
179 * Callback Types
180 * ======================================================================== */
187typedef void (*duvc_log_callback)(duvc_log_level_t level, const char *message,
188 void *user_data);
189
196typedef void (*duvc_device_change_callback)(int added, const char *device_path,
197 void *user_data);
198
199/* ========================================================================
200 * Constants
201 * ======================================================================== */
205extern const char DUVC_LOGITECH_PROPERTY_SET_GUID[39];
206
207/* ========================================================================
208 * Version and ABI Management
209 * ======================================================================== */
214uint32_t duvc_get_version(void);
215
221const char *duvc_get_version_string(void);
222
229int duvc_check_abi_compatibility(uint32_t compiled_version);
230
231/* ========================================================================
232 * Library Lifecycle
233 * ======================================================================== */
239
244void duvc_shutdown(void);
245
250int duvc_is_initialized(void);
251
252/* ========================================================================
253 * Logging System
254 * ======================================================================== */
262 void *user_data);
263
270
277
284duvc_result_t duvc_log_message(duvc_log_level_t level, const char *message);
285
291duvc_result_t duvc_log_debug(const char *message);
292
298duvc_result_t duvc_log_info(const char *message);
299
305duvc_result_t duvc_log_warning(const char *message);
306
312duvc_result_t duvc_log_error(const char *message);
313
319duvc_result_t duvc_log_critical(const char *message);
320
321/* ========================================================================
322 * Device Management
323 * ======================================================================== */
332duvc_result_t duvc_list_devices(duvc_device_t ***devices, size_t *count);
333
347duvc_result_t duvc_find_device_by_path(const char *device_path_utf8,
348 duvc_device_t **device);
349
355void duvc_free_device_list(duvc_device_t **devices, size_t count);
356
364 int *connected);
365
375duvc_result_t duvc_get_device_name(const duvc_device_t *device, char *buffer,
376 size_t buffer_size, size_t *required);
377
387duvc_result_t duvc_get_device_path(const duvc_device_t *device, char *buffer,
388 size_t buffer_size, size_t *required);
389
399duvc_result_t duvc_get_device_id(const duvc_device_t *device, char *buffer,
400 size_t buffer_size, size_t *required);
401
408duvc_result_t duvc_device_is_valid(const duvc_device_t *device, int *valid);
409
410/* ========================================================================
411 * Device Change Monitoring
412 * ======================================================================== */
421 void *user_data);
422
428
429/* ========================================================================
430 * Camera Connections
431 * ======================================================================== */
439 duvc_connection_t **conn);
440
448 duvc_connection_t **conn);
449
455
462
463/* ========================================================================
464 * Property Access - Single Properties
465 * ======================================================================== */
474 duvc_cam_prop_t prop,
475 duvc_prop_setting_t *setting);
476
485 duvc_cam_prop_t prop,
486 const duvc_prop_setting_t *setting);
487
496 duvc_cam_prop_t prop,
497 duvc_prop_range_t *range);
498
507 duvc_vid_prop_t prop,
508 duvc_prop_setting_t *setting);
509
518 duvc_vid_prop_t prop,
519 const duvc_prop_setting_t *setting);
520
529 duvc_vid_prop_t prop,
530 duvc_prop_range_t *range);
531
532/* ========================================================================
533 * Property Access - Multiple Properties
534 * ======================================================================== */
544 const duvc_cam_prop_t *props,
545 duvc_prop_setting_t *settings,
546 size_t count);
547
557 duvc_connection_t *conn, const duvc_cam_prop_t *props,
558 const duvc_prop_setting_t *settings, size_t count);
559
569 const duvc_vid_prop_t *props,
570 duvc_prop_setting_t *settings,
571 size_t count);
572
582 duvc_connection_t *conn, const duvc_vid_prop_t *props,
583 const duvc_prop_setting_t *settings, size_t count);
584
585/* ========================================================================
586 * Quick API - Direct Device Access
587 * ======================================================================== */
596 duvc_cam_prop_t prop,
597 duvc_prop_setting_t *setting);
598
608 duvc_cam_prop_t prop,
609 const duvc_prop_setting_t *setting);
610
619 duvc_cam_prop_t prop,
620 duvc_prop_range_t *range);
621
630 duvc_vid_prop_t prop,
631 duvc_prop_setting_t *setting);
632
641 duvc_vid_prop_t prop,
642 const duvc_prop_setting_t *setting);
643
652 duvc_vid_prop_t prop,
653 duvc_prop_range_t *range);
654
655/* ========================================================================
656 * Device Capability Snapshots
657 * ======================================================================== */
666
676
682
690
691/* ========================================================================
692 * Capability Queries
693 * ======================================================================== */
703 duvc_cam_prop_t prop,
704 duvc_prop_range_t *range,
705 duvc_prop_setting_t *current);
706
716 duvc_vid_prop_t prop,
717 duvc_prop_range_t *range,
718 duvc_prop_setting_t *current);
719
729 duvc_cam_prop_t prop, int *supported);
730
740 duvc_vid_prop_t prop, int *supported);
741
753 duvc_cam_prop_t *props, size_t max_count,
754 size_t *actual_count);
755
767 duvc_vid_prop_t *props, size_t max_count,
768 size_t *actual_count);
769
778 int *accessible);
779
780/* ========================================================================
781 * Property Range Utilities
782 * ======================================================================== */
791 int32_t value, int *valid);
792
801 int32_t value, int32_t *clamped_value);
802
810 int *supports_auto);
811
812/* ========================================================================
813 * Generic Vendor Properties
814 * ======================================================================== */
827 const char *property_set_guid,
828 uint32_t property_id, void *data,
829 size_t data_size,
830 size_t *bytes_returned);
831
842 const char *property_set_guid,
843 uint32_t property_id, const void *data,
844 size_t data_size);
845
855 const char *property_set_guid,
856 uint32_t property_id,
857 int *supported);
858
859/* ========================================================================
860 * Logitech Vendor Extensions
861 * ======================================================================== */
873 duvc_logitech_prop_t prop, void *data,
874 size_t data_size,
875 size_t *bytes_returned);
876
887 const void *data, size_t data_size);
888
896 int *supported);
897
898/* ========================================================================
899 * String Conversions
900 * ======================================================================== */
907
914
921
928
935
936/* ========================================================================
937 * Wide String Conversions (Windows Support)
938 * ======================================================================== */
949 size_t buffer_size, size_t *required);
950
961 size_t buffer_size, size_t *required);
962
973 size_t buffer_size, size_t *required);
974
975/* ========================================================================
976 * Error Handling and Diagnostics
977 * ======================================================================== */
986duvc_result_t duvc_get_last_error_details(char *buffer, size_t buffer_size,
987 size_t *required_size);
988
997duvc_result_t duvc_get_diagnostic_info(char *buffer, size_t buffer_size,
998 size_t *required_size);
999
1006
1013
1018void duvc_clear_last_error(void);
1019
1020/* ========================================================================
1021 * Windows-Specific Error Diagnostics
1022 * ======================================================================== */
1023#ifdef _WIN32
1033duvc_result_t duvc_decode_system_error(unsigned long error_code, char *buffer,
1034 size_t buffer_size, size_t *required);
1035
1045duvc_result_t duvc_decode_hresult(int32_t hr, char *buffer, size_t buffer_size,
1046 size_t *required);
1047
1058 size_t buffer_size, size_t *required);
1059
1066
1073#endif
1074
1075/* ========================================================================
1076 * Convenience Macros for Logging
1077 * ======================================================================== */
1078#define DUVC_LOG_DEBUG(msg) duvc_log_debug(msg)
1079#define DUVC_LOG_INFO(msg) duvc_log_info(msg)
1080#define DUVC_LOG_WARNING(msg) duvc_log_warning(msg)
1081#define DUVC_LOG_ERROR(msg) duvc_log_error(msg)
1082#define DUVC_LOG_CRITICAL(msg) duvc_log_critical(msg)
1083
1084/* ========================================================================
1085 * Additional Platform Utilities
1086 * ======================================================================== */
1093
1102duvc_result_t duvc_get_platform_info(char *buffer, size_t buffer_size,
1103 size_t *required);
1104
1105#ifdef __cplusplus
1106}
1107#endif
duvc_result_t
Result codes for duvc operations.
Definition api.h:30
@ DUVC_ERROR_TIMEOUT
Operation timed out.
Definition api.h:42
@ DUVC_ERROR_CONNECTION_FAILED
Failed to establish device connection.
Definition api.h:41
@ DUVC_ERROR_INVALID_ARGUMENT
Invalid function argument provided.
Definition api.h:33
@ DUVC_ERROR_INVALID_VALUE
Property value out of valid range.
Definition api.h:37
@ DUVC_ERROR_NOT_IMPLEMENTED
Feature not implemented on this platform.
Definition api.h:32
@ DUVC_ERROR_DEVICE_BUSY
Device is busy or in use by another process.
Definition api.h:35
@ DUVC_ERROR_PERMISSION_DENIED
Insufficient permissions to access device.
Definition api.h:38
@ DUVC_ERROR_DEVICE_NOT_FOUND
Device not found or disconnected.
Definition api.h:34
@ DUVC_ERROR_BUFFER_TOO_SMALL
Provided buffer is too small for data.
Definition api.h:43
@ DUVC_ERROR_SYSTEM_ERROR
System/platform error occurred.
Definition api.h:40
@ DUVC_ERROR_PROPERTY_NOT_SUPPORTED
Property not supported by device.
Definition api.h:36
@ DUVC_SUCCESS
Operation completed successfully.
Definition api.h:31
duvc_result_t duvc_get_multiple_video_properties(duvc_connection_t *conn, const duvc_vid_prop_t *props, duvc_prop_setting_t *settings, size_t count)
Get multiple video properties.
Definition api.cpp:1138
duvc_result_t duvc_get_supported_video_properties(const duvc_device_capabilities_t *caps, duvc_vid_prop_t *props, size_t max_count, size_t *actual_count)
Get list of supported video properties.
Definition api.cpp:1683
const char * duvc_cam_prop_to_string(duvc_cam_prop_t prop)
Convert camera property to string.
Definition api.cpp:372
duvc_result_t duvc_set_camera_property(duvc_connection_t *conn, duvc_cam_prop_t prop, const duvc_prop_setting_t *setting)
Set camera property value.
Definition api.cpp:907
duvc_result_t duvc_get_camera_property_range(duvc_connection_t *conn, duvc_cam_prop_t prop, duvc_prop_range_t *range)
Get camera property range.
Definition api.cpp:935
duvc_result_t duvc_get_platform_info(char *buffer, size_t buffer_size, size_t *required)
Get platform information.
duvc_result_t duvc_get_video_property_range(duvc_connection_t *conn, duvc_vid_prop_t prop, duvc_prop_range_t *range)
Get video property range.
Definition api.cpp:1027
duvc_result_t duvc_get_device_capabilities(const duvc_device_t *device, duvc_device_capabilities_t **caps)
Get device capabilities snapshot.
Definition api.cpp:1412
duvc_result_t duvc_supports_camera_property(const duvc_device_capabilities_t *caps, duvc_cam_prop_t prop, int *supported)
Check if camera property is supported.
Definition api.cpp:1602
duvc_result_t duvc_set_multiple_camera_properties(duvc_connection_t *conn, const duvc_cam_prop_t *props, const duvc_prop_setting_t *settings, size_t count)
Set multiple camera properties.
Definition api.cpp:1101
duvc_result_t duvc_refresh_device_capabilities(duvc_device_capabilities_t *caps)
Refresh capabilities snapshot.
Definition api.cpp:1500
duvc_result_t duvc_get_hresult_details(int32_t hr, char *buffer, size_t buffer_size, size_t *required)
Get detailed HRESULT information.
duvc_result_t duvc_is_device_connected(const duvc_device_t *device, int *connected)
Check if device is connected.
Definition api.cpp:600
void duvc_close_camera(duvc_connection_t *conn)
Close camera connection.
Definition api.cpp:838
duvc_result_t duvc_initialize(void)
Initialize library.
Definition api.cpp:261
duvc_result_t duvc_decode_hresult(int32_t hr, char *buffer, size_t buffer_size, size_t *required)
Decode HRESULT to string.
void duvc_free_device_list(duvc_device_t **devices, size_t count)
Free device list.
Definition api.cpp:590
duvc_result_t duvc_set_log_level(duvc_log_level_t level)
Set minimum log level.
Definition api.cpp:432
duvc_vid_prop_t
Video processing properties.
Definition api.h:78
@ DUVC_VID_PROP_CONTRAST
Image contrast level.
Definition api.h:80
@ DUVC_VID_PROP_WHITE_BALANCE_COMPONENT
White balance component adjustment.
Definition api.h:91
@ DUVC_VID_PROP_GAMMA
Gamma correction value.
Definition api.h:84
@ DUVC_VID_PROP_GAIN
Sensor gain level.
Definition api.h:88
@ DUVC_VID_PROP_BRIGHTNESS
Image brightness level.
Definition api.h:79
@ DUVC_VID_PROP_POWER_LINE_FREQUENCY
Power line frequency (anti-flicker setting)
Definition api.h:92
@ DUVC_VID_PROP_WHITE_BALANCE
White balance adjustment.
Definition api.h:86
@ DUVC_VID_PROP_DIGITAL_MULTIPLIER_LIMIT
Maximum digital multiplier level.
Definition api.h:90
@ DUVC_VID_PROP_DIGITAL_MULTIPLIER
Digital multiplier level.
Definition api.h:89
@ DUVC_VID_PROP_SHARPNESS
Image sharpness level.
Definition api.h:83
@ DUVC_VID_PROP_SATURATION
Color saturation level.
Definition api.h:82
@ DUVC_VID_PROP_HUE
Color hue adjustment.
Definition api.h:81
@ DUVC_VID_PROP_COLOR_ENABLE
Color vs.
Definition api.h:85
@ DUVC_VID_PROP_BACKLIGHT_COMPENSATION
Backlight compensation level.
Definition api.h:87
duvc_result_t duvc_supports_video_property(const duvc_device_capabilities_t *caps, duvc_vid_prop_t prop, int *supported)
Check if video property is supported.
Definition api.cpp:1625
duvc_result_t duvc_device_is_valid(const duvc_device_t *device, int *valid)
Check if device is valid.
Definition api.cpp:690
duvc_result_t duvc_quick_get_camera_property(const duvc_device_t *device, duvc_cam_prop_t prop, duvc_prop_setting_t *setting)
Quick get camera property (creates temporary connection)
Definition api.cpp:1217
duvc_cam_prop_t
Camera control properties.
Definition api.h:49
@ DUVC_CAM_PROP_PAN_RELATIVE
Relative pan movement.
Definition api.h:59
@ DUVC_CAM_PROP_IRIS
Aperture/iris setting.
Definition api.h:55
@ DUVC_CAM_PROP_ROLL_RELATIVE
Relative roll movement.
Definition api.h:61
@ DUVC_CAM_PROP_IRIS_RELATIVE
Relative iris adjustment.
Definition api.h:64
@ DUVC_CAM_PROP_PAN_TILT_RELATIVE
Relative pan/tilt movement.
Definition api.h:67
@ DUVC_CAM_PROP_TILT
Vertical camera rotation.
Definition api.h:51
@ DUVC_CAM_PROP_PRIVACY
Privacy mode on/off.
Definition api.h:58
@ DUVC_CAM_PROP_PAN_TILT
Combined pan/tilt control.
Definition api.h:66
@ DUVC_CAM_PROP_ZOOM_RELATIVE
Relative zoom movement.
Definition api.h:62
@ DUVC_CAM_PROP_DIGITAL_ZOOM
Digital zoom level.
Definition api.h:69
@ DUVC_CAM_PROP_PAN
Horizontal camera rotation.
Definition api.h:50
@ DUVC_CAM_PROP_ZOOM
Optical zoom level.
Definition api.h:53
@ DUVC_CAM_PROP_EXPOSURE
Exposure time.
Definition api.h:54
@ DUVC_CAM_PROP_SCAN_MODE
Scan mode (progressive/interlaced)
Definition api.h:57
@ DUVC_CAM_PROP_FOCUS_RELATIVE
Relative focus adjustment.
Definition api.h:65
@ DUVC_CAM_PROP_ROLL
Camera roll rotation.
Definition api.h:52
@ DUVC_CAM_PROP_TILT_RELATIVE
Relative tilt movement.
Definition api.h:60
@ DUVC_CAM_PROP_DIGITAL_ZOOM_RELATIVE
Relative digital zoom.
Definition api.h:70
@ DUVC_CAM_PROP_FOCUS
Focus position.
Definition api.h:56
@ DUVC_CAM_PROP_BACKLIGHT_COMPENSATION
Backlight compensation.
Definition api.h:71
@ DUVC_CAM_PROP_LAMP
Camera lamp/flash control.
Definition api.h:72
@ DUVC_CAM_PROP_FOCUS_SIMPLE
Simple focus control.
Definition api.h:68
@ DUVC_CAM_PROP_EXPOSURE_RELATIVE
Relative exposure adjustment.
Definition api.h:63
duvc_result_t duvc_has_camera_permissions(int *has_permissions)
Check if current process has camera permissions.
duvc_result_t duvc_get_logitech_property(const duvc_device_t *device, duvc_logitech_prop_t prop, void *data, size_t data_size, size_t *bytes_returned)
Get Logitech vendor property.
duvc_result_t duvc_get_camera_property(duvc_connection_t *conn, duvc_cam_prop_t prop, duvc_prop_setting_t *setting)
Get camera property value.
Definition api.cpp:875
duvc_result_t duvc_list_devices(duvc_device_t ***devices, size_t *count)
List all connected devices.
Definition api.cpp:510
void duvc_unregister_device_change_callback(void)
Unregister device change callback.
Definition api.cpp:752
const char * duvc_get_version_string(void)
Get library version string.
Definition api.cpp:236
duvc_result_t duvc_get_device_name(const duvc_device_t *device, char *buffer, size_t buffer_size, size_t *required)
Get device name.
Definition api.cpp:626
duvc_result_t duvc_log_error(const char *message)
Log error message.
Definition api.cpp:498
duvc_result_t duvc_quick_get_camera_property_range(const duvc_device_t *device, duvc_cam_prop_t prop, duvc_prop_range_t *range)
Quick get camera property range.
Definition api.cpp:1280
duvc_result_t duvc_set_multiple_video_properties(duvc_connection_t *conn, const duvc_vid_prop_t *props, const duvc_prop_setting_t *settings, size_t count)
Set multiple video properties.
Definition api.cpp:1176
duvc_result_t duvc_get_device_capabilities_by_index(int device_index, duvc_device_capabilities_t **caps)
Get device capabilities by index.
Definition api.cpp:1446
duvc_result_t duvc_log_message(duvc_log_level_t level, const char *message)
Log message at specific level.
Definition api.cpp:467
duvc_result_t duvc_get_device_id(const duvc_device_t *device, char *buffer, size_t buffer_size, size_t *required)
Get device ID.
Definition api.cpp:668
const char * duvc_cam_mode_to_string(duvc_cam_mode_t mode)
Convert camera mode to string.
Definition api.cpp:381
duvc_result_t duvc_log_info(const char *message)
Log info message.
Definition api.cpp:490
duvc_result_t duvc_supports_logitech_properties(const duvc_device_t *device, int *supported)
Check Logitech vendor property support.
duvc_result_t duvc_open_camera(const duvc_device_t *device, duvc_connection_t **conn)
Open camera by device handle.
Definition api.cpp:806
void(* duvc_log_callback)(duvc_log_level_t level, const char *message, void *user_data)
Log message callback.
Definition api.h:187
#define DUVC_LOG_ERROR(msg)
Definition api.h:1081
struct duvc_connection_t duvc_connection_t
Opaque camera connection handle.
Definition api.h:171
duvc_result_t duvc_capabilities_is_device_accessible(const duvc_device_capabilities_t *caps, int *accessible)
Check if device is accessible.
Definition api.cpp:1718
duvc_result_t duvc_set_log_callback(duvc_log_callback callback, void *user_data)
Set log callback.
Definition api.cpp:406
duvc_result_t duvc_get_supported_camera_properties(const duvc_device_capabilities_t *caps, duvc_cam_prop_t *props, size_t max_count, size_t *actual_count)
Get list of supported camera properties.
Definition api.cpp:1648
duvc_cam_mode_t
Camera control modes.
Definition api.h:98
@ DUVC_CAM_MODE_AUTO
Automatic control by camera.
Definition api.h:99
@ DUVC_CAM_MODE_MANUAL
Manual control by application.
Definition api.h:100
duvc_result_t duvc_find_device_by_path(const char *device_path_utf8, duvc_device_t **device)
Find device by unique Windows device path.
Definition api.cpp:556
duvc_result_t duvc_cam_prop_to_wstring(duvc_cam_prop_t prop, wchar_t *buffer, size_t buffer_size, size_t *required)
Convert camera property to wide string.
#define DUVC_LOG_WARNING(msg)
Definition api.h:1080
int duvc_is_permission_error(duvc_result_t result)
Check if error is permission-related.
void duvc_free_device_capabilities(duvc_device_capabilities_t *caps)
Free device capabilities.
Definition api.cpp:1477
duvc_result_t duvc_prop_range_clamp(const duvc_prop_range_t *range, int32_t value, int32_t *clamped_value)
Clamp value to valid range.
Definition api.cpp:1774
duvc_result_t duvc_log_debug(const char *message)
Log debug message.
Definition api.cpp:486
duvc_result_t duvc_decode_system_error(unsigned long error_code, char *buffer, size_t buffer_size, size_t *required)
Decode system error code to string.
duvc_result_t duvc_cam_mode_to_wstring(duvc_cam_mode_t mode, wchar_t *buffer, size_t buffer_size, size_t *required)
Convert camera mode to wide string.
duvc_result_t duvc_quick_get_video_property_range(const duvc_device_t *device, duvc_vid_prop_t prop, duvc_prop_range_t *range)
Quick get video property range.
Definition api.cpp:1375
duvc_logitech_prop_t
Logitech vendor-specific properties.
Definition api.h:117
@ DUVC_LOGITECH_PROP_RIGHT_SOUND
RightSound audio processing.
Definition api.h:119
@ DUVC_LOGITECH_PROP_TILT_PAN
Combined tilt/pan control.
Definition api.h:127
@ DUVC_LOGITECH_PROP_LED_INDICATOR
LED indicator control.
Definition api.h:121
@ DUVC_LOGITECH_PROP_FOCUS_ASSIST
Focus assist beam.
Definition api.h:124
@ DUVC_LOGITECH_PROP_RIGHT_LIGHT
RightLight auto-exposure.
Definition api.h:118
@ DUVC_LOGITECH_PROP_RAW_DATA_BITS
Raw data bit depth.
Definition api.h:123
@ DUVC_LOGITECH_PROP_DIGITAL_ZOOM_ROI
Digital zoom region of interest.
Definition api.h:126
@ DUVC_LOGITECH_PROP_PROCESSOR_USAGE
Processor usage optimization.
Definition api.h:122
@ DUVC_LOGITECH_PROP_FACE_TRACKING
Face tracking enable/disable.
Definition api.h:120
@ DUVC_LOGITECH_PROP_VIDEO_STANDARD
Video standard selection.
Definition api.h:125
duvc_result_t duvc_query_vendor_property_support(const duvc_device_t *device, const char *property_set_guid, uint32_t property_id, int *supported)
Query vendor property support.
struct duvc_device_capabilities_t duvc_device_capabilities_t
Opaque device capabilities handle.
Definition api.h:176
duvc_result_t duvc_set_video_property(duvc_connection_t *conn, duvc_vid_prop_t prop, const duvc_prop_setting_t *setting)
Set video property value.
Definition api.cpp:999
const char DUVC_LOGITECH_PROPERTY_SET_GUID[39]
Logitech property set GUID string.
int duvc_camera_is_valid(const duvc_connection_t *conn)
Check if camera connection is valid.
Definition api.cpp:854
duvc_result_t duvc_get_diagnostic_info(char *buffer, size_t buffer_size, size_t *required_size)
Get diagnostic information.
duvc_result_t duvc_get_vendor_property(const duvc_device_t *device, const char *property_set_guid, uint32_t property_id, void *data, size_t data_size, size_t *bytes_returned)
Get vendor-specific property.
duvc_result_t duvc_get_multiple_camera_properties(duvc_connection_t *conn, const duvc_cam_prop_t *props, duvc_prop_setting_t *settings, size_t count)
Get multiple camera properties.
Definition api.cpp:1063
int duvc_is_hresult_permission_error(int32_t hr)
Check if HRESULT indicates permission error.
duvc_result_t duvc_quick_set_camera_property(const duvc_device_t *device, duvc_cam_prop_t prop, const duvc_prop_setting_t *setting)
Quick set camera property (creates temporary connection)
Definition api.cpp:1251
uint32_t duvc_get_version(void)
Get library version.
Definition api.cpp:234
int duvc_is_hresult_device_error(int32_t hr)
Check if HRESULT indicates device error.
void duvc_shutdown(void)
Shutdown library.
Definition api.cpp:293
duvc_result_t duvc_prop_capability_supports_auto(const duvc_prop_range_t *range, int *supports_auto)
Check if property supports auto mode.
Definition api.cpp:1818
duvc_result_t duvc_quick_get_video_property(const duvc_device_t *device, duvc_vid_prop_t prop, duvc_prop_setting_t *setting)
Quick get video property.
Definition api.cpp:1313
duvc_result_t duvc_log_warning(const char *message)
Log warning message.
Definition api.cpp:494
duvc_result_t duvc_get_video_capability(const duvc_device_capabilities_t *caps, duvc_vid_prop_t prop, duvc_prop_range_t *range, duvc_prop_setting_t *current)
Get video property capability.
Definition api.cpp:1563
duvc_result_t duvc_set_logitech_property(const duvc_device_t *device, duvc_logitech_prop_t prop, const void *data, size_t data_size)
Set Logitech vendor property.
duvc_result_t duvc_quick_set_video_property(const duvc_device_t *device, duvc_vid_prop_t prop, const duvc_prop_setting_t *setting)
Quick set video property.
Definition api.cpp:1347
struct duvc_device_t duvc_device_t
Opaque device handle.
Definition api.h:166
void duvc_clear_last_error(void)
Clear last error information.
Definition api.cpp:1845
int duvc_check_abi_compatibility(uint32_t compiled_version)
Check ABI compatibility.
Definition api.cpp:238
const char * duvc_vid_prop_to_string(duvc_vid_prop_t prop)
Convert video property to string.
Definition api.cpp:377
#define DUVC_LOG_INFO(msg)
Definition api.h:1079
duvc_log_level_t
Log levels.
Definition api.h:106
duvc_result_t duvc_prop_range_is_valid(const duvc_prop_range_t *range, int32_t value, int *valid)
Check if value is valid for range.
Definition api.cpp:1743
duvc_result_t duvc_log_critical(const char *message)
Log critical message.
Definition api.cpp:502
duvc_result_t duvc_set_vendor_property(const duvc_device_t *device, const char *property_set_guid, uint32_t property_id, const void *data, size_t data_size)
Set vendor-specific property.
#define DUVC_LOG_CRITICAL(msg)
Definition api.h:1082
duvc_result_t duvc_get_last_error_details(char *buffer, size_t buffer_size, size_t *required_size)
Get last error details.
Definition api.cpp:1839
int duvc_is_device_error(duvc_result_t result)
Check if error is device-related.
duvc_result_t duvc_get_device_path(const duvc_device_t *device, char *buffer, size_t buffer_size, size_t *required)
Get device path.
Definition api.cpp:647
const char * duvc_error_code_to_string(duvc_result_t code)
Convert error code to string.
Definition api.cpp:341
void(* duvc_device_change_callback)(int added, const char *device_path, void *user_data)
Device hotplug callback.
Definition api.h:196
duvc_result_t duvc_vid_prop_to_wstring(duvc_vid_prop_t prop, wchar_t *buffer, size_t buffer_size, size_t *required)
Convert video property to wide string.
duvc_result_t duvc_get_log_level(duvc_log_level_t *level)
Get current log level.
Definition api.cpp:449
duvc_result_t duvc_open_camera_by_index(int device_index, duvc_connection_t **conn)
Open camera by device index.
Definition api.cpp:775
#define DUVC_LOG_DEBUG(msg)
Definition api.h:1078
duvc_result_t duvc_get_video_property(duvc_connection_t *conn, duvc_vid_prop_t prop, duvc_prop_setting_t *setting)
Get video property value.
Definition api.cpp:967
duvc_result_t duvc_register_device_change_callback(duvc_device_change_callback callback, void *user_data)
Register device change callback.
Definition api.cpp:715
duvc_result_t duvc_get_camera_capability(const duvc_device_capabilities_t *caps, duvc_cam_prop_t prop, duvc_prop_range_t *range, duvc_prop_setting_t *current)
Get camera property capability.
Definition api.cpp:1525
int duvc_is_initialized(void)
Check if library is initialized.
Definition api.cpp:335
const char * duvc_log_level_to_string(duvc_log_level_t level)
Convert log level to string.
Definition api.cpp:385
Property range information.
Definition api.h:144
int32_t max
Maximum supported value.
Definition api.h:146
duvc_cam_mode_t default_mode
Default control mode.
Definition api.h:149
int32_t step
Step size between valid values.
Definition api.h:147
int32_t min
Minimum supported value.
Definition api.h:145
int32_t default_val
Default value.
Definition api.h:148
Property setting with value and mode.
Definition api.h:136
duvc_cam_mode_t mode
Control mode (auto/manual)
Definition api.h:138
int32_t value
Property value.
Definition api.h:137
Vendor property container.
Definition api.h:155
size_t data_size
Size of data in bytes.
Definition api.h:160
uint32_t property_id
Property ID within set.
Definition api.h:158
void * data
Property data payload.
Definition api.h:159