Bug fix for camera handle with one camera
[framework/osp/media.git] / src / FMedia_CameraCoordinator.cpp
index 95efa09..5862216 100755 (executable)
@@ -174,7 +174,10 @@ _CameraCoordinator::RemoveRecorder(_RecorderDeviceType recorderDevice)
 {
        SysLog(NID_MEDIA, "Enter. recorder device:%d", recorderDevice);
        _RecorderManager::Release(recorderDevice);
-       __recorderHandle = MM_INVALID_HANDLE;
+       if (_RecorderManager::HasInstance(recorderDevice) == null)
+       {
+               __recorderHandle = MM_INVALID_HANDLE;
+       }
 }
 
 _CameraCoordinator*
@@ -553,14 +556,12 @@ _CameraCoordinator::CreateVideoRecorder(void)
        SysLog(NID_MEDIA, "enter.");
 
        // Start recorder
-       if ( __recorderHandle == MM_INVALID_HANDLE )
-       {
-               recorderDevice = __cameraDevice == _CAMERA_DEVICE_PRIMARY ?
-               _RECORDER_DEVICE_VIDEO_PRIMARY_CAMERA : _RECORDER_DEVICE_VIDEO_SECONDARY_CAMERA;
-               r = AddRecorder(recorderDevice);                // recorder_create() will be called.
-               SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-               __mode = _CAMERA_MODE_VIDEO;
-       }
+       recorderDevice = __cameraDevice == _CAMERA_DEVICE_PRIMARY ?
+       _RECORDER_DEVICE_VIDEO_PRIMARY_CAMERA : _RECORDER_DEVICE_VIDEO_SECONDARY_CAMERA;
+       r = AddRecorder(recorderDevice);                // recorder_create() will be called.
+       SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       __mode = _CAMERA_MODE_VIDEO;
+
        return r;
 CATCH:
        return r;
@@ -790,14 +791,11 @@ _CameraCoordinator::ChangeMode(_CameraMode mode, bool callback)
                }
 
                // Start recorder
-               if ( __recorderHandle == MM_INVALID_HANDLE )
-               {
-                       recorderDevice = __cameraDevice == _CAMERA_DEVICE_PRIMARY ?
-                               _RECORDER_DEVICE_VIDEO_PRIMARY_CAMERA : _RECORDER_DEVICE_VIDEO_SECONDARY_CAMERA;
-                       r = AddRecorder(recorderDevice);                // recorder_create() will be called.
-                       SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-                       __mode = _CAMERA_MODE_VIDEO;
-               }
+               recorderDevice = __cameraDevice == _CAMERA_DEVICE_PRIMARY ?
+                       _RECORDER_DEVICE_VIDEO_PRIMARY_CAMERA : _RECORDER_DEVICE_VIDEO_SECONDARY_CAMERA;
+               r = AddRecorder(recorderDevice);                // recorder_create() will be called.
+               SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+               __mode = _CAMERA_MODE_VIDEO;
 
                if (callback)
                {