camera_device_info_s device_info[DEVICE_COUNT_MAX];
} camera_device_info_list_s;
+/**
+ * @brief The structure type of the camera device capability resolution.
+ * @since_tizen 9.0
+ */
+typedef struct camera_device_capability_resolution {
+ uint32_t width;
+ uint32_t height;
+ int default_fps_index;
+ camera_fps_list_s fps_list;
+} camera_device_capability_resolution_s;
+
+/**
+ * @brief The structure type of the camera device capability format.
+ * @since_tizen 9.0
+ */
+typedef struct camera_device_capability_format {
+ camera_pixel_format_e pixel_format;
+ uint32_t resolution_count;
+ int default_resolution_index;
+ camera_device_capability_resolution_s *resolution[RESOLUTION_COUNT_MAX];
+} camera_device_capability_format_s;
+
+/**
+ * @brief The structure type of the camera device capability.
+ * @since_tizen 9.0
+ */
+typedef struct camera_device_capability {
+ int device_index;
+ uint32_t format_count;
+ int default_format_index;
+ camera_device_capability_format_s *format[CAMERA_PIXEL_FORMAT_MAX];
+} camera_device_capability_s;
+
+/**
+ * @brief The structure type of the camera device capability list.
+ * @since_tizen 9.0
+ */
+typedef struct camera_device_capability_list {
+ uint32_t device_count;
+ camera_device_capability_s *capability[DEVICE_COUNT_MAX];
+} camera_device_capability_list_s;
+
/**
* @brief Enumeration for the camera message type.
* @since_tizen 6.5
int (*get_extra_preview_bitrate)(void *camera_handle, int stream_id, int *bitrate);
int (*set_extra_preview_gop_interval)(void *camera_handle, int stream_id, int interval);
int (*get_extra_preview_gop_interval)(void *camera_handle, int stream_id, int *interval);
+ int (*get_device_capability_list)(camera_device_capability_list_s *device_capability_list);
} hal_backend_camera_funcs;
/**
*/
int hal_camera_set_batch_command(void *camera_handle, camera_batch_command_control_s *batch_command, int64_t *error_command);
+/**
+ * @brief Gets the device capability list of camera.
+ * @since_tizen 9.0
+ * @param[in] camera_handle The handle to the camera HAL
+ * @param[out] device_capability_list The list of the camera device capability
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CAMERA_ERROR_NONE Successful
+ * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #CAMERA_ERROR_NOT_IMPLEMENTED The feature is not implemented
+ */
+int hal_camera_get_device_capability_list(void *camera_handle, camera_device_capability_list_s *device_capability_list);
+
/**
* @}
*/
return handle->funcs->set_batch_command(handle->backend, batch_command, error_command);
}
+
+
+int hal_camera_get_device_capability_list(void *camera_handle, camera_device_capability_list_s *device_capability_list)
+{
+ hal_camera_s *handle = (hal_camera_s *)camera_handle;
+
+ HAL_CAMERA_RETURN_IF_FAILED(handle, CAMERA_ERROR_INVALID_PARAMETER);
+ HAL_CAMERA_RETURN_IF_FAILED(handle->funcs, CAMERA_ERROR_INVALID_PARAMETER);
+ HAL_CAMERA_RETURN_IF_FAILED(handle->funcs->get_device_capability_list, CAMERA_ERROR_NOT_IMPLEMENTED);
+
+ return handle->funcs->get_device_capability_list(device_capability_list);
+}