{
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*
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;
}
// 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)
{
}
}
+_RecorderManager*
+_RecorderManager::HasInstance(_RecorderDeviceType recorderDevice)
+{
+ result r = E_SUCCESS;
+ _RecorderManager* pManager = null;
+
+ if (__pMap != null)
+ {
+ r = __pMap->GetValue(recorderDevice, pManager);
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
+ }
+ return pManager;
+}
+
_RecorderHandle
_RecorderManager::GetHandle(void) const
{
static void Release(_RecorderDeviceType recorderDevice);
/**
+ * Get the instance of _RecorderManager if it exists.
+ *
+ * @return The _RecorderManager instance
+ * @param[in] recorderDevice The recorder device id.
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_SYSTEM A system error has occurred.
+ */
+ static _RecorderManager* HasInstance(_RecorderDeviceType recorderDevice);
+
+ /**
* Gets the recorder's handle
*
* @return The handle of camera