[Release version 0.2.31] Fix ITC issue - camera_get_flash_state 52/62652/1 accepted/tizen/common/20160317.161328 accepted/tizen/ivi/20160317.120323 accepted/tizen/mobile/20160317.120228 accepted/tizen/tv/20160317.120247 accepted/tizen/wearable/20160317.120306 submit/tizen/20160317.091320
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 17 Mar 2016 08:36:22 +0000 (17:36 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 17 Mar 2016 08:36:54 +0000 (17:36 +0900)
Change-Id: Ia89e0d977fe9fe38c09c53c56b44e665fcc4105c
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/src/muse_camera_dispatcher.c
packaging/mmsvc-camera.spec

index e31381d..e362dee 100644 (file)
@@ -145,6 +145,20 @@ void _camera_dispatcher_callback_supported_flash_mode(int param1, void *user_dat
                               INT, param1);
 }
 
+int _camera_dispatcher_callback_supported_flash_mode2(int param1, void *user_data)
+{
+       int *count = (int *)user_data;
+
+       LOGD("Enter!! param : %d", param1);
+
+       if (count) {
+               (*count)++;
+               LOGD("count : %d", *count);
+       }
+
+       return true;
+}
+
 void _camera_dispatcher_callback_supported_fps(int param1, void *user_data)
 {
        muse_module_h module = (muse_module_h)user_data;
@@ -1722,6 +1736,8 @@ int camera_dispatcher_get_facing_direction(muse_module_h module)
 int camera_dispatcher_get_flash_state(muse_module_h module)
 {
        int ret = CAMERA_ERROR_NONE;
+       int count = 0;
+       camera_h camera = NULL;
        camera_device_e device_type = CAMERA_DEVICE_CAMERA0;
        camera_flash_state_e get_flash_state = CAMERA_FLASH_STATE_NOT_USED;
        muse_camera_api_e api = MUSE_CAMERA_API_GET_FLASH_STATE;
@@ -1729,6 +1745,31 @@ int camera_dispatcher_get_flash_state(muse_module_h module)
 
        muse_camera_msg_get(device_type, muse_core_client_get_msg(module));
 
+       ret = legacy_camera_create(device_type, &camera);
+       if (ret != CAMERA_ERROR_NONE) {
+               LOGE("failed to create camera handle 0x%x", ret);
+
+               muse_camera_msg_return1(api, class, ret, module, INT, get_flash_state);
+
+               return MUSE_CAMERA_ERROR_NONE;
+       }
+
+       ret = legacy_camera_attr_foreach_supported_flash_mode(camera,
+               (camera_attr_supported_flash_mode_cb)_camera_dispatcher_callback_supported_flash_mode2,
+               (void *)&count);
+
+       legacy_camera_destroy(camera);
+       camera = NULL;
+
+       if (count < 2) {
+               LOGE("count[%d] of supported flash mode is too small, so return NOT_SUPPORTED", count);
+
+               ret = CAMERA_ERROR_NOT_SUPPORTED;
+               muse_camera_msg_return1(api, class, ret, module, INT, get_flash_state);
+
+               return MUSE_CAMERA_ERROR_NONE;
+       }
+
        if (device_type == CAMERA_DEVICE_CAMERA0)
                muse_core_client_get_value(module, "flash_state_camera0", (int *)&get_flash_state);
        else
index 23bce5c..b36c06f 100755 (executable)
@@ -3,7 +3,7 @@
 
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.30
+Version:    0.2.31
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0