upload tizen1.0 source
authorKim Kibum <kb0929.kim@samsung.com>
Sun, 29 Apr 2012 07:58:21 +0000 (16:58 +0900)
committerKim Kibum <kb0929.kim@samsung.com>
Sun, 29 Apr 2012 07:58:21 +0000 (16:58 +0900)
.gitignore [deleted file]
CMakeLists.txt
capi-media-camera.pc.in
debian/changelog
debian/control
include/camera.h
include/camera_private.h
packaging/capi-media-camera.spec
src/camera.c
test/multimedia_camera_test.c

diff --git a/.gitignore b/.gitignore
deleted file mode 100755 (executable)
index f884ceb..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-CMakeCache.txt
-*/CMakeFiles/*
-*.cmake
-CMakeFiles*
-*.a
-*.so
-Testing
-cmake.depends
-cmake.check_depends
-cmake.check_cache
-core
-core.*
-gmon.out
-install_manifest.txt
-*~
-.kdev_include_paths
-src.kdev4
-.cproject
-.project
-tet_captured
-tet_lock
-*.pc
-*-test
-*-test_*
-*tester.c
-TC/config
index 39df7eb0826d766595dd966bb44acae1c08325d2..0a35b5a5be63c175d00d1986d64d2ecc17f72508 100755 (executable)
@@ -24,10 +24,7 @@ SET(submodule "camera")
 
 # for package file
 SET(dependents "dlog mm-camcorder capi-base-common")
-# for deb
-SET(deb_dependents "libdlog libmm-camcorder")
-
-
+SET(pc_dependents "capi-base-common")
 
 SET(fw_name "${project_prefix}-${service}-${submodule}")
 
@@ -80,9 +77,8 @@ INSTALL(
         )
 
 SET(PC_NAME ${fw_name})
-SET(PC_REQUIRED ${dependents})
+SET(PC_REQUIRED ${pc_dependents})
 SET(PC_LDFLAGS -l${fw_name})
-SET(PC_CFLAGS -I\${includedir}/${service})
 
 CONFIGURE_FILE(
     ${fw_name}.pc.in
index 773d6677f6b38f6b94729b6fdce7465563546818..5d02f8df41731b330865ef6f8930b8651473fff8 100755 (executable)
@@ -11,5 +11,5 @@ Description: @PACKAGE_DESCRIPTION@
 Version: @VERSION@
 Requires: @PC_REQUIRED@ 
 Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir} @PC_CFLAGS@
+Cflags: -I${includedir}
 
index 70d79d5329a11d3e041b7e9933f5e1078a023892..af53b4f441d5e810684115b78c8ef07fe7b94888 100755 (executable)
@@ -1,10 +1,10 @@
-capi-media-camera (0.1.0-8) unstable; urgency=low
+capi-media-camera (0.1.0-11) unstable; urgency=low
 
-  * add so version
+  * update camrea API
   * Git: slp-source.sec.samsung.net:slp/api/camera
-  * Tag: capi-media-camera_0.1.0-8
+  * Tag: capi-media-camera_0.1.0-11
 
- -- Seungkeun Lee <sngn.lee@samsung.com>  Tue, 14 Feb 2012 16:43:04 +0900
+ -- Seungkeun Lee <sngn.lee@samsung.com>  Wed, 14 Mar 2012 11:38:20 +0900
 
 capi-media-camera (0.0.1-1) unstable; urgency=low
 
index 758069a6157a8ec387027c57b930f24160ffd714..e1e354b5e9569e5d2f56347e1560419c4a804aae 100755 (executable)
@@ -3,16 +3,16 @@ Source: capi-media-camera
 Section: libs
 Priority: extra
 Maintainer: Seungkeun Lee <sngn.lee@samsung.com>, Kangho Hur<kagho.hur@samsung.com>
-Build-Depends: debhelper (>= 5), libmm-camcorder-dev, libmm-common-dev, libmm-session-dev, capi-base-common-dev
+Build-Depends: debhelper (>= 5), dlog-dev, libmm-camcorder-dev, libmm-common-dev, libmm-session-dev, capi-base-common-dev
 
 Package: capi-media-camera
 Architecture: any
-Depends: ${shilbs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: A Camera library in Tizen Native API
 
 Package: capi-media-camera-dev
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, capi-media-camera (= ${Source-Version}), dlog-dev, capi-base-common-dev, libmm-camcorder-dev
+Depends: ${shlibs:Depends}, ${misc:Depends}, capi-media-camera (= ${Source-Version}), capi-base-common-dev
 Description: A Camera library in Tizen Native API (DEV)
 
 Package: capi-media-camera-dbg
index c86e0f3a0a973016bee585e490b0dc00593a6049..998249f54a0651905c70fd355c1d5c1731980daf 100755 (executable)
@@ -11,7 +11,7 @@
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
-* limitations under the License. 
+* limitations under the License.
 */
 
 
@@ -104,7 +104,7 @@ typedef enum
 
 /**
  * @brief      Enumerations of the camera display type.
- */ 
+ */
 typedef enum
 {
   CAMERA_DISPLAY_TYPE_X11 = 0,         /**< X surface display */
@@ -129,7 +129,7 @@ typedef void *camera_display_h;
 #ifndef GET_DISPLAY
 
 /**
- * @brief      Gets a display handle from x window id or evas object 
+ * @brief      Gets a display handle from x window id or evas object
  */
 #define GET_DISPLAY(x) (void*)(x)
 
@@ -147,15 +147,27 @@ typedef void *camera_display_h;
 
 
 /**
- * @brief Enumerations of the camera display rotation type.
+ * @brief Enumerations of the camera rotation type.
+ */
+typedef enum
+{
+       CAMERA_ROTATION_NONE,   /**< No rotation */
+       CAMERA_ROTATION_90,             /**< 90 degree rotation */
+       CAMERA_ROTATION_180,    /**< 180 degree rotation */
+       CAMERA_ROTATION_270,    /**< 270 degree rotation */
+} camera_rotation_e;
+
+
+/**
+ * @brief Enumerations of the camera flip type.
  */
 typedef enum
 {
-       CAMERA_DISPLAY_ROTATION_NONE,   /**< No rotation of the display */
-       CAMERA_DISPLAY_ROTATION_90,             /**< 90 degree rotation */
-       CAMERA_DISPLAY_ROTATION_180,    /**< 180 degree rotation */
-       CAMERA_DISPLAY_ROTATION_270,    /**< 270 degree rotation */
-} camera_display_rotation_e;
+       CAMERA_FLIP_NONE,               /**< No Flip */
+       CAMERA_FLIP_HORIZONTAL, /**< Horizontal flip */
+       CAMERA_FLIP_VERTICAL, /**< Vertical flip */
+       CAMERA_FLIP_BOTH        /** Horizontal and vertical flip */
+}camera_flip_e;
 
 /**
  * @brief Enumerations of the camera display mode.
@@ -419,7 +431,7 @@ typedef void (*camera_preview_cb)(void *stream_buffer, int buffer_size, int widt
 
 
 /**
- * @brief      Called to get information about image data taken by the camera once per frame while capturing. 
+ * @brief      Called to get information about image data taken by the camera once per frame while capturing.
  *
  * @remarks This function is issued in the context of gstreamer (video source thread) so you should not directly invoke UI update code.
  * You must not call camera_stop_preview() within this callback.
@@ -645,10 +657,10 @@ int camera_stop_preview(camera_h camera);
  * @retval      #CAMERA_ERROR_INVALID_OPERATION Invalid operation
  *
  * @pre         The camera state must be #CAMERA_STATE_PREVIEW. \n
- * If needed, modify capture resolution(camera_set_capture_resolution()), 
+ * If needed, modify capture resolution(camera_set_capture_resolution()),
  * capture format(camera_set_capture_format()), or image quality(camera_attr_set_image_quality())
  * @post   If it succeeds the camera state will be #CAMERA_STATE_CAPTURED.
- * 
+ *
  * @see camera_start_preview()
  * @see camera_set_capturing_cb()
  * @see camera_set_capture_completed_cb()
@@ -710,7 +722,7 @@ int camera_start_focusing(camera_h camera);
  * @pre    The camera state should be #CAMERA_STATE_PREVIEW
  *
  * @see camera_start_focusing()
- * @see        camera_focus_changed_cb() 
+ * @see        camera_focus_changed_cb()
  */
 int camera_cancel_focusing(camera_h camera);
 
@@ -819,17 +831,17 @@ int camera_foreach_supported_preview_resolution(camera_h camera,
  * @retval      #CAMERA_ERROR_NONE Successful
  * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval      #CAMERA_ERROR_INVALID_STATE Invalid state
- * @retval      #CAMERA_ERROR_INVALID_OPERATION Display type is not X11 
+ * @retval      #CAMERA_ERROR_INVALID_OPERATION Display type is not X11
  *
  * @see camera_start_preview()
  * @see        camera_get_x11_display_rotation()
  */
-int camera_set_x11_display_rotation(camera_h camera, camera_display_rotation_e rotation);
+int camera_set_x11_display_rotation(camera_h camera, camera_rotation_e rotation);
 
 /**
  * @brief Gets the display rotation.
  * @ingroup CAPI_MEDIA_CAMERA_X11_DISPLAY_MODULE
- * 
+ *
  * @remarks  This function is valid only for #CAMERA_DISPLAY_TYPE_X11.
  *
  * @param[in]  camera  The handle to the camera
@@ -840,7 +852,7 @@ int camera_set_x11_display_rotation(camera_h camera, camera_display_rotation_e r
  *
  * @see camera_set_x11_display_rotation()
  */
-int camera_get_x11_display_rotation(camera_h camera, camera_display_rotation_e *rotation);
+int camera_get_x11_display_rotation(camera_h camera, camera_rotation_e *rotation);
 
 /**
  * @brief Sets the visible property for X11 display.
@@ -1223,7 +1235,7 @@ int camera_set_state_changed_cb(camera_h camera, camera_state_changed_cb callbac
 int camera_unset_state_changed_cb(camera_h camera);
 
 /**
- * @brief      Registers a callback function to be called when auto-focus state changes. 
+ * @brief      Registers a callback function to be called when auto-focus state changes.
  *
  * @param[in] camera   The handle to the camera
  * @param[in] callback The callback function to register
@@ -1256,7 +1268,7 @@ int camera_unset_focus_changed_cb(camera_h camera);
 
 
 /**
- * @brief      Registers a callback function to be called when capture completes. 
+ * @brief      Registers a callback function to be called when capture completes.
  *
  * @param[in] camera   The handle to the camera
  * @param[in] callback The callback function to register
@@ -1288,7 +1300,7 @@ int camera_unset_capture_completed_cb(camera_h camera);
 
 
 /**
- * @brief      Registers a callback function to be called when an asynchronous operation error occurred. 
+ * @brief      Registers a callback function to be called when an asynchronous operation error occurred.
  *
  * @param[in]  camera  The handle to the camera
  * @param[in]  callback        The callback function to register
@@ -1497,7 +1509,7 @@ int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps
  * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
  * @{
  */
+
 /**
  * @brief Sets the image quality.
  *
@@ -1540,7 +1552,7 @@ int camera_attr_get_image_quality(camera_h camera, int *quality);
  * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
  *
  * @see camera_attr_get_zoom()
- * @see camera_attr_get_zoom_range() 
+ * @see camera_attr_get_zoom_range()
  */
 int camera_attr_set_zoom(camera_h camera, int zoom);
 
@@ -1563,7 +1575,7 @@ int camera_attr_get_zoom(camera_h camera, int *zoom);
  *
  * @param[in] camera   The handle to the camera
  * @param[out] min     The minimum zoom level
- * @param[out] max     The maximum zoom level 
+ * @param[out] max     The maximum zoom level
  * @return       0 on success, otherwise a negative error value.
  * @retval      #CAMERA_ERROR_NONE Successful
  * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
@@ -1676,7 +1688,7 @@ int camera_attr_get_exposure_mode(camera_h camera, camera_attr_exposure_mode_e *
  * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
  * @{
  */
+
 /**
  * @brief Retrieves all supported exposure modes by invoking callback function once for each supported exposure mode.
  *
@@ -1735,7 +1747,7 @@ int camera_attr_get_exposure(camera_h camera, int *value);
  *
  * @param[in]  camera  The handle to the camera
  * @param[out]  min The minimum exposure value
- * @param[out]  max The maximum exposure value 
+ * @param[out]  max The maximum exposure value
  * @return         0 on success, otherwise a negative error value.
  * @retval      #CAMERA_ERROR_NONE Successful
  * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
@@ -1843,7 +1855,7 @@ int camera_attr_get_brightness(camera_h camera, int *level);
  *
  * @param[in]  camera  The handle to the camera
  * @param[out]  min   The minimum brightness level
- * @param[out]  max   The maximum brightness level 
+ * @param[out]  max   The maximum brightness level
  * @return      0 on success, otherwise a negative error value.
  * @retval    #CAMERA_ERROR_NONE Successful
  * @retval    #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
@@ -1887,7 +1899,7 @@ int camera_attr_get_contrast(camera_h camera, int *level);
  *
  * @param[in]  camera  The handle to the camera
  * @param[out]  min   The minimum contrast level
- * @param[out]  max   The maximum contrast level 
+ * @param[out]  max   The maximum contrast level
  * @return      0 on success, otherwise a negative error value.
  * @retval    #CAMERA_ERROR_NONE Successful
  * @retval    #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
@@ -2355,6 +2367,69 @@ int camera_attr_foreach_supported_flash_mode(camera_h camera,
 int camera_attr_get_lens_orientation(camera_h camera, int *angle);
 
 
+/**
+ * @brief Sets stream rotation
+ *
+ * @param[in]  camera  The handle to the camera
+ * @param[in] rotation The stream rotation
+ * @return         0 on success, otherwise a negative error value.
+ * @retval      #CAMERA_ERROR_NONE Successful
+ * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre        The camera state must be CAMERA_STATE_CREATED.
+ *
+ * @see camera_attr_get_stream_rotation()
+ */
+int camera_attr_set_stream_rotation(camera_h camera , camera_rotation_e rotation);
+
+/**
+ * @brief Gets stream rotation
+ *
+ * @param[in]  camera  The handle to the camera
+ * @param[out] rotation        The stream rotation
+ * @return         0 on success, otherwise a negative error value.
+ * @retval      #CAMERA_ERROR_NONE Successful
+ * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre        The camera state must be CAMERA_STATE_CREATED.
+ *
+ * @see camera_attr_set_stream_rotation()
+ */
+int camera_attr_get_stream_rotation(camera_h camera , camera_rotation_e *rotation);
+
+
+
+/**
+ * @brief Sets stream flip
+ *
+ * @param[in]  camera  The handle to the camera
+ * @param[in] flip  The stream flip
+ * @return         0 on success, otherwise a negative error value.
+ * @retval      #CAMERA_ERROR_NONE Successful
+ * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre        The camera state must be CAMERA_STATE_CREATED.
+ *
+ * @see camera_attr_set_stream_rotation()
+ */
+int camera_attr_set_stream_flip(camera_h camera , camera_flip_e flip);
+
+/**
+ * @brief Gets stream flip
+ *
+ * @param[in]  camera  The handle to the camera
+ * @param[out] flip  The stream flip
+ * @return         0 on success, otherwise a negative error value.
+ * @retval      #CAMERA_ERROR_NONE Successful
+ * @retval      #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre        The camera state must be CAMERA_STATE_CREATED.
+ *
+ * @see camera_attr_set_stream_rotation()
+ */
+int camera_attr_get_stream_flip(camera_h camera , camera_flip_e *flip);
+
+
 /**
  * @}
  */
index 98976631351dbb40ba388cd78c10d206ae01ff36..9630da3b857ffafa163a31488c46ae8a904d2c8f 100755 (executable)
@@ -11,7 +11,7 @@
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
-* limitations under the License. 
+* limitations under the License.
 */
 
 
index 782159d2dba65d600a3a3d00dd28b8a7f5e4772d..b0f0ef1f54875325fcfd582fcdc02e940d293ce6 100755 (executable)
@@ -29,9 +29,8 @@ Requires: %{name} = %{version}-%{release}
 
 
 %build
-FULLVER=%{version}
-MAJORVER=`echo ${FULLVER} | cut -d '.' -f 1`
-cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=${FULLVER} -DMAJORVER=${MAJORVER}
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
 
 
 make %{?jobs:-j%jobs}
@@ -46,10 +45,11 @@ rm -rf %{buildroot}
 
 
 %files
-%{_libdir}/libcapi-media-camera.so*
+%{_libdir}/libcapi-media-camera.so.*
 
 %files devel
 %{_includedir}/media/camera.h
 %{_libdir}/pkgconfig/*.pc
+%{_libdir}/libcapi-media-camera.so
 
 
index 78ee6b5c2f6471a80911efa7fd994a1501dcd0f1..581a00f18118794497835f66e574d785889c7dad 100755 (executable)
@@ -11,7 +11,7 @@
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
-* limitations under the License. 
+* limitations under the License.
 */
 
 
@@ -187,7 +187,7 @@ int __mm_camera_message_callback(int message, void *param, void *user_data){
        
        camera_s * handle = (camera_s*)user_data;
        MMMessageParamType *m = (MMMessageParamType*)param;
-       camera_state_e previous_state; 
+       camera_state_e previous_state;
 
 
        switch(message){
@@ -246,7 +246,7 @@ int __mm_camera_message_callback(int message, void *param, void *user_data){
                        }
                        break;
                }
-               case MM_MESSAGE_CAMCORDER_ERROR: 
+               case MM_MESSAGE_CAMCORDER_ERROR:
                {
                        int errorcode = m->code;
                        errorcode = __convert_camera_error_code("NOTIFY", errorcode);
@@ -299,14 +299,14 @@ int camera_create( camera_device_e device, camera_h* camera){
 
        
        char *error;
-       ret = mm_camcorder_set_attributes(handle->mm_handle, &error, 
-                                                                                                                               MMCAM_MODE , MM_CAMCORDER_MODE_IMAGE, 
+       ret = mm_camcorder_set_attributes(handle->mm_handle, &error,
+                                                                                                                               MMCAM_MODE , MM_CAMCORDER_MODE_IMAGE,
                                                                                                                                MMCAM_CAMERA_FORMAT,  preview_format,
-                                                                                                                               MMCAM_IMAGE_ENCODER , MM_IMAGE_CODEC_JPEG, 
+                                                                                                                               MMCAM_IMAGE_ENCODER , MM_IMAGE_CODEC_JPEG,
                                                                                                                                MMCAM_CAPTURE_FORMAT,  MM_PIXEL_FORMAT_ENCODED ,
-                                                                                                                               MMCAM_DISPLAY_SURFACE, MM_DISPLAY_SURFACE_NULL, 
-                                                                                                                               MMCAM_DISPLAY_ROTATION, rotation, 
-                                                                                                                               MMCAM_CAPTURE_COUNT, 1, 
+                                                                                                                               MMCAM_DISPLAY_SURFACE, MM_DISPLAY_SURFACE_NULL,
+                                                                                                                               MMCAM_DISPLAY_ROTATION, rotation,
+                                                                                                                               MMCAM_CAPTURE_COUNT, 1,
                                                                                                                                (void*)NULL);
 
        handle->display_type = CAMERA_DISPLAY_TYPE_NONE;
@@ -470,8 +470,8 @@ int camera_set_display(camera_h camera, camera_display_type_e type, camera_displ
        handle->display_type = type;
        ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL,
                MMCAM_DISPLAY_DEVICE, MM_DISPLAY_DEVICE_MAINLCD,
-               MMCAM_DISPLAY_SURFACE  ,type,  
-               MMCAM_DISPLAY_HANDLE  , type == CAMERA_DISPLAY_TYPE_X11 ? &handle->display_handle : display , sizeof(display) , 
+               MMCAM_DISPLAY_SURFACE  ,type,
+               MMCAM_DISPLAY_HANDLE  , type == CAMERA_DISPLAY_TYPE_X11 ? &handle->display_handle : display , sizeof(display) ,
                NULL);
        return __convert_camera_error_code(__func__, ret);
 }
@@ -487,13 +487,13 @@ int camera_set_preview_resolution(camera_h camera,  int width, int height){
        return __convert_camera_error_code(__func__, ret);
        
 }
-int camera_set_x11_display_rotation(camera_h camera,  camera_display_rotation_e rotation){
+int camera_set_x11_display_rotation(camera_h camera,  camera_rotation_e rotation){
        if( camera == NULL){
                LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
                return CAMERA_ERROR_INVALID_PARAMETER;
        }
 
-       if( rotation < CAMERA_DISPLAY_ROTATION_NONE || rotation > CAMERA_DISPLAY_ROTATION_270 )
+       if( rotation < CAMERA_ROTATION_NONE || rotation > CAMERA_ROTATION_270 )
                return CAMERA_ERROR_INVALID_PARAMETER;
        
        int ret;
@@ -549,7 +549,7 @@ int camera_get_preview_resolution(camera_h camera,  int *width, int *height){
        
 }
 
-int camera_get_x11_display_rotation( camera_h camera,  camera_display_rotation_e *rotation){
+int camera_get_x11_display_rotation( camera_h camera,  camera_rotation_e *rotation){
        if( camera == NULL || rotation == NULL ){
                LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
                return CAMERA_ERROR_INVALID_PARAMETER;
@@ -1008,17 +1008,17 @@ int camera_attr_set_af_mode(camera_h camera,  camera_attr_af_mode_e mode){
                case CAMERA_ATTR_AF_NONE:
                        ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE     , MM_CAMCORDER_FOCUS_MODE_NONE ,
                                                                                                                                                                                                                                                MMCAM_CAMERA_AF_SCAN_RANGE  , MM_CAMCORDER_AUTO_FOCUS_NORMAL , NULL);                   
-                       break; 
+                       break;
                case CAMERA_ATTR_AF_NORMAL:
-                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO , 
+                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO ,
                                                                                                                                                                                                                                                MMCAM_CAMERA_AF_SCAN_RANGE  , MM_CAMCORDER_AUTO_FOCUS_NORMAL , NULL);
                        break;
                case CAMERA_ATTR_AF_MACRO:
-                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO , 
+                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO ,
                                                                                                                                                                                                                                                MMCAM_CAMERA_AF_SCAN_RANGE  , MM_CAMCORDER_AUTO_FOCUS_MACRO  , NULL);                                           
                        break;
                case CAMERA_ATTR_AF_FULL:
-                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO , 
+                       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_FOCUS_MODE  , MM_CAMCORDER_FOCUS_MODE_AUTO ,
                                                                                                                                                                                                                                                MMCAM_CAMERA_AF_SCAN_RANGE  , MM_CAMCORDER_AUTO_FOCUS_FULL  , NULL);                                            
                        break;
                        
@@ -1034,7 +1034,7 @@ int camera_attr_set_exposure_mode(camera_h camera,  camera_attr_exposure_mode_e
                LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
                return CAMERA_ERROR_INVALID_PARAMETER;
        }
-       int maptable[] = {MM_CAMCORDER_AUTO_EXPOSURE_OFF, //CAMCORDER_EXPOSURE_MODE_OFF 
+       int maptable[] = {MM_CAMCORDER_AUTO_EXPOSURE_OFF, //CAMCORDER_EXPOSURE_MODE_OFF
                                                                        MM_CAMCORDER_AUTO_EXPOSURE_ALL, //CAMCORDER_EXPOSURE_MODE_ALL
                                                                        MM_CAMCORDER_AUTO_EXPOSURE_CENTER_1, //CAMCORDER_EXPOSURE_MODE_CENTER
                                                                        MM_CAMCORDER_AUTO_EXPOSURE_SPOT_1, //CAMCORDER_EXPOSURE_MODE_SPOT
@@ -1780,7 +1780,7 @@ int camera_attr_foreach_supported_effect(camera_h camera, camera_attr_supported_
        }               
        int maptable[] = {
                CAMERA_ATTR_EFFECT_NONE, //MM_CAMCORDER_COLOR_TONE_NONE
-               CAMERA_ATTR_EFFECT_MONO, //MM_CAMCORDER_COLOR_TONE_MONO, 
+               CAMERA_ATTR_EFFECT_MONO, //MM_CAMCORDER_COLOR_TONE_MONO,
                CAMERA_ATTR_EFFECT_SEPIA, //MM_CAMCORDER_COLOR_TONE_SEPIA,      /**< Sepia */
                CAMERA_ATTR_EFFECT_NEGATIVE, //MM_CAMCORDER_COLOR_TONE_NEGATIVE, //,            /**< Negative */
                CAMERA_ATTR_EFFECT_BLUE, //MM_CAMCORDER_COLOR_TONE_BLUE, /**< Blue */
@@ -1894,5 +1894,75 @@ int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps
        
 }
 
+int camera_attr_set_stream_rotation(camera_h camera , camera_rotation_e rotation){
+       if( camera == NULL){
+               LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }       
+
+       if( rotation < CAMERA_ROTATION_NONE || rotation > CAMERA_ROTATION_270 )
+               return CAMERA_ERROR_INVALID_PARAMETER;
+
+       int ret;
+       camera_s * handle = (camera_s*)camera;
+
+       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_ROTATION , rotation, NULL);
+       return __convert_camera_error_code(__func__, ret);
+}
+
+int camera_attr_get_stream_rotation(camera_h camera , camera_rotation_e *rotation){
+       if( camera == NULL || rotation == NULL ){
+               LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       int ret;
+       camera_s * handle = (camera_s*)camera;
 
+       ret = mm_camcorder_get_attributes(handle->mm_handle ,NULL, MMCAM_CAMERA_ROTATION , rotation, NULL);
+       return __convert_camera_error_code(__func__, ret);      
+}
 
+int camera_attr_set_stream_flip(camera_h camera , camera_flip_e flip){
+       if( camera == NULL){
+               LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }       
+
+       if( flip < CAMERA_FLIP_NONE || flip > CAMERA_FLIP_BOTH )
+               return CAMERA_ERROR_INVALID_PARAMETER;
+
+       int ret;
+       camera_s * handle = (camera_s*)camera;
+       int vflip = 0;
+       int hflip = 0;
+       vflip = (flip & CAMERA_FLIP_VERTICAL) == CAMERA_FLIP_VERTICAL;
+       hflip = (flip & CAMERA_FLIP_HORIZONTAL) == CAMERA_FLIP_HORIZONTAL;
+       ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, "" , hflip  , "" , vflip , NULL);
+       return __convert_camera_error_code(__func__, ret);      
+}
+
+int camera_attr_get_stream_flip(camera_h camera , camera_flip_e *flip){
+       if( camera == NULL || flip == NULL ){
+               LOGE( "[%s] INVALID_PARAMETER(0x%08x)",__func__,CAMERA_ERROR_INVALID_PARAMETER);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       int ret;
+       camera_s * handle = (camera_s*)camera;
+       int vflip =0;
+       int hflip = 0;
+       int result = 0;
+       char *error;
+       ret = mm_camcorder_get_attributes(handle->mm_handle ,&error, "" , &hflip  , "" , &vflip , NULL);
+
+       if( ret == 0){
+               if( vflip)
+                       result = result | CAMERA_FLIP_VERTICAL;
+               if( hflip )
+                       result = result | CAMERA_FLIP_HORIZONTAL;
+               *flip = result;
+       }
+       return __convert_camera_error_code(__func__, ret);      
+
+}
index 7bf3bafc70cc0dfcc3ed9c83547e9d972c3b4238..d9cf40cf769e0344e65f090acc6cacdd687dbe67 100755 (executable)
@@ -11,7 +11,7 @@
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
-* limitations under the License. 
+* limitations under the License.
 */
 
 
@@ -84,7 +84,7 @@ int stillshot_test(){
        camera_attr_set_image_quality(camera, 100);
        camera_set_capturing_cb(camera, capturing_cb, "/mnt/nfs/test.jpg");
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
        camera_attr_set_tag_orientation(camera,6);
        //camera_attr_set_tag_orientation(camera,CAMERA_ATTR_TAG_ORT_0R_VT_0C_VR);      
        //camera_attr_enable_tag(camera, true);
@@ -210,7 +210,7 @@ int zoom_test(camera_h camera){
        return 0;
 }
 
-bool g_af_test_pass ; 
+bool g_af_test_pass ;
 bool _af_mode_test_cb(camera_attr_af_mode_e mode, void *user_data){
        camera_h camera = (camera_h) user_data;
        int ret;
@@ -536,7 +536,7 @@ int camera_attribute_test(){
        camera_h camera ;
        camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);   
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);   
        printf("-----------------------create camera-----------------------------\n");
 
        preview_fps_test(camera);
@@ -600,7 +600,7 @@ int camera_preview_test(){
        
        camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);   
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);   
        camera_set_preview_cb(camera,    _camera_preview_test_cb        , &preview_test_data);
 
        ret = camera_foreach_supported_preview_format(camera, _preview_format_test_cb,enable_preview_format);
@@ -667,7 +667,7 @@ int camera_state_change_test(){
        
        camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
        camera_set_state_changed_cb(camera, _state_change_test_cb, &data);
        camera_set_capturing_cb(camera,_capture_test_cb, NULL);
 
@@ -740,7 +740,7 @@ int capture_test(){
        
        camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);   
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);   
        camera_set_capturing_cb(camera,_capture_test2_cb, &iscalled);
        camera_start_preview(camera);
        iscalled = 0;
@@ -804,7 +804,7 @@ int capture_resolution_test(){
 
        camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
        camera_set_display(camera,CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
        resolution_list.count = 0;
        camera_foreach_supported_capture_resolution(camera, capture_resolution_test_cb, &resolution_list);
        //camera_set_state_changed_cb(camera, state_cb, NULL);
@@ -852,7 +852,7 @@ bool preview_resolution_cb(int width, int height, void *user_data)
 
 
 void preview_test(){
-       camera_h camera ; 
+       camera_h camera ;
        camera_create(CAMERA_DEVICE_CAMERA0, &camera);
        camera_set_display(camera, CAMERA_DISPLAY_TYPE_EVAS,img);
        //camera_foreach_supported_preview_resolution(camera,preview_resolution_cb, NULL);
@@ -866,19 +866,19 @@ void rotation_test(){
        ret = camera_create(CAMERA_DEVICE_CAMERA0, &camera);
        printf("camera_create %d\n", ret);
        camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11 , GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_NONE);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_NONE);
        camera_start_preview(camera);
        sleep(3);
        printf("180\n");
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_180);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_180);
 
        sleep(3);
        printf("270\n");
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
 
        sleep(3);
        printf("90\n");
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_90);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_90);
 
        sleep(10);
        camera_stop_preview(camera);
@@ -901,7 +901,7 @@ void focus_test(){
        ret = camera_create(CAMERA_DEVICE_CAMERA0, &camera);
        printf("camera_create %d\n", ret);
        camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11 , GET_DISPLAY(preview_win));
-       camera_set_x11_display_rotation(camera, CAMERA_DISPLAY_ROTATION_270);
+       camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
        camera_set_focus_changed_cb(camera, _focus_changed_cb2, NULL);
        camera_start_preview(camera);
 
@@ -962,9 +962,37 @@ void contrast_test2(){
        camera_attr_set_contrast(camera, 1);
 }
 
+void rotation_flip_test(){
+       camera_h camera;
+       camera_flip_e flip;
+       camera_create(CAMERA_DEVICE_CAMERA0, &camera);
+       printf("flip in = %d\n", CAMERA_FLIP_HORIZONTAL);       
+       camera_attr_set_stream_flip(camera, CAMERA_FLIP_HORIZONTAL);
+       camera_attr_get_stream_flip(camera, &flip);
+       printf("flip out = %d\n", flip);
+
+       printf("flip in = %d\n", CAMERA_FLIP_NONE);             
+       camera_attr_set_stream_flip(camera, CAMERA_FLIP_NONE);
+       camera_attr_get_stream_flip(camera, &flip);
+       printf("flip out = %d\n", flip);
+
+       printf("flip in = %d\n", CAMERA_FLIP_VERTICAL);         
+       camera_attr_set_stream_flip(camera, CAMERA_FLIP_VERTICAL);
+       camera_attr_get_stream_flip(camera, &flip);
+       printf("flip out = %d\n", flip);
+
+       printf("flip in = %d\n", CAMERA_FLIP_BOTH);             
+       camera_attr_set_stream_flip(camera, CAMERA_FLIP_BOTH);
+       camera_attr_get_stream_flip(camera, &flip);
+       printf("flip out = %d\n", flip);
+
+       
+}
+
 int camera_test(){
        
        int ret=0;
+       /*
        ret = camera_attribute_test();
        ret += camera_preview_test();
        ret += camera_state_change_test();
@@ -974,7 +1002,8 @@ int camera_test(){
        camera_lens_rotation_test();
 
        contrast_test2();
-
+       */
+       rotation_flip_test();
 
        return ret;
 }