@@ -63,6 +63,9 @@ typedef enum {
6363
6464/* ========== Constants ========== */
6565
66+ /** @brief Maximum number of camera devices */
67+ #define CCAP_MAX_DEVICES 32
68+
6669/** @brief Maximum length for device name including null terminator */
6770#define CCAP_MAX_DEVICE_NAME_LENGTH 128
6871
@@ -94,6 +97,12 @@ typedef struct {
9497 uint32_t height ;
9598} CcapResolution ;
9699
100+ /** @brief Device names list structure */
101+ typedef struct {
102+ char deviceNames [CCAP_MAX_DEVICES ][CCAP_MAX_DEVICE_NAME_LENGTH ]; /**< Array of device names */
103+ size_t deviceCount ; /**< Number of devices found */
104+ } CcapDeviceNamesList ;
105+
97106/** @brief Device information structure */
98107typedef struct {
99108 char deviceName [CCAP_MAX_DEVICE_NAME_LENGTH ]; /**< Device name */
@@ -139,18 +148,28 @@ void ccap_provider_destroy(CcapProvider* provider);
139148/* ========== Device Discovery ========== */
140149
141150/**
142- * @brief Find all available camera device names
151+ * @brief Find all available camera device names (new optimized API)
152+ * @param provider Pointer to CcapProvider instance
153+ * @param deviceList Output parameter for device names list
154+ * @return true on success, false on failure
155+ */
156+ bool ccap_provider_find_device_names_list (CcapProvider * provider , CcapDeviceNamesList * deviceList );
157+
158+ /**
159+ * @brief Find all available camera device names (legacy API - deprecated)
143160 * @param provider Pointer to CcapProvider instance
144161 * @param deviceNames Output array of device name strings (caller must free each string and the array)
145162 * @param count Output parameter for number of devices found
146163 * @return true on success, false on failure
164+ * @deprecated Use ccap_provider_find_device_names_list instead
147165 */
148166bool ccap_provider_find_device_names (CcapProvider * provider , char * * * deviceNames , size_t * count );
149167
150168/**
151- * @brief Free device names array returned by ccap_provider_find_device_names
169+ * @brief Free device names array returned by ccap_provider_find_device_names (legacy API - deprecated)
152170 * @param deviceNames Array of device name strings
153171 * @param count Number of device names
172+ * @deprecated Use ccap_provider_find_device_names_list instead
154173 */
155174void ccap_provider_free_device_names (char * * deviceNames , size_t count );
156175
0 commit comments