[ITC][sound-manager][ACR-1422][Add new APi's for sound ducking] 46/210646/3
authormanoj <manoj.g2@samsung.com>
Tue, 23 Jul 2019 09:42:21 +0000 (15:12 +0530)
committermanoj gupta <manoj.g2@samsung.com>
Tue, 23 Jul 2019 10:17:22 +0000 (10:17 +0000)
Change-Id: I869497e40616e0600566f72a5acb0acf77bb8896
Signed-off-by: manoj <manoj.g2@samsung.com>
src/itc/sound-manager/ITs-sound-manager-stream.c
src/itc/sound-manager/tct-sound-manager-native_mobile.h
src/itc/sound-manager/tct-sound-manager-native_tizeniot.h
src/itc/sound-manager/tct-sound-manager-native_wearable.h

index bf0aed643e6b58db4b206629fd113d17f5c2d51e..a7d3bf9456353eb35f0e8441888a5dd29eec4c4c 100755 (executable)
@@ -54,6 +54,14 @@ static void sound_stream_focus_state_changed_callback(sound_stream_info_h stream
        }
 }
 
+void sound_stream_ducking_state_changed_callback(sound_stream_ducking_h stream_ducking, bool is_ducked, void *user_data)
+{
+
+       FPRINTF("[Line : %d][%s] Inside callback \"sound_stream_ducking_state_changed_callback\"\\n", __LINE__, API_NAMESPACE);
+       g_bCallbackResult = true;
+
+}
+
 /**
 * @function            sound_stream_focus_state_watch_callback
 * @description         callback function for stream focus state watch
@@ -942,3 +950,122 @@ int ITc_sound_manager_deliver_focus_p(void)
        return 0;
 }
 
+//& purpose: To create and destroy stream ducking
+//& type : auto
+/**
+* @testcase                    ITc_sound_manager_create_destroy_stream_ducking_p
+* @since_tizen                         5.5
+* @author                      SRID(manoj.g2)
+* @reviewer                    SRID(shobhit.v)
+* @type                        auto
+* @description                 create and destroy ducking for all Streams
+* @scenario                    create stream ducking handle\n
+*                              destroy stream ducking handle for all streams
+* @apicovered                  sound_manager_create_stream_ducking, sound_manager_destroy_stream_ducking
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        None
+* @postcondition               None
+*/
+int ITc_sound_manager_create_destroy_stream_ducking_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       sound_stream_ducking_h hStreamDucking = NULL;
+
+       nRet = sound_manager_create_stream_ducking(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &hStreamDucking);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_create_stream_ducking", SoundManagerGetError(nRet));
+
+       CHECK_HANDLE(&hStreamDucking, "sound_manager_create_stream_ducking");
+
+        nRet = sound_manager_destroy_stream_ducking(hStreamDucking);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_destroy_stream_ducking", SoundManagerGetError(nRet));
+
+       return 0;
+}
+
+//& purpose: To check if stream is ducked.
+//& type : auto
+/**
+* @testcase                    ITc_sound_manager_is_ducked_p
+* @since_tizen                         5.5
+* @author                      SRID(manoj.g2)
+* @reviewer                    SRID(shobhit.v)
+* @type                        auto
+* @description                 checking if stream is ducked or not
+* @scenario                    create stream ducking handle\n
+*                              check weather stream is ducked and destroy stream ducking handle for streams
+* @apicovered                  sound_manager_create_stream_ducking, sound_manager_is_ducked, sound_manager_destroy_stream_ducking
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        None
+* @postcondition               None
+*/
+int ITc_sound_manager_is_ducked_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       sound_stream_ducking_h hStreamDucking = NULL;
+       bool bIsDucked;
+
+       nRet = sound_manager_create_stream_ducking(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &hStreamDucking);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_create_stream_ducking", SoundManagerGetError(nRet));
+
+       CHECK_HANDLE(&hStreamDucking, "sound_manager_create_stream_ducking");
+
+       nRet = sound_manager_is_ducked(hStreamDucking, &bIsDucked);
+       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_is_ducked", SoundManagerGetError(nRet), sound_manager_destroy_stream_ducking(hStreamDucking));
+
+       nRet = sound_manager_destroy_stream_ducking(hStreamDucking);
+       PRINT_RESULT_NORETURN(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_destroy_stream_ducking", SoundManagerGetError(nRet));
+
+       return 0;
+}
+
+//& purpose: To activate and deactivate stream ducking.
+//& type : auto
+/**
+* @testcase                    ITc_sound_manager_activate_deactivate_ducking_p
+* @since_tizen                         5.5
+* @author                      SRID(manoj.g2)
+* @reviewer                    SRID(shobhit.v)
+* @type                        auto
+* @description                 To activate and deactivate stream ducking
+* @scenario                    create stream ducking handle\n
+*                              activate and deactivate ducking and destroy stream ducking handle for streams
+* @apicovered                  sound_manager_create_stream_ducking, sound_manager_activate_ducking, sound_manager_deactivate_ducking,sound_manager_destroy_stream_ducking
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        None
+* @postcondition               None
+*/
+int ITc_sound_manager_activate_deactivate_ducking_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       int nRet = SOUND_MANAGER_ERROR_NONE;
+       sound_stream_ducking_h hStreamDucking = NULL;
+        unsigned int tDuration = 500;
+        double dRatio = 0.5;
+
+       nRet = sound_manager_create_stream_ducking(SOUND_STREAM_TYPE_MEDIA, sound_stream_ducking_state_changed_callback, NULL, &hStreamDucking);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_create_stream_ducking", SoundManagerGetError(nRet));
+
+       CHECK_HANDLE(&hStreamDucking, "sound_manager_create_stream_ducking");
+
+       nRet = sound_manager_activate_ducking(hStreamDucking, tDuration, dRatio);
+       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_activate_ducking", SoundManagerGetError(nRet), sound_manager_destroy_stream_ducking(hStreamDucking));
+
+       nRet = sound_manager_deactivate_ducking(hStreamDucking);
+       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_deactivate_ducking", SoundManagerGetError(nRet), sound_manager_destroy_stream_ducking(hStreamDucking));
+
+       RUN_POLLING_LOOP;
+       PRINT_RESULT_CLEANUP(g_bCallbackResult, true, "sound_manager_activate_ducking", SoundManagerGetError(nRet), sound_manager_destroy_stream_ducking(hStreamDucking));
+
+       nRet = sound_manager_destroy_stream_ducking(hStreamDucking);
+       PRINT_RESULT_NORETURN(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_destroy_stream_ducking", SoundManagerGetError(nRet));
+
+       return 0;
+}
index 4458dd769243a91a2e0b15fb52e1b9fb7d8fa8a8..4b7fb189026934f0cb6c8220501f96974c350f1c 100755 (executable)
@@ -63,6 +63,9 @@ extern int ITs_sound_manager_get_supported_sample_rates_p(void);
 extern int ITs_sound_manager_set_get_sample_rate_p(void);
 extern int ITs_sound_manager_set_get_avoid_resampling_p(void);
 extern int ITs_sound_manager_set_get_media_stream_only_p(void);
+extern int ITc_sound_manager_activate_deactivate_ducking_p(void);
+extern int ITc_sound_manager_is_ducked_p(void);
+extern int ITc_sound_manager_create_destroy_stream_ducking_p(void);
 testcase tc_array[] = {
        {"ITc_sound_manager_get_next_device_free_device_p",ITc_sound_manager_get_next_device_free_device_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_get_prev_device_p",ITc_sound_manager_get_prev_device_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_device_type_p",ITc_sound_manager_get_device_type_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_get_device_io_direction_p",ITc_sound_manager_get_device_io_direction_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
@@ -82,6 +85,9 @@ testcase tc_array[] = {
        {"ITc_sound_manager_is_device_running_p",ITc_sound_manager_is_device_running_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_add_remove_device_running_changed_cb_p",ITc_sound_manager_add_remove_device_running_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},    {"ITs_sound_manager_get_supported_sample_formats_p",ITs_sound_manager_get_supported_sample_formats_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITs_sound_manager_set_get_sample_format_p",ITs_sound_manager_set_get_sample_format_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},      {"ITs_sound_manager_get_supported_sample_rates_p",ITs_sound_manager_get_supported_sample_rates_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITs_sound_manager_set_get_sample_rate_p",ITs_sound_manager_set_get_sample_rate_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITs_sound_manager_set_get_avoid_resampling_p",ITs_sound_manager_set_get_avoid_resampling_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},        {"ITs_sound_manager_set_get_media_stream_only_p",ITs_sound_manager_set_get_media_stream_only_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
+{"ITc_sound_manager_activate_deactivate_ducking_p",ITc_sound_manager_activate_deactivate_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_is_ducked_p",ITc_sound_manager_is_ducked_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_create_destroy_stream_ducking_p",ITc_sound_manager_create_destroy_stream_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {NULL, NULL}
 };
 
index 98eb652a7ce007c50dab9b9a5983a5544f8c1a99..506ffa11c09b9fd15df10f9433cfb0b03fba4ec6 100755 (executable)
@@ -55,7 +55,9 @@ extern int ITc_sound_manager_get_current_sound_type_p(void);
 extern int ITc_sound_manager_add_remove_volume_changed_cb_p(void);
 extern int ITc_sound_manager_acquire_release_focus_all_p(void);
 extern int ITc_sound_manager_deliver_focus_p(void);
-
+extern int ITc_sound_manager_activate_deactivate_ducking_p(void);
+extern int ITc_sound_manager_is_ducked_p(void);
+extern int ITc_sound_manager_create_destroy_stream_ducking_p(void);
 testcase tc_array[] = {
        {"ITc_sound_manager_get_next_device_free_device_p",ITc_sound_manager_get_next_device_free_device_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_prev_device_p",ITc_sound_manager_get_prev_device_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
@@ -86,6 +88,9 @@ testcase tc_array[] = {
        {"ITc_sound_manager_add_remove_volume_changed_cb_p",ITc_sound_manager_add_remove_volume_changed_cb_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
        {"ITc_sound_manager_acquire_release_focus_all_p", ITc_sound_manager_acquire_release_focus_all_p, ITs_sound_manager_stream_startup, ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_deliver_focus_p", ITc_sound_manager_deliver_focus_p, ITs_sound_manager_stream_startup, ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_activate_deactivate_ducking_p",ITc_sound_manager_activate_deactivate_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_is_ducked_p",ITc_sound_manager_is_ducked_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_create_destroy_stream_ducking_p",ITc_sound_manager_create_destroy_stream_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {NULL, NULL}
 };
 
index fe51ef658c6460a1ace082361c88a947c200aba3..763995c6d05e14aa49a952c34a18548445602e06 100755 (executable)
@@ -63,6 +63,9 @@ extern int ITs_sound_manager_get_supported_sample_rates_p(void);
 extern int ITs_sound_manager_set_get_sample_rate_p(void);
 extern int ITs_sound_manager_set_get_avoid_resampling_p(void);
 extern int ITs_sound_manager_set_get_media_stream_only_p(void);
+extern int ITc_sound_manager_activate_deactivate_ducking_p(void);
+extern int ITc_sound_manager_is_ducked_p(void);
+extern int ITc_sound_manager_create_destroy_stream_ducking_p(void);
 
 
        testcase tc_array[] = {
@@ -92,6 +95,9 @@ extern int ITs_sound_manager_set_get_media_stream_only_p(void);
        {"ITs_sound_manager_set_get_sample_rate_p",ITs_sound_manager_set_get_sample_rate_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITs_sound_manager_set_get_avoid_resampling_p",ITs_sound_manager_set_get_avoid_resampling_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITs_sound_manager_set_get_media_stream_only_p",ITs_sound_manager_set_get_media_stream_only_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
+{"ITc_sound_manager_activate_deactivate_ducking_p",ITc_sound_manager_activate_deactivate_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_is_ducked_p",ITc_sound_manager_is_ducked_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+{"ITc_sound_manager_create_destroy_stream_ducking_p",ITc_sound_manager_create_destroy_stream_ducking_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {NULL, NULL}
 };