From: Jeongmo Yang Date: Mon, 10 Oct 2016 09:09:29 +0000 (+0900) Subject: Update code for camera/recorder device state APIs X-Git-Tag: submit/tizen/20161012.010406~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6012f7ec5032f940e8446a7aec9a9ee001ba05c6;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git Update code for camera/recorder device state APIs 1. Remove device state change signal emit related code.(signal will be emitted on upper layer) 2. Add signal emit function 3. Remove unused code [Version] 0.10.78 [Profile] Common [Issue Type] Update [Dependency module] N/A [Dependency commit] N/A [Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-mobile_20161007.1] Change-Id: Ifacc5e69ae9354304e311ef654292eb80ba1a921 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 9985d71..9325d17 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.77 +Version: 0.10.78 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h index 27e6db6..bd958ae 100644 --- a/src/include/mm_camcorder.h +++ b/src/include/mm_camcorder.h @@ -3278,25 +3278,9 @@ gboolean stop_autofocus() */ int mm_camcorder_stop_focusing(MMHandleType camcorder); -/** - * mm_camcorder_get_video_caps: - * Stop focusing. This function halts focusing operation. - * This is the function to stop focusing in the middle of the operation. - * So if focusing is already finished or not started yet, - * this function will do nothing. - * - * @param[in] camcorder A handle of camcorder. - * @return This function returns zero(MM_ERROR_NONE) on success, - * or negative value with error code. - * Please refer 'mm_error.h' to know the exact meaning of the error. - * @see mm_camcorder_create - * @pre mm_camcorder_realize() should be called before calling this function. - * @post None - * @remarks None - * @par example - * @code - */ -int mm_camcorder_get_video_caps(MMHandleType handle, char **caps); +/* emit signal */ +void mm_camcorder_emit_signal(MMHandleType camcorder, const char *object_name, + const char *interface_name, const char *signal_name, int value); /** @} diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index ac4fe80..1f2660f 100644 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -1270,8 +1270,9 @@ void _mmcamcorder_sound_signal_callback(mm_sound_signal_name_t signal, int value /* device policy manager */ void _mmcamcorder_dpm_camera_policy_changed_cb(const char *name, const char *value, void *user_data); -/* For hand over the server's caps information to client */ -int _mmcamcorder_get_video_caps(MMHandleType handle, char **caps); +/* Emit dbus signal */ +void _mmcamcorder_emit_signal(MMHandleType handle, const char *object_name, + const char *interface_name, const char *signal_name, int value); #ifdef __cplusplus } diff --git a/src/mm_camcorder.c b/src/mm_camcorder.c index 22086ad..20b1b73 100644 --- a/src/mm_camcorder.c +++ b/src/mm_camcorder.c @@ -421,7 +421,12 @@ int mm_camcorder_stop_focusing(MMHandleType camcorder) return error; } -int mm_camcorder_get_video_caps(MMHandleType handle, char **caps) +void mm_camcorder_emit_signal(MMHandleType camcorder, const char *object_name, + const char *interface_name, const char *signal_name, int value) { - return _mmcamcorder_get_video_caps(handle, caps); + mmf_return_if_fail((void *)camcorder); + + _mmcamcorder_emit_signal(camcorder,object_name, interface_name, signal_name, value); + + return; } diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index ae2dcbc..9ab89db 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -65,28 +65,6 @@ #define __MMCAMCORDER_RESOURCE_WAIT_TIME 5 #endif /* _MMCAMCORDER_MURPHY_SUPPORT */ -#define __MMCAMCORDER_DBUS_OBJECT "/org/tizen/MMCamcorder" -#define __MMCAMCORDER_DBUS_INTERFACE_CAMERA "org.tizen.MMCamcorder.Camera" -#define __MMCAMCORDER_DBUS_INTERFACE_RECORDER "org.tizen.MMCamcorder.Recorder" -#define __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED "DeviceStateChanged" - -enum { - CAMERA_DEVICE_STATE_NULL = 0, /**< Not opened */ - CAMERA_DEVICE_STATE_OPENED, /**< Opened */ - CAMERA_DEVICE_STATE_WORKING /**< Now previewing or capturing or is being used for video recording */ -}; - -enum { - RECORDER_TYPE_AUDIO = 0, /**< Audio only recorder */ - RECORDER_TYPE_VIDEO /**< Video recorder (audio is optional) */ -}; - -enum { - RECORDER_DEVICE_STATE_NULL = 0, /**< No recorder is working */ - RECORDER_DEVICE_STATE_RECORDING, /**< Now recording */ - RECORDER_DEVICE_STATE_PAUSED /**< All recordings are paused */ -}; - /*--------------------------------------------------------------------------------------- | LOCAL FUNCTION PROTOTYPES: | @@ -1251,13 +1229,6 @@ int _mmcamcorder_realize(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_READY); - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) { - int value = hcamcorder->device_type << 16 | CAMERA_DEVICE_STATE_OPENED; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_CAMERA, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, value); - } - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -1438,13 +1409,6 @@ int _mmcamcorder_unrealize(MMHandleType handle) hcamcorder->acquired_focus = 0; } - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) { - int value = hcamcorder->device_type << 16 | CAMERA_DEVICE_STATE_NULL; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_CAMERA, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, value); - } - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_NULL); @@ -1512,13 +1476,6 @@ int _mmcamcorder_start(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_PREPARE); - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) { - int value = hcamcorder->device_type << 16 | CAMERA_DEVICE_STATE_WORKING; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_CAMERA, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, value); - } - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -1586,8 +1543,6 @@ int _mmcamcorder_stop(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_READY); if (hcamcorder->type != MM_CAMCORDER_MODE_AUDIO) { - int value = hcamcorder->device_type << 16 | CAMERA_DEVICE_STATE_OPENED; - /* unsubscribe remained unsubscribed signal */ g_mutex_lock(&hcamcorder->gdbus_info_sound.sync_mutex); if (hcamcorder->gdbus_info_sound.subscribe_id > 0) { @@ -1602,10 +1557,6 @@ int _mmcamcorder_stop(MMHandleType handle) g_dbus_connection_signal_unsubscribe(hcamcorder->gdbus_conn, hcamcorder->gdbus_info_solo_sound.subscribe_id); } g_mutex_unlock(&hcamcorder->gdbus_info_solo_sound.sync_mutex); - - /* emit signal for camera device state */ - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_CAMERA, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, value); } _MMCAMCORDER_UNLOCK_CMD(hcamcorder); @@ -1761,7 +1712,6 @@ int _mmcamcorder_record(MMHandleType handle) int ret = MM_ERROR_NONE; int state = MM_CAMCORDER_STATE_NONE; int dpm_mic_state = DPM_ALLOWED; - int device_state = 0; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); @@ -1817,19 +1767,6 @@ int _mmcamcorder_record(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_RECORDING); - if (state == MM_CAMCORDER_STATE_PREPARE) - device_state = RECORDER_DEVICE_STATE_NULL << 8 | RECORDER_DEVICE_STATE_RECORDING; - else - device_state = RECORDER_DEVICE_STATE_PAUSED << 8 | RECORDER_DEVICE_STATE_RECORDING; - - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) - device_state = RECORDER_TYPE_VIDEO << 16 | device_state; - else - device_state = RECORDER_TYPE_AUDIO << 16 | device_state; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_RECORDER, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, device_state); - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -1857,7 +1794,6 @@ int _mmcamcorder_pause(MMHandleType handle) { int ret = MM_ERROR_NONE; int state = MM_CAMCORDER_STATE_NONE; - int device_state = 0; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); @@ -1888,16 +1824,6 @@ int _mmcamcorder_pause(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_PAUSED); - device_state = RECORDER_DEVICE_STATE_RECORDING << 8 | RECORDER_DEVICE_STATE_PAUSED; - - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) - device_state = RECORDER_TYPE_VIDEO << 16 | device_state; - else - device_state = RECORDER_TYPE_AUDIO << 16 | device_state; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_RECORDER, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, device_state); - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -1917,7 +1843,6 @@ int _mmcamcorder_commit(MMHandleType handle) { int ret = MM_ERROR_NONE; int state = MM_CAMCORDER_STATE_NONE; - int device_state = 0; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); @@ -1951,19 +1876,6 @@ int _mmcamcorder_commit(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_PREPARE); - if (state == MM_CAMCORDER_STATE_RECORDING) - device_state = RECORDER_DEVICE_STATE_RECORDING << 8 | RECORDER_DEVICE_STATE_NULL; - else - device_state = RECORDER_DEVICE_STATE_PAUSED << 8 | RECORDER_DEVICE_STATE_NULL; - - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) - device_state = RECORDER_TYPE_VIDEO << 16 | device_state; - else - device_state = RECORDER_TYPE_AUDIO << 16 | device_state; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_RECORDER, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, device_state); - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -1983,7 +1895,6 @@ int _mmcamcorder_cancel(MMHandleType handle) { int ret = MM_ERROR_NONE; int state = MM_CAMCORDER_STATE_NONE; - int device_state = 0; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); @@ -2014,19 +1925,6 @@ int _mmcamcorder_cancel(MMHandleType handle) _mmcamcorder_set_state(handle, MM_CAMCORDER_STATE_PREPARE); - if (state == MM_CAMCORDER_STATE_RECORDING) - device_state = RECORDER_DEVICE_STATE_RECORDING << 8 | RECORDER_DEVICE_STATE_NULL; - else - device_state = RECORDER_DEVICE_STATE_PAUSED << 8 | RECORDER_DEVICE_STATE_NULL; - - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) - device_state = RECORDER_TYPE_VIDEO << 16 | device_state; - else - device_state = RECORDER_TYPE_AUDIO << 16 | device_state; - - _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, __MMCAMCORDER_DBUS_OBJECT, - __MMCAMCORDER_DBUS_INTERFACE_RECORDER, __MMCAMCORDER_DBUS_SIGNAL_STATE_CHANGED, device_state); - _MMCAMCORDER_UNLOCK_CMD(hcamcorder); return MM_ERROR_NONE; @@ -4310,33 +4208,23 @@ static gint __mmcamcorder_gst_handle_resource_warning(MMHandleType handle, GstMe return MM_ERROR_NONE; } -int _mmcamcorder_get_video_caps(MMHandleType handle, char **caps) + +void _mmcamcorder_emit_signal(MMHandleType handle, const char *object_name, + const char *interface_name, const char *signal_name, int value) { - GstPad *pad = NULL; - GstCaps *sink_caps = NULL; - _MMCamcorderSubContext *sc = NULL; + mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); - sc = MMF_CAMCORDER_SUBCONTEXT(handle); - _mmcam_dbg_warn("Entered "); - pad = gst_element_get_static_pad(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst, "sink"); - if (!pad) { - _mmcam_dbg_err("static pad is NULL"); - return MM_ERROR_CAMCORDER_INVALID_STATE; - } + mmf_return_if_fail(hcamcorder && object_name && interface_name && signal_name); - sink_caps = gst_pad_get_current_caps(pad); - gst_object_unref(pad); - if (!sink_caps) { - _mmcam_dbg_err("fail to get caps"); - return MM_ERROR_CAMCORDER_INVALID_STATE; - } + _mmcam_dbg_log("object %s, interface %s, signal %s, value %d", + object_name, interface_name, signal_name, value); - *caps = gst_caps_to_string(sink_caps); - _mmcam_dbg_err("video caps : %s", *caps); - gst_caps_unref(sink_caps); + _mmcamcorder_emit_dbus_signal(hcamcorder->gdbus_conn, object_name, interface_name, signal_name, value); - return MM_ERROR_NONE; + return; } + + #ifdef _MMCAMCORDER_RM_SUPPORT rm_cb_result _mmcamcorder_rm_callback(int handle, rm_callback_type event_src, rm_device_request_s *info, void* cb_data) diff --git a/src/mm_camcorder_util.c b/src/mm_camcorder_util.c index 4e5944b..6414afd 100644 --- a/src/mm_camcorder_util.c +++ b/src/mm_camcorder_util.c @@ -2240,6 +2240,7 @@ void _mmcamcorder_emit_dbus_signal(GDBusConnection *conn, const char *object_nam if (!conn || !object_name || !interface_name || !signal_name) { _mmcam_dbg_err("NULL pointer %p %p %p %p", conn, object_name, interface_name, signal_name); + return; } if (!g_dbus_connection_emit_signal(conn, NULL,