Bug fix - Incorrect information in preview callback
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder_sound.c
index 961670c..3d242e5 100644 (file)
 /*=======================================================================================
 |  INCLUDE FILES                                                                       |
 =======================================================================================*/
-#include <mm_sound.h>
-#include <mm_sound_private.h>
 #include "mm_camcorder_internal.h"
 #include "mm_camcorder_sound.h"
 
 /*---------------------------------------------------------------------------------------
-|    GLOBAL VARIABLE DEFINITIONS for internal                                          |
----------------------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------------------
 |    LOCAL VARIABLE DEFINITIONS for internal                                           |
 ---------------------------------------------------------------------------------------*/
+#define _MMCAMCORDER_SOLO_PLAY_WAIT_TIMEOUT (G_TIME_SPAN_SECOND * 3)
 
 
 /*---------------------------------------------------------------------------------------
@@ -56,18 +51,18 @@ gboolean _mmcamcorder_sound_init(MMHandleType handle)
 
        /* check sound state */
        if (info->state > _MMCAMCORDER_SOUND_STATE_NONE) {
-               _mmcam_dbg_warn("already initialized [%d]", info->state);
+               MMCAM_LOG_WARNING("already initialized [%d]", info->state);
                g_mutex_unlock(&info->open_mutex);
                return TRUE;
        }
 
        /* check sound play enable */
        mm_camcorder_get_attributes((MMHandleType)hcamcorder, NULL,
-               "capture-sound-enable", &sound_enable,
+               MMCAM_CAPTURE_SOUND_ENABLE, &sound_enable,
                NULL);
-       _mmcam_dbg_log("Capture sound enable %d", sound_enable);
+       MMCAM_LOG_INFO("Capture sound enable %d", sound_enable);
        if (!sound_enable) {
-               _mmcam_dbg_warn("capture sound disabled");
+               MMCAM_LOG_WARNING("capture sound disabled");
                g_mutex_unlock(&info->open_mutex);
                return FALSE;
        }
@@ -75,14 +70,14 @@ gboolean _mmcamcorder_sound_init(MMHandleType handle)
        /* check shutter sound policy and status of system */
        if (hcamcorder->shutter_sound_policy == VCONFKEY_CAMERA_SHUTTER_SOUND_POLICY_OFF &&
            hcamcorder->sub_context->info_image->sound_status == FALSE) {
-               _mmcam_dbg_warn("skip sound init : Sound Policy OFF and Silent status");
+               MMCAM_LOG_WARNING("skip sound init : Sound Policy OFF and Silent status");
                g_mutex_unlock(&info->open_mutex);
                return FALSE;
        }
 
        info->state = _MMCAMCORDER_SOUND_STATE_INIT;
 
-       _mmcam_dbg_log("init DONE");
+       MMCAM_LOG_INFO("init DONE");
 
        g_mutex_unlock(&info->open_mutex);
 
@@ -102,11 +97,11 @@ gboolean _mmcamcorder_sound_play(MMHandleType handle, const char *sample_name, g
 
        /* check sound play enable */
        mm_camcorder_get_attributes((MMHandleType)hcamcorder, NULL,
-               "capture-sound-enable", &sound_enable,
+               MMCAM_CAPTURE_SOUND_ENABLE, &sound_enable,
                NULL);
-       _mmcam_dbg_log("Capture sound enable %d", sound_enable);
+       MMCAM_LOG_INFO("Capture sound enable %d", sound_enable);
        if (!sound_enable) {
-               _mmcam_dbg_warn("capture sound disabled");
+               MMCAM_LOG_WARNING("capture sound disabled");
                return FALSE;
        }
 
@@ -115,7 +110,7 @@ gboolean _mmcamcorder_sound_play(MMHandleType handle, const char *sample_name, g
        g_mutex_lock(&info->open_mutex);
 
        if (info->state < _MMCAMCORDER_SOUND_STATE_INIT) {
-               _mmcam_dbg_log("not initialized state:[%d]", info->state);
+               MMCAM_LOG_INFO("not initialized state:[%d]", info->state);
                g_mutex_unlock(&info->open_mutex);
                return FALSE;
        }
@@ -125,14 +120,14 @@ gboolean _mmcamcorder_sound_play(MMHandleType handle, const char *sample_name, g
        else if (!strcmp(sample_name, _MMCAMCORDER_SAMPLE_SOUND_NAME_REC_STOP))
                volume_gain = "camcording";
 
-       _mmcam_dbg_log("Play start - sample name [%s]", sample_name);
+       MMCAM_LOG_INFO("Play start - sample name [%s]", sample_name);
 
        _mmcamcorder_send_sound_play_message(hcamcorder->gdbus_conn,
-               &hcamcorder->gdbus_info_sound, sample_name, "system", volume_gain, sync_play);
+               hcamcorder->gdbus_info_sound, sample_name, "system", volume_gain, sync_play);
 
        g_mutex_unlock(&info->open_mutex);
 
-       _mmcam_dbg_log("Done");
+       MMCAM_LOG_INFO("Done");
 
        return TRUE;
 }
@@ -147,19 +142,19 @@ gboolean _mmcamcorder_sound_finalize(MMHandleType handle)
 
        info = &(hcamcorder->snd_info);
 
-       _mmcam_dbg_err("START");
+       MMCAM_LOG_ERROR("START");
 
        g_mutex_lock(&info->open_mutex);
 
        if (info->state < _MMCAMCORDER_SOUND_STATE_INIT) {
-               _mmcam_dbg_warn("not initialized");
+               MMCAM_LOG_WARNING("not initialized");
                g_mutex_unlock(&info->open_mutex);
                return TRUE;
        }
 
        info->state = _MMCAMCORDER_SOUND_STATE_NONE;
 
-       _mmcam_dbg_err("DONE");
+       MMCAM_LOG_ERROR("DONE");
 
        g_mutex_unlock(&info->open_mutex);
 
@@ -176,38 +171,38 @@ int _mmcamcorder_sound_solo_play(MMHandleType handle, const char *sample_name, g
 
        mmf_return_val_if_fail(hcamcorder && sample_name, FALSE);
 
-       _mmcam_dbg_log("START : [%s]", sample_name);
+       MMCAM_LOG_INFO("START : [%s]", sample_name);
 
        _mmcamcorder_sound_solo_play_wait(handle);
 
        current_state = _mmcamcorder_get_state(handle);
        if (current_state < MM_CAMCORDER_STATE_PREPARE) {
-               _mmcam_dbg_warn("invalid state %d", current_state);
+               MMCAM_LOG_WARNING("invalid state %d", current_state);
                return FALSE;
        }
 
        /* check sound play enable */
        mm_camcorder_get_attributes((MMHandleType)hcamcorder, NULL,
-               "capture-sound-enable", &sound_enable,
+               MMCAM_CAPTURE_SOUND_ENABLE, &sound_enable,
                NULL);
-       _mmcam_dbg_log("Capture sound enable %d", sound_enable);
+       MMCAM_LOG_INFO("Capture sound enable %d", sound_enable);
        if (!sound_enable) {
-               _mmcam_dbg_warn("capture sound disabled");
+               MMCAM_LOG_WARNING("capture sound disabled");
                return FALSE;
        }
 
-       _mmcam_dbg_log("Play start - sample name [%s]", sample_name);
+       MMCAM_LOG_INFO("Play start - sample name [%s]", sample_name);
 
        if (hcamcorder->shutter_sound_policy == VCONFKEY_CAMERA_SHUTTER_SOUND_POLICY_ON ||
                hcamcorder->sub_context->info_image->sound_status) {
                _mmcamcorder_send_sound_play_message(hcamcorder->gdbus_conn,
-                       &hcamcorder->gdbus_info_solo_sound, sample_name, "system", "shutter1", sync_play);
+                       hcamcorder->gdbus_info_solo_sound, sample_name, "system", "shutter1", sync_play);
        } else {
-               _mmcam_dbg_warn("skip shutter sound : sound policy %d, sound status %d",
+               MMCAM_LOG_WARNING("skip shutter sound : sound policy %d, sound status %d",
                        hcamcorder->shutter_sound_policy, hcamcorder->sub_context->info_image->sound_status);
        }
 
-       _mmcam_dbg_log("Done");
+       MMCAM_LOG_INFO("Done");
 
        return TRUE;
 }
@@ -215,35 +210,34 @@ int _mmcamcorder_sound_solo_play(MMHandleType handle, const char *sample_name, g
 
 void _mmcamcorder_sound_solo_play_wait(MMHandleType handle)
 {
+       gint64 end_time = 0;
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
+       _MMCamcorderGDbusCbInfo *info = NULL;
 
-       mmf_return_if_fail(hcamcorder);
+       mmf_return_if_fail(hcamcorder && hcamcorder->gdbus_info_solo_sound);
 
-       _mmcam_dbg_log("START");
+       info = hcamcorder->gdbus_info_solo_sound;
 
-       /* check playing sound count */
-       g_mutex_lock(&hcamcorder->gdbus_info_solo_sound.sync_mutex);
+       MMCAM_LOG_INFO("START - is_playing[%d]", info->is_playing);
 
-       if (hcamcorder->gdbus_info_solo_sound.is_playing) {
-               gint64 end_time = 0;
+       end_time = g_get_monotonic_time() + _MMCAMCORDER_SOLO_PLAY_WAIT_TIMEOUT;
 
-               _mmcam_dbg_log("Wait for signal");
+       g_mutex_lock(&info->sync_mutex);
 
-               end_time = g_get_monotonic_time() + G_TIME_SPAN_SECOND;
+       while (info->is_playing) {
+               MMCAM_LOG_INFO("Wait for signal");
 
-               if (g_cond_wait_until(&hcamcorder->gdbus_info_solo_sound.sync_cond,
-                       &hcamcorder->gdbus_info_solo_sound.sync_mutex, end_time)) {
-                       _mmcam_dbg_log("signal received.");
-               } else {
-                       _mmcam_dbg_warn("capture sound play timeout.");
+               if (!g_cond_wait_until(&info->sync_cond, &info->sync_mutex, end_time)) {
+                       MMCAM_LOG_WARNING("sound play EOS timeout");
+                       break;
                }
-       } else {
-               _mmcam_dbg_warn("no playing sound");
+
+               MMCAM_LOG_INFO("signal received, check again[is_playing:%d]", info->is_playing);
        }
 
-       g_mutex_unlock(&hcamcorder->gdbus_info_solo_sound.sync_mutex);
+       g_mutex_unlock(&info->sync_mutex);
 
-       _mmcam_dbg_log("DONE");
+       MMCAM_LOG_INFO("DONE");
 
        return;
 }