int camera_device_manager_remove_device_connection_changed_cb(camera_device_manager_h manager, int cb_id);
/**
+ * @brief Gets the product id of the camera device.
+ * @since_tizen 8.0
+ * @param[in] manager The handle to the camera device manager
+ * @param[in] device The index of camera device
+ * @param[out] product_id The product id of camera device
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CAMERA_ERROR_NONE Successful
+ * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
+ * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
+ * @see camera_device_manager_initialize()
+ * @see camera_device_manager_deinitialize()
+ * @see camera_supported_device_cb()
+ */
+int camera_device_manager_get_product_id(camera_device_manager_h manager, camera_device_e device, unsigned short *product_id);
+
+/**
+ * @brief Gets the vendor id of the camera device.
+ * @since_tizen 8.0
+ * @param[in] manager The handle to the camera device manager
+ * @param[in] device The index of camera device
+ * @param[out] vendor_id The vendor id of camera device
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #CAMERA_ERROR_NONE Successful
+ * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
+ * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
+ * @see camera_device_manager_initialize()
+ * @see camera_device_manager_deinitialize()
+ * @see camera_supported_device_cb()
+ */
+int camera_device_manager_get_vendor_id(camera_device_manager_h manager, camera_device_e device, unsigned short *vendor_id);
+
+/**
* @brief Starts capturing and drawing preview frames on the screen.
*
* @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
/**
* @internal
+ * @brief Enumeration for camera device manager property type.
+ * @since_tizen 8.0
+ */
+typedef enum {
+ CAMERA_DEVICE_MANAGER_PROPERTY_TYPE_PRODUCT_ID = 0,
+ CAMERA_DEVICE_MANAGER_PROPERTY_TYPE_VENDOR_ID
+} camera_device_manager_property_type_e;
+
+/**
+ * @internal
* @brief The structure type for the camera device manager.
* @since_tizen 7.0
*/
void *dl_handle;
int (*initialize)(void);
int (*deinitialize)(void);
- int (*get_device_list)(void *list);
+ int (*get_device_list)(void *);
int (*add_device_connection_changed_cb)(void *, void *, int *);
int (*remove_device_connection_changed_cb)(int);
+ int (*get_device_property)(int, int, void *);
} camera_device_manager;
#ifdef __cplusplus
#include <camera_private.h>
#include <camera_device_manager.h>
#include <dlfcn.h>
+#include <glib-object.h>
#ifdef LOG_TAG
#undef LOG_TAG
{(void **)&new_manager->get_device_list, "cdm_get_device_list"},
{(void **)&new_manager->add_device_connection_changed_cb, "cdm_add_device_connection_changed_cb"},
{(void **)&new_manager->remove_device_connection_changed_cb, "cdm_remove_device_connection_changed_cb"},
+ {(void **)&new_manager->get_device_property, "cdm_get_device_property"}
};
CAMERA_CHECK_DEVICE_MANAGER;
return CAMERA_ERROR_NONE;
}
+
+
+int camera_device_manager_get_product_id(camera_device_manager_h manager, camera_device_e device, unsigned short *product_id)
+{
+ int ret = CAMERA_ERROR_NONE;
+ camera_device_manager *m = (camera_device_manager *)manager;
+ GValue value = G_VALUE_INIT;
+
+ CAMERA_CHECK_DEVICE_MANAGER;
+
+ if (!m || !product_id) {
+ CAM_LOG_ERROR("NULL param[%p,%p]", m, product_id);
+ return CAMERA_ERROR_INVALID_PARAMETER;
+ }
+
+ g_value_init(&value, G_TYPE_UINT);
+
+ ret = m->get_device_property(device, CAMERA_DEVICE_MANAGER_PROPERTY_TYPE_PRODUCT_ID, &value);
+ if (ret != CAMERA_ERROR_NONE) {
+ CAM_LOG_ERROR("failed[0x%x]", ret);
+ return ret;
+ }
+
+ *product_id = (unsigned short)g_value_get_uint(&value);
+
+ g_value_unset(&value);
+
+ CAM_LOG_INFO("device[%d] - product_id[0x%x], ret[0x%x]", device, *product_id, ret);
+
+ return ret;
+}
+
+
+int camera_device_manager_get_vendor_id(camera_device_manager_h manager, camera_device_e device, unsigned short *vendor_id)
+{
+ int ret = CAMERA_ERROR_NONE;
+ camera_device_manager *m = (camera_device_manager *)manager;
+ GValue value = G_VALUE_INIT;
+
+ CAMERA_CHECK_DEVICE_MANAGER;
+
+ if (!m || !vendor_id) {
+ CAM_LOG_ERROR("NULL param[%p,%p]", m, vendor_id);
+ return CAMERA_ERROR_INVALID_PARAMETER;
+ }
+
+ g_value_init(&value, G_TYPE_UINT);
+
+ ret = m->get_device_property(device, CAMERA_DEVICE_MANAGER_PROPERTY_TYPE_VENDOR_ID, &value);
+ if (ret != CAMERA_ERROR_NONE) {
+ CAM_LOG_ERROR("failed[0x%x]", ret);
+ return ret;
+ }
+
+ *vendor_id = (unsigned short)g_value_get_uint(&value);
+
+ g_value_unset(&value);
+
+ CAM_LOG_INFO("device[%d] - vendor_id[0x%x], ret[0x%x]", device, *vendor_id, ret);
+
+ return CAMERA_ERROR_NONE;
+}
//LCOV_EXCL_STOP