[Camera] Add new API - get facing direction 32/54332/3 accepted/tizen/mobile/20151222.090348 accepted/tizen/tv/20151222.090411 accepted/tizen/wearable/20151222.090435 submit/tizen/20151222.052554 submit/tizen_common/20151229.142028 submit/tizen_common/20151229.144031 submit/tizen_common/20151229.154718
authorHaesu Gwon <haesu.gwon@samsung.com>
Tue, 15 Dec 2015 02:39:58 +0000 (11:39 +0900)
committerHaesu Gwon <haesu.gwon@samsung.com>
Mon, 21 Dec 2015 09:14:40 +0000 (18:14 +0900)
Change-Id: I10e134d15c877a42c356550b21da6bcfb10455e1

legacy/include/legacy_camera.h
legacy/src/legacy_camera.c [changed mode: 0644->0755]
muse/include/muse_camera.h [changed mode: 0644->0755]
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec [changed mode: 0644->0755]

index b7ce85f..b0f05e9 100755 (executable)
@@ -172,6 +172,16 @@ typedef enum
 } camera_focus_state_e;
 
 /**
+ * @brief Enumeration for the facing direction of camera module
+ * @since_tizen 3.0
+ */
+typedef enum {
+       CAMERA_FACING_DIRECTION_REAR = 0, /**< Rear */
+       CAMERA_FACING_DIRECTION_FRONT,    /**< Front */
+} camera_facing_direction_e;
+
+
+/**
  * @brief The structure type of the image data.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  */
old mode 100644 (file)
new mode 100755 (executable)
index 8b018f0..9a3a366
@@ -1737,6 +1737,22 @@ int legacy_camera_get_preview_format(camera_h camera, camera_pixel_format_e *for
        return __convert_camera_error_code(__func__, ret);
 }
 
+int legacy_camera_get_facing_direction(camera_h camera, camera_facing_direction_e *facing_direction)
+{
+       if (camera == NULL || facing_direction == NULL) {
+               LOGE("INVALID_PARAMETER(0x%08x)", CAMERA_ERROR_INVALID_PARAMETER);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       int ret = MM_ERROR_NONE;
+       camera_s *handle = (camera_s *)camera;
+
+       ret = mm_camcorder_get_attributes(handle->mm_handle, NULL,
+                                         MMCAM_CAMERA_FACING_DIRECTION, facing_direction,
+                                         NULL);
+
+       return __convert_camera_error_code(__func__, ret);
+}
 
 int legacy_camera_set_preview_cb(camera_h camera, camera_preview_cb callback, void *user_data)
 {
old mode 100644 (file)
new mode 100755 (executable)
index d3490ca..e9993e5
@@ -70,102 +70,103 @@ typedef enum {
        MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION,
        MUSE_CAMERA_API_GET_CAPTURE_FORMAT,
        MUSE_CAMERA_API_GET_PREVIEW_FORMAT,
-       MUSE_CAMERA_API_SET_PREVIEW_CB,
-       MUSE_CAMERA_API_UNSET_PREVIEW_CB, //35
+       MUSE_CAMERA_API_GET_FACING_DIRECTION,
+       MUSE_CAMERA_API_SET_PREVIEW_CB, //35
+       MUSE_CAMERA_API_UNSET_PREVIEW_CB,
        MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB,
        MUSE_CAMERA_API_UNSET_MEDIA_PACKET_PREVIEW_CB,
        MUSE_CAMERA_API_SET_STATE_CHANGED_CB,
-       MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB,
-       MUSE_CAMERA_API_SET_INTERRUPTED_CB, //40
+       MUSE_CAMERA_API_UNSET_STATE_CHANGED_CB, //40
+       MUSE_CAMERA_API_SET_INTERRUPTED_CB,
        MUSE_CAMERA_API_UNSET_INTERRUPTED_CB,
        MUSE_CAMERA_API_SET_FOCUS_CHANGED_CB,
        MUSE_CAMERA_API_UNSET_FOCUS_CHANGED_CB,
-       MUSE_CAMERA_API_SET_ERROR_CB,
-       MUSE_CAMERA_API_UNSET_ERROR_CB, //45
+       MUSE_CAMERA_API_SET_ERROR_CB, //45
+       MUSE_CAMERA_API_UNSET_ERROR_CB,
        MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_RESOLUTION,
        MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_RESOLUTION,
        MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_CAPTURE_FORMAT,
-       MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT,
-       MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION, //50
+       MUSE_CAMERA_API_SET_FOREACH_SUPPORTED_PREVIEW_FORMAT, //50
+       MUSE_CAMERA_API_GET_RECOMMENDED_PREVIEW_RESOLUTION,
        MUSE_CAMERA_API_ATTR_GET_LENS_ORIENTATION,
        MUSE_CAMERA_API_ATTR_SET_THEATER_MODE,
        MUSE_CAMERA_API_ATTR_GET_THEATER_MODE,
-       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE,
-       MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS, //55
+       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_THEATER_MODE, //55
+       MUSE_CAMERA_API_ATTR_SET_PREVIEW_FPS,
        MUSE_CAMERA_API_ATTR_SET_IMAGE_QUALITY,
        MUSE_CAMERA_API_ATTR_GET_PREVIEW_FPS,
        MUSE_CAMERA_API_ATTR_GET_IMAGE_QUALITY,
-       MUSE_CAMERA_API_ATTR_SET_ZOOM,
-       MUSE_CAMERA_API_ATTR_SET_AF_MODE, //60
+       MUSE_CAMERA_API_ATTR_SET_ZOOM, //60
+       MUSE_CAMERA_API_ATTR_SET_AF_MODE,
        MUSE_CAMERA_API_ATTR_SET_AF_AREA,
        MUSE_CAMERA_API_ATTR_CLEAR_AF_AREA,
        MUSE_CAMERA_API_ATTR_SET_EXPOSURE_MODE,
-       MUSE_CAMERA_API_ATTR_SET_EXPOSURE,
-       MUSE_CAMERA_API_ATTR_SET_ISO, //65
+       MUSE_CAMERA_API_ATTR_SET_EXPOSURE, //65
+       MUSE_CAMERA_API_ATTR_SET_ISO,
        MUSE_CAMERA_API_ATTR_SET_BRIGHTNESS,
        MUSE_CAMERA_API_ATTR_SET_CONTRAST,
        MUSE_CAMERA_API_ATTR_SET_WHITEBALANCE,
-       MUSE_CAMERA_API_ATTR_SET_EFFECT,
-       MUSE_CAMERA_API_ATTR_SET_SCENE_MODE, //70
+       MUSE_CAMERA_API_ATTR_SET_EFFECT, //70
+       MUSE_CAMERA_API_ATTR_SET_SCENE_MODE,
        MUSE_CAMERA_API_ATTR_ENABLE_TAG,
        MUSE_CAMERA_API_ATTR_SET_TAG_IMAGE_DESCRIPTION,
        MUSE_CAMERA_API_ATTR_SET_TAG_ORIENTATION,
-       MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE,
-       MUSE_CAMERA_API_ATTR_SET_GEOTAG, //75
+       MUSE_CAMERA_API_ATTR_SET_TAG_SOFTWARE, //75
+       MUSE_CAMERA_API_ATTR_SET_GEOTAG,
        MUSE_CAMERA_API_ATTR_REMOVE_GEOTAG,
        MUSE_CAMERA_API_ATTR_SET_FLASH_MODE,
        MUSE_CAMERA_API_ATTR_GET_ZOOM,
-       MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE,
-       MUSE_CAMERA_API_ATTR_GET_AF_MODE, //80
+       MUSE_CAMERA_API_ATTR_GET_ZOOM_RANGE, //80
+       MUSE_CAMERA_API_ATTR_GET_AF_MODE,
        MUSE_CAMERA_API_ATTR_GET_EXPOSURE_MODE,
        MUSE_CAMERA_API_ATTR_GET_EXPOSURE,
        MUSE_CAMERA_API_ATTR_GET_EXPOSURE_RANGE,
-       MUSE_CAMERA_API_ATTR_GET_ISO,
-       MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS, //85
+       MUSE_CAMERA_API_ATTR_GET_ISO, //85
+       MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS,
        MUSE_CAMERA_API_ATTR_GET_BRIGHTNESS_RANGE,
        MUSE_CAMERA_API_ATTR_GET_CONTRAST,
        MUSE_CAMERA_API_ATTR_GET_CONTRAST_RANGE,
-       MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE,
-       MUSE_CAMERA_API_ATTR_GET_EFFECT, //90
+       MUSE_CAMERA_API_ATTR_GET_WHITEBALANCE, //90
+       MUSE_CAMERA_API_ATTR_GET_EFFECT,
        MUSE_CAMERA_API_ATTR_GET_SCENE_MODE,
        MUSE_CAMERA_API_ATTR_IS_ENABLED_TAG,
        MUSE_CAMERA_API_ATTR_GET_TAG_IMAGE_DESCRIPTION,
-       MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION,
-       MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE, //95
+       MUSE_CAMERA_API_ATTR_GET_TAG_ORIENTATION, //95
+       MUSE_CAMERA_API_ATTR_GET_TAG_SOFTWARE,
        MUSE_CAMERA_API_ATTR_GET_GEOTAG,
        MUSE_CAMERA_API_ATTR_GET_FLASH_MODE,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_AF_MODE,
-       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE,
-       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO, //100
+       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EXPOSURE_MODE, //100
+       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_ISO,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_WHITEBALANCE,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_EFFECT,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_SCENE_MODE,
-       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE,
-       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS, //105
+       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FLASH_MODE, //105
+       MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_FPS_BY_RESOLUTION,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_FLIP,
        MUSE_CAMERA_API_ATTR_FOREACH_SUPPORTED_STREAM_ROTATION,
-       MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION,
-       MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION, //110
+       MUSE_CAMERA_API_ATTR_SET_STREAM_ROTATION, //110
+       MUSE_CAMERA_API_ATTR_GET_STREAM_ROTATION,
        MUSE_CAMERA_API_ATTR_SET_STREAM_FLIP,
        MUSE_CAMERA_API_ATTR_GET_STREAM_FLIP,
        MUSE_CAMERA_API_ATTR_SET_HDR_MODE,
-       MUSE_CAMERA_API_ATTR_GET_HDR_MODE,
-       MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE, //115
+       MUSE_CAMERA_API_ATTR_GET_HDR_MODE, //115
+       MUSE_CAMERA_API_ATTR_IS_SUPPORTED_HDR_CAPTURE,
        MUSE_CAMERA_API_ATTR_SET_HDR_CAPTURE_PROGRESS_CB,
        MUSE_CAMERA_API_ATTR_UNSET_HDR_CAPTURE_PROGRESS_CB,
        MUSE_CAMERA_API_ATTR_ENABLE_ANTI_SHAKE,
-       MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE,
-       MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE, //120
+       MUSE_CAMERA_API_ATTR_IS_ENABLED_ANTI_SHAKE, //120
+       MUSE_CAMERA_API_ATTR_IS_SUPPORTED_ANTI_SHAKE,
        MUSE_CAMERA_API_ATTR_ENABLE_VIDEO_STABILIZATION,
        MUSE_CAMERA_API_ATTR_IS_ENABLED_VIDEO_STABILIZATION,
        MUSE_CAMERA_API_ATTR_IS_SUPPORTED_VIDEO_STABILIZATION,
-       MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST,
-       MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST, //125
+       MUSE_CAMERA_API_ATTR_ENABLE_AUTO_CONTRAST, //125
+       MUSE_CAMERA_API_ATTR_IS_ENABLED_AUTO_CONTRAST,
        MUSE_CAMERA_API_ATTR_IS_SUPPORTED_AUTO_CONTRAST,
        MUSE_CAMERA_API_ATTR_DISABLE_SHUTTER_SOUND,
        MUSE_CAMERA_API_RETURN_BUFFER,
-       MUSE_CAMERA_API_PREVIEW_CB_RETURN,
+       MUSE_CAMERA_API_PREVIEW_CB_RETURN, //130
        MUSE_CAMERA_API_MAX
 } muse_camera_api_e;
 
index 68f1016..b9c5867 100755 (executable)
@@ -1666,6 +1666,26 @@ int camera_dispatcher_get_preview_format(muse_module_h module)
        return MUSE_CAMERA_ERROR_NONE;
 }
 
+int camera_dispatcher_get_facing_direction(muse_module_h module)
+{
+       int ret = CAMERA_ERROR_NONE;
+       muse_camera_handle_s *muse_camera = NULL;
+       camera_facing_direction_e get_facing_direction = CAMERA_FACING_DIRECTION_REAR;
+       muse_camera_api_e api = MUSE_CAMERA_API_GET_FACING_DIRECTION;
+       muse_camera_api_class_e class = MUSE_CAMERA_API_CLASS_IMMEDIATE;
+
+       muse_camera = (muse_camera_handle_s *)muse_core_ipc_get_handle(module);
+
+       LOGD("handle : %p", muse_camera);
+
+       ret = legacy_camera_get_facing_direction(muse_camera->camera_handle, &get_facing_direction);
+       if (ret == CAMERA_ERROR_NONE) {
+               muse_camera_msg_return1(api, class, ret, module, INT, get_facing_direction);
+       } else {
+               muse_camera_msg_return(api, class, ret, module);
+       }
+}
+
 int camera_dispatcher_set_preview_cb(muse_module_h module)
 {
        int ret = CAMERA_ERROR_NONE;
@@ -3827,6 +3847,7 @@ int (*dispatcher[MUSE_CAMERA_API_MAX]) (muse_module_h module) = {
        camera_dispatcher_get_capture_resolution, /* MUSE_CAMERA_API_GET_CAPTURE_RESOLUTION, */
        camera_dispatcher_get_capture_format, /* MUSE_CAMERA_API_GET_CAPTURE_FORMAT, */
        camera_dispatcher_get_preview_format, /* MUSE_CAMERA_API_GET_PREVIEW_FORMAT, */
+       camera_dispatcher_get_facing_direction, /* MUSE_CAMERA_API_GET_FACING_DIRECTION, */
        camera_dispatcher_set_preview_cb, /* MUSE_CAMERA_API_SET_PREVIEW_CB, */
        camera_dispatcher_unset_preview_cb, /* MUSE_CAMERA_API_UNSET_PREVIEW_CB, */
        camera_dispatcher_set_media_packet_preview_cb, /* MUSE_CAMERA_API_SET_MEDIA_PACKET_PREVIEW_CB, */
old mode 100644 (file)
new mode 100755 (executable)
index 1232efd..a3a1667
@@ -3,7 +3,7 @@
 
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.20
+Version:    0.2.21
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0