fi
AM_CONDITIONAL([RM_SUPPORT], [test "x$RM_SUPPORT" = "xyes"])
+AC_ARG_ENABLE(camera-conf-mgr-tv, AC_HELP_STRING([--enable-camera-conf-mgr-tv], [enable camera-conf-mgr-tv]),
+[
+ case "${enableval}" in
+ yes) CAMERA_CONF_MGR_SUPPORT=yes ;;
+ no) CAMERA_CONF_MGR_SUPPORT=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-camera-conf-mgr-tv) ;;
+ esac
+],[CAMERA_CONF_MGR_SUPPORT=no])
+if test "x$CAMERA_CONF_MGR_SUPPORT" = "xyes"; then
+PKG_CHECK_MODULES(CAMERA_CONF_MGR, camera-conf-mgr-tv)
+AC_SUBST(CAMERA_CONF_MGR_CFLAGS)
+AC_SUBST(CAMERA_CONF_MGR_LIBS)
+fi
+AM_CONDITIONAL([CAMERA_CONF_MGR_SUPPORT], [test "x$CAMERA_CONF_MGR_SUPPORT" = "xyes"])
+
PKG_CHECK_MODULES(STORAGE, storage)
AC_SUBST(STORAGE_CFLAGS)
AC_SUBST(STORAGE_LIBS)
Name: libmm-camcorder
Summary: Camera and recorder library
-Version: 0.10.204
+Version: 0.10.205
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
BuildRequires: pkgconfig(tv-resource-manager)
BuildRequires: pkgconfig(tv-resource-information)
BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(camera-conf-mgr-tv)
%else
BuildRequires: pkgconfig(mm-resource-manager)
%endif
%if "%{tizen_profile_name}" == "tv"
--enable-rm \
--enable-product-tv \
+ --enable-camera-conf-mgr-tv \
%else
--enable-mm-resource-manager \
%endif
libmmfcamcorder_la_LIBADD += $(RM_LIBS) $(RI_LIBS) $(AUL_LIBS)
endif
+if CAMERA_CONF_MGR_SUPPORT
+libmmfcamcorder_la_CFLAGS += $(CAMERA_CONF_MGR_CFLAGS) -D_MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+libmmfcamcorder_la_LIBADD += $(CAMERA_CONF_MGR_LIBS)
+endif
+
if PRODUCT_TV
libmmfcamcorder_la_CFLAGS += -D_MMCAMCORDER_PRODUCT_TV
endif
#include <rm_api.h>
#endif /* _MMCAMCORDER_RM_SUPPORT */
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+#include "camera_conf_mgr.h"
+#endif /*_MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT */
+
#ifdef LOG_TAG
#undef LOG_TAG
#endif
rm_category_request_s request_resources;
rm_device_return_s returned_devices;
#endif /* _MMCAMCORDER_RM_SUPPORT */
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+ camera_conf_device_info_s conf_device_info;
+#endif /*_MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT */
int reserved[4]; /**< reserved */
} mmf_camcorder_t;
-----------------------------------------------------------------------*/
#define DEFAULT_AUDIO_BUFFER_INTERVAL 50
+#define __MMCAMCORDER_CONF_FILEPATH_LENGTH 128
char *get_new_string(char* src_string)
{
{
int ret = MM_ERROR_NONE;
FILE *fp = NULL;
- char conf_path[60] = {'\0',};
+ char conf_path[__MMCAMCORDER_CONF_FILEPATH_LENGTH] = {'\0',};
_mmcam_dbg_log("Opening...[%s]", ConfFile);
ed = exif_data_new();
if (!ed) {
_mmcam_dbg_err("exif data new error");
+ free(x);
return MM_ERROR_CAMCORDER_LOW_MEMORY;
}
exif_data_save_data(ed, &eb, &ebs);
if (eb == NULL) {
_mmcam_dbg_err("exif_data_save_data error");
- free(x->data);
free(x);
exif_data_unref(ed);
return MM_ERROR_CAMCORDER_INTERNAL;
_mmcamcorder_conf_set_value_element_property(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, VideosrcElement);
/* Set video device index */
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+ MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "device-name", hcamcorder->conf_device_info.node);
+#else
MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "camera-id", input_index->default_value);
+#endif
/* set user buffer fd to videosrc element */
if (hcamcorder->support_user_buffer) {
#define __MMCAMCORDER_FORCE_STOP_WAIT_TIME 100000 /* us */
#define __MMCAMCORDER_SOUND_WAIT_TIMEOUT 3
#define __MMCAMCORDER_FOCUS_CHANGE_REASON_LEN 64
-#define __MMCAMCORDER_CONF_FILENAME_LENGTH 32
+#define __MMCAMCORDER_CONF_FILENAME_LENGTH 64
+
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+#define __MMCAMCORDER_DEVICE_TYPE_STRING_LEN 1
+#endif
+
#define DPM_ALLOWED 1
#define DPM_DISALLOWED 0
char *err_attr_name = NULL;
char conf_file_name[__MMCAMCORDER_CONF_FILENAME_LENGTH] = {'\0',};
MMCamAttrsInfo fps_info;
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+ camera_conf_error_e ret_conf = CAMERA_CONF_MGR_ERROR_NONE;
+ char devicetype[__MMCAMCORDER_CONF_FILENAME_LENGTH] = {'\0',};
+#endif
if (!hcamcorder) {
_mmcam_dbg_err("NULL handle");
return MM_ERROR_CAMCORDER_NOT_INITIALIZED;
}
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+ snprintf(devicetype, sizeof(devicetype), "%d", hcamcorder->device_type);
+ memset(&hcamcorder->conf_device_info, 0x00, sizeof(camera_conf_device_info_s));
+ ret_conf = camera_conf_mgr_get_ids(devicetype, __MMCAMCORDER_DEVICE_TYPE_STRING_LEN,
+ &hcamcorder->conf_device_info);
+ if (ret_conf != CAMERA_CONF_MGR_ERROR_NONE) {
+ _mmcam_dbg_err("Device [%s] is not found", devicetype);
+ return MM_ERROR_CAMCORDER_NOT_SUPPORTED;
+ }
+
+ snprintf(conf_file_name, sizeof(conf_file_name), "%s_%s_%s.ini",
+ CONFIGURE_CTRL_FILE_PREFIX, hcamcorder->conf_device_info.vendor_id,
+ hcamcorder->conf_device_info.product_id);
+
+ _mmcam_dbg_log("Load control configure file [%d][%s][%s]", hcamcorder->device_type,
+ conf_file_name, hcamcorder->conf_device_info.node);
+#else
snprintf(conf_file_name, sizeof(conf_file_name), "%s%d.ini",
CONFIGURE_CTRL_FILE_PREFIX, hcamcorder->device_type);
-
_mmcam_dbg_log("Load control configure file [%d][%s]", hcamcorder->device_type, conf_file_name);
+#endif
ret = _mmcamcorder_conf_get_info((MMHandleType)hcamcorder,
CONFIGURE_TYPE_CTRL, (const char *)conf_file_name, &hcamcorder->conf_ctrl);
if (ret != MM_ERROR_NONE) {
+#ifdef _MMCAMCORDER_CAMERA_CONF_MGR_SUPPORT
+ snprintf(conf_file_name, sizeof(conf_file_name), "%s.ini",
+ CONFIGURE_CTRL_FILE_PREFIX);
+ ret = _mmcamcorder_conf_get_info((MMHandleType)hcamcorder,
+ CONFIGURE_TYPE_CTRL, (const char *)conf_file_name, &hcamcorder->conf_ctrl);
+ if (ret != MM_ERROR_NONE) {
+ _mmcam_dbg_err("Failed to get configure(control) info.");
+ return ret;
+ }
+#else
_mmcam_dbg_err("Failed to get configure(control) info.");
return ret;
+#endif
}
/*
_mmcamcorder_conf_print_info(&hcamcorder->conf_main);