[ITC][capi-media-sound-manager][ACR-1278][Add new APIs for USB audio output device]
authormansankar <karanam.s@samsung.com>
Fri, 7 Sep 2018 11:56:21 +0000 (17:26 +0530)
committerAmritanshu Pandia <a.pandia1@samsung.com>
Mon, 24 Sep 2018 06:31:07 +0000 (06:31 +0000)
Change-Id: I51e270edf32a3ebe68e808db6c9d5cd8f71b09c4
Signed-off-by: mansankar <karanam.s@samsung.com>
src/itc/sound-manager/ITs-sound-manager-common.h
src/itc/sound-manager/ITs-sound-manager-device.c
src/itc/sound-manager/tct-sound-manager-native_mobile.h
src/itc/sound-manager/tct-sound-manager-native_wearable.h

index d25c5c1400148baab0d340d5adb5df5cb1f676da..70c99ab492b06bca670f44eabe989c3d1f9b27fe 100755 (executable)
@@ -40,6 +40,8 @@
 #define TIMEOUT_CB                  20000
 #define TESTFILE                                       "WavPlayerTest.wav"
 #define PATH_LEN                                       1024
+#define SAMPLE_FORMAT_COUNT                    4
+#define SAMPLE_RATE_COUNT                      8
 
 int nTimeoutId;
 GMainLoop *g_pSoundManagerMainLoop;
index 15277b9d5a3ff44adae915a0f6b09f725515a801..1ac82f3545162f3ecd7e20f1a2d04205bb717de3 100755 (executable)
@@ -23,7 +23,6 @@
 bool g_bWavPlayerPlaybackCompletedCallback;
 static GMainLoop *g_pMainLoop;
 static bool g_bCallbackResult ;
-
 static bool g_bSupportedFeatureMicrophone ;
 
 /**
@@ -116,7 +115,6 @@ static void test_sound_manager_stream_focus_state_changed_cb(sound_stream_info_h
        g_bCallbackResult = true;
        FPRINTF("[Line : %d][%s] Inside callback \"test_sound_manager_stream_focus_state_changed_cb\"\\n", __LINE__, API_NAMESPACE);
 }
-
 /**
 * @function            ITs_sound_manager_device_startup
 * @description         Called before each test
@@ -137,7 +135,6 @@ void ITs_sound_manager_device_startup(void)
 
        g_bCallbackResult = false;
        g_bSupportedFeatureMicrophone = TCTCheckSystemInfoFeatureSupported(FEATURE_MICROPHONE, API_NAMESPACE);
-
        return;
 }
 
@@ -183,7 +180,7 @@ int ITc_sound_manager_get_next_device_free_device_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -192,7 +189,7 @@ int ITc_sound_manager_get_next_device_free_device_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -280,7 +277,6 @@ int ITc_sound_manager_get_prev_device_p(void)
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
 
-       
        return 0;
 }
 #endif //End MOBILE or Wearable
@@ -356,7 +352,6 @@ int ITc_sound_manager_get_prev_device_p(void)
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
 
-       
        return 0;
 }
 #endif  //TV   //End TV
@@ -391,11 +386,11 @@ int ITc_sound_manager_get_device_type_p(void)
        #ifdef TV       //Starts TV
        int nRet = sound_manager_get_device_list(SOUND_DEVICE_IO_DIRECTION_OUT_MASK, &deviceList);
        #endif  //TV    //End TV
-       
+
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -404,7 +399,7 @@ int ITc_sound_manager_get_device_type_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -417,7 +412,7 @@ int ITc_sound_manager_get_device_type_p(void)
                FPRINTF("[Line : %d][%s] sound_manager_get_device_type failed, device type is invalid\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
 
@@ -456,11 +451,11 @@ int ITc_sound_manager_get_device_io_direction_p(void)
        #ifdef TV       //Starts TV
        int nRet = sound_manager_get_device_list(SOUND_DEVICE_IO_DIRECTION_OUT_MASK, &deviceList);
        #endif  //TV    //End TV
-       
+
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -469,7 +464,7 @@ int ITc_sound_manager_get_device_io_direction_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -482,10 +477,10 @@ int ITc_sound_manager_get_device_io_direction_p(void)
                FPRINTF("[Line : %d][%s] sound_manager_get_device_io_direction failed, sound device direction is invalid\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
-       
+
        return 0;
 }
 
@@ -520,11 +515,11 @@ int ITc_sound_manager_get_device_id_p(void)
        #ifdef TV       //Starts TV
        int nRet = sound_manager_get_device_list(SOUND_DEVICE_IO_DIRECTION_OUT_MASK, &deviceList);
        #endif  //TV    //End TV
-       
+
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -533,7 +528,7 @@ int ITc_sound_manager_get_device_id_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -545,10 +540,10 @@ int ITc_sound_manager_get_device_id_p(void)
                FPRINTF("[Line : %d][%s] sound_manager_get_device_id failed, sound device id is invalid\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
-       
+
        return 0;
 }
 
@@ -583,11 +578,11 @@ int ITc_sound_manager_get_device_name_p(void)
        #ifdef TV       //Starts TV
        int nRet = sound_manager_get_device_list(SOUND_DEVICE_IO_DIRECTION_OUT_MASK, &deviceList);
        #endif  //TV    //End TV
-       
+
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -596,7 +591,7 @@ int ITc_sound_manager_get_device_name_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -639,11 +634,11 @@ int ITc_sound_manager_get_device_state_p(void)
        #ifdef TV       //Starts TV
        int nRet = sound_manager_get_device_list(SOUND_DEVICE_IO_DIRECTION_OUT_MASK, &deviceList);
        #endif  //TV    //End TV
-       
+
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_device_list error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
        CHECK_HANDLE(deviceList, "sound_manager_get_device_list");
@@ -652,7 +647,7 @@ int ITc_sound_manager_get_device_state_p(void)
        if (nRet == SOUND_MANAGER_ERROR_NO_DATA)
        {
                FPRINTF("\\n[Line : %d][%s]sound_manager_get_next_device error returned = %s . So leaving test",__LINE__, API_NAMESPACE, SoundManagerGetError(nRet));
-               return 0;               
+               return 0;
        }
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device\\n", SoundManagerGetError(nRet));
        CHECK_HANDLE(hDevice, "sound_manager_get_next_device");
@@ -665,10 +660,10 @@ int ITc_sound_manager_get_device_state_p(void)
                FPRINTF("[Line : %d][%s] sound_manager_get_device_state failed, sound device state is invalid\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        nRet = sound_manager_free_device_list(deviceList);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_free_device_list", SoundManagerGetError(nRet));
-       
+
        return 0;
 }
 
@@ -769,7 +764,7 @@ int ITc_sound_manager_get_device_list_p(void)
 * @reviewer                            SRID(a.pandia1)
 * @type                                auto
 * @description                 Gets current media playback device type
-* @scenario                    
+* @scenario
 *                                              Create stream info handle\n
 *                                              Acquire recording focus\n
 *                                              Get the current recording focus
@@ -836,7 +831,7 @@ int ITc_sound_manager_add_remove_device_connection_changed_cb_p(void)
        #ifdef TV       //Starts TV
        sound_device_mask_e e_device_mask = SOUND_DEVICE_IO_DIRECTION_OUT_MASK;
        #endif  //TV    //End TV
-       
+
        int arrSoundDeviceMask[] = {
                SOUND_DEVICE_IO_DIRECTION_IN_MASK,              /**< Mask for input devices */
                SOUND_DEVICE_IO_DIRECTION_OUT_MASK,             /**< Mask for output devices */
@@ -884,7 +879,7 @@ int ITc_sound_manager_add_remove_device_state_changed_cb_p(void)
        START_TEST;
        // Initializing testing variable
        int nRet = -1, nEnumLoopCount = 0;
-       
+
        #if defined(MOBILE) ||  defined(TIZENIOT) || defined(WEARABLE) //Starts MOBILE or  TIZENIOT and WEARABLE
        sound_device_mask_e e_device_mask = SOUND_DEVICE_IO_DIRECTION_IN_MASK;
        #endif//MOBILE or TIZENIOT or WEARABLE
@@ -1030,4 +1025,429 @@ int ITc_sound_manager_add_remove_device_running_changed_cb_p(void)
 
        return 0;
 }
+//& purpose: Gets the device's supported sample formats.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_get_supported_sample_formats_p
+* @since_tizen                         5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Gets the device's supported sample formats.
+* @apicovered                   sound_manager_get_supported_sample_formats
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_get_supported_sample_formats_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       sound_device_h hDevice = NULL;
+       sound_sample_format_e *eSampleFormat = NULL;
+       unsigned int nNumOfElems = 0;
+
+       int nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_get_supported_sample_formats(hDevice, &eSampleFormat, &nNumOfElems);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_supported_sample_formats", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+                       CHECK_HANDLE_CLEANUP(eSampleFormat, "sound_manager_get_supported_sample_formats", sound_manager_free_device_list(hDeviceList));
+                       if(nNumOfElems == 0 || nNumOfElems > SAMPLE_FORMAT_COUNT)
+                       {
+                               FPRINTF("\\n[Line : %d][%s]sound_manager_get_supported_sample_formats failed, no supported formats",__LINE__, API_NAMESPACE);
+                               sound_manager_free_device_list(hDeviceList);
+                               FREE_MEMORY(eSampleFormat);
+                               return 1;
+                       }
+                       sound_manager_free_device_list(hDeviceList);
+                       FREE_MEMORY(eSampleFormat);
+                       return 0;
+               }
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
+//& purpose: Sets/Gets the device's sample format.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_set_get_sample_format_p
+* @since_tizen                 5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Sets/Gets the device's sample format.
+* @apicovered                  sound_manager_get_supported_sample_formats,sound_manager_set_sample_format,sound_manager_get_sample_format
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_set_get_sample_format_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       sound_device_h hDevice = NULL;
+       sound_sample_format_e *eSampleFormat = NULL;
+       sound_sample_format_e eFindSampleFormat;
+       unsigned int nNumOfElems = 0;
+       int nRet = -1, nEnumLoopCount = 0;
 
+       nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_get_supported_sample_formats(hDevice, &eSampleFormat, &nNumOfElems);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_supported_sample_formats", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+                       CHECK_HANDLE_CLEANUP(eSampleFormat, "sound_manager_get_supported_sample_formats", sound_manager_free_device_list(hDeviceList));
+                       if(nNumOfElems == 0 || nNumOfElems > SAMPLE_FORMAT_COUNT)
+                       {
+                               FPRINTF("\\n[Line : %d][%s]sound_manager_get_supported_sample_formats failed, no supported formats",__LINE__, API_NAMESPACE);
+                               sound_manager_free_device_list(hDeviceList);
+                               FREE_MEMORY(eSampleFormat);
+                               return 1;
+                       }
+                       for ( nEnumLoopCount = 0; nEnumLoopCount < nNumOfElems ; nEnumLoopCount++ )
+                       {
+                               nRet = sound_manager_set_sample_format(hDevice, eSampleFormat[nEnumLoopCount]);
+                               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_set_sample_format", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eSampleFormat));
+                               nRet = sound_manager_get_sample_format(hDevice, &eFindSampleFormat);
+                               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_sample_format", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eSampleFormat));
+                               PRINT_RESULT_CLEANUP(eFindSampleFormat, eSampleFormat[nEnumLoopCount], "sound_manager_get_sample_format", "Output parameter doesn't match the set value", sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eSampleFormat));
+                       }
+                       sound_manager_free_device_list(hDeviceList);
+                       FREE_MEMORY(eSampleFormat);
+                       return 0;
+               }
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
+//& purpose: Gets the device's supported sample rates.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_get_supported_sample_rates_p
+* @since_tizen                         5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Gets the device's supported sample rates.
+* @apicovered                  sound_manager_get_supported_sample_rates
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_get_supported_sample_rates_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_h hDevice = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       sound_sample_rate_e *eSampleRates = NULL;
+       unsigned int nNumOfElems = 0;
+       int nRet = -1;
+
+       nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       nRet = sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_get_supported_sample_rates(hDevice, &eSampleRates, &nNumOfElems);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_supported_sample_rates", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+                       CHECK_HANDLE_CLEANUP(eSampleRates, "sound_manager_get_supported_sample_rates", sound_manager_free_device_list(hDeviceList));
+                       if(nNumOfElems == 0 || nNumOfElems > SAMPLE_RATE_COUNT)
+                       {
+                               FPRINTF("\\n[Line : %d][%s]sound_manager_get_supported_sample_rates failed, no supported rates",__LINE__, API_NAMESPACE);
+                               sound_manager_free_device_list(hDeviceList);
+                               FREE_MEMORY(eSampleRates);
+                               return 1;
+                       }
+                       sound_manager_free_device_list(hDeviceList);
+                       FREE_MEMORY(eSampleRates);
+                       return 0;
+               }
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
+//& purpose: Sets/Gets the device's sample rates.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_set_get_sample_rates_p
+* @since_tizen                         5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Sets/Gets the device's sample rates.
+* @apicovered                  sound_manager_get_supported_sample_rates,sound_manager_set_sample_rate,sound_manager_get_sample_rate.
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_set_get_sample_rate_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_h hDevice = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       sound_sample_rate_e *eOutSampleRates = NULL;
+       sound_sample_rate_e eFindSampleRate;
+       unsigned int nNumOfElems = 0;
+       int nRet=-1, nEnumLoopCount = 0;
+
+       nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_get_supported_sample_rates(hDevice, &eOutSampleRates, &nNumOfElems);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_supported_sample_rates", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+                       CHECK_HANDLE_CLEANUP(eOutSampleRates, "sound_manager_get_supported_sample_rates", sound_manager_free_device_list(hDeviceList));
+                       if(nNumOfElems == 0 || nNumOfElems > SAMPLE_RATE_COUNT)
+                       {
+                               FPRINTF("\\n[Line : %d][%s]sound_manager_get_supported_sample_rates failed, no supported rates",__LINE__, API_NAMESPACE);
+                               sound_manager_free_device_list(hDeviceList);
+                               FREE_MEMORY(eOutSampleRates);
+                               return 1;
+                       }
+                       for ( nEnumLoopCount = 0; nEnumLoopCount < nNumOfElems ; nEnumLoopCount++ )
+                       {
+                               nRet = sound_manager_set_sample_rate(hDevice, eOutSampleRates[nEnumLoopCount]);
+                               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_set_sample_rate", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eOutSampleRates));
+
+                               nRet = sound_manager_get_sample_rate(hDevice, &eFindSampleRate);
+                               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_sample_rate", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eOutSampleRates));
+
+                               PRINT_RESULT_CLEANUP(eFindSampleRate, eOutSampleRates[nEnumLoopCount], "sound_manager_get_sample_rate", "Output parameter doesn't match the set value", sound_manager_free_device_list(hDeviceList);FREE_MEMORY(eOutSampleRates));
+                       }
+                       sound_manager_free_device_list(hDeviceList);
+                       FREE_MEMORY(eOutSampleRates);
+                       return 0;
+               }
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
+//& purpose: Sets/Gets the device's 'avoid resampling' property.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_set_get_avoid_resampling_p
+* @since_tizen                         5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Sets/Gets the device's 'avoid resampling' property.
+* @apicovered                  sound_manager_set_avoid_resampling,sound_manager_get_avoid_resampling
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_set_get_avoid_resampling_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_h hDevice = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       bool bSetEnable = true;
+       bool bFindEnable = false;
+       int nRet = -1;
+
+       nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_set_avoid_resampling(hDevice, bSetEnable);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_set_avoid_resampling", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+                       nRet = sound_manager_get_avoid_resampling(hDevice, &bFindEnable);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_avoid_resampling", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+                       PRINT_RESULT_CLEANUP(bFindEnable, bSetEnable, "sound_manager_get_avoid_resampling", "Output parameter doesn't match the set value", sound_manager_free_device_list(hDeviceList));
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
+//& purpose: Sets/Gets the restriction of stream type only for media.
+//& type : auto
+/**
+* @testcase                    ITs_sound_manager_set_get_media_stream_only
+* @since_tizen                         5.0
+* @author                      SRID(karanam.s)
+* @reviewer                    SRID(j.abhishek)
+* @type                        auto
+* @description                 Sets/Gets the restriction of stream type only for media.
+* @apicovered                  sound_manager_set_media_stream_only,sound_manager_get_media_stream_only
+* @passcase                    When API return SOUND_MANAGER_ERROR_NONE
+* @failcase                    When API not return SOUND_MANAGER_ERROR_NONE
+* @precondition                        device should be #SOUND_DEVICE_USB_AUDIO type and an output device
+* @postcondition               N/A
+*/
+int ITs_sound_manager_set_get_media_stream_only_p(void)
+{
+       START_TEST;
+       // Initializing testing variable
+       sound_device_list_h hDeviceList = NULL;
+       sound_device_h hDevice = NULL;
+       sound_device_type_e eType;
+       sound_device_io_direction_e eIoDirection;
+       bool bSetEnable = true;
+       bool bFindEnable = false;
+       int nRet = -1;
+
+       nRet = sound_manager_get_device_list(SOUND_DEVICE_ALL_MASK, &hDeviceList);
+       PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_list", SoundManagerGetError(nRet));
+       CHECK_HANDLE(hDeviceList, "sound_manager_get_device_list");
+
+       while(hDeviceList != NULL)
+       {
+               nRet = sound_manager_get_next_device(hDeviceList, &hDevice);
+               if(nRet == SOUND_MANAGER_ERROR_NO_DATA)
+               {
+                       FPRINTF("\\n[Line : %d][%s] Unsupported device , device must be usb audio type and output device",__LINE__, API_NAMESPACE);
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_next_device", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+               CHECK_HANDLE_CLEANUP(hDevice, "sound_manager_get_next_device", sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_type(hDevice, &eType);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_type", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               nRet = sound_manager_get_device_io_direction(hDevice, &eIoDirection);
+               PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_device_io_direction", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+               if(eType == SOUND_DEVICE_USB_AUDIO && eIoDirection == SOUND_DEVICE_IO_DIRECTION_OUT)
+               {
+                       nRet = sound_manager_set_media_stream_only(hDevice, bSetEnable);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_set_media_stream_only", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+                       nRet = sound_manager_get_media_stream_only(hDevice, &bFindEnable);
+                       PRINT_RESULT_CLEANUP(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_get_media_stream_only", SoundManagerGetError(nRet), sound_manager_free_device_list(hDeviceList));
+
+                       PRINT_RESULT_CLEANUP(bFindEnable, bSetEnable, "sound_manager_get_media_stream_only", "Output parameter doesn't match the set value", sound_manager_free_device_list(hDeviceList));
+                       sound_manager_free_device_list(hDeviceList);
+                       return 0;
+               }
+
+       }
+       FPRINTF("\\n[Line : %d][%s] No device attached, usb audio type and output device must be attached",__LINE__, API_NAMESPACE);
+       return 0;
+}
index dbff046c7d477fb52a3b080169aaf1c36141840f..4458dd769243a91a2e0b15fb52e1b9fb7d8fa8a8 100755 (executable)
@@ -57,39 +57,31 @@ 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_is_device_running_p(void);
 extern int ITc_sound_manager_add_remove_device_running_changed_cb_p(void);
-
+extern int ITs_sound_manager_get_supported_sample_formats_p(void);
+extern int ITs_sound_manager_set_get_sample_format_p(void);
+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);
 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},
+       {"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},
        {"ITc_sound_manager_get_device_id_p",ITc_sound_manager_get_device_id_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_device_name_p",ITc_sound_manager_get_device_name_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_device_state_p",ITc_sound_manager_get_device_state_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_get_device_list_p",ITc_sound_manager_get_device_list_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_get_current_media_playback_device_type_p",ITc_sound_manager_get_current_media_playback_device_type_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_add_remove_device_connection_changed_cb_p",ITc_sound_manager_add_remove_device_connection_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_add_remove_device_state_changed_cb_p",ITc_sound_manager_add_remove_device_state_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_create_destroy_stream_information_p",ITc_sound_manager_create_destroy_stream_information_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_add_remove_device_for_stream_routing_p",ITc_sound_manager_add_remove_device_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_remove_all_devices_for_stream_routing_p",ITc_sound_manager_remove_all_devices_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_device_list_p",ITc_sound_manager_get_device_list_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_get_current_media_playback_device_type_p",ITc_sound_manager_get_current_media_playback_device_type_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},    {"ITc_sound_manager_add_remove_device_connection_changed_cb_p",ITc_sound_manager_add_remove_device_connection_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_add_remove_device_state_changed_cb_p",ITc_sound_manager_add_remove_device_state_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},    {"ITc_sound_manager_create_destroy_stream_information_p",ITc_sound_manager_create_destroy_stream_information_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},      {"ITc_sound_manager_add_remove_device_for_stream_routing_p",ITc_sound_manager_add_remove_device_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},        {"ITc_sound_manager_remove_all_devices_for_stream_routing_p",ITc_sound_manager_remove_all_devices_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_apply_stream_routing_p",ITc_sound_manager_apply_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_acquire_release_focus_p",ITc_sound_manager_acquire_release_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_get_focus_state_p",ITc_sound_manager_get_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_add_remove_focus_state_watch_cb_p",ITc_sound_manager_add_remove_focus_state_watch_cb_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_set_get_focus_reacquisition_p",ITc_sound_manager_set_get_focus_reacquisition_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_get_sound_type_p",ITc_sound_manager_get_sound_type_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_get_current_playback_recording_focus_p",ITc_sound_manager_get_current_playback_recording_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p",ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_focus_state_p",ITc_sound_manager_get_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},  {"ITc_sound_manager_add_remove_focus_state_watch_cb_p",ITc_sound_manager_add_remove_focus_state_watch_cb_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},  {"ITc_sound_manager_set_get_focus_reacquisition_p",ITc_sound_manager_set_get_focus_reacquisition_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_sound_type_p",ITc_sound_manager_get_sound_type_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},    {"ITc_sound_manager_get_current_playback_recording_focus_p",ITc_sound_manager_get_current_playback_recording_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},        {"ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p",ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_is_stream_on_device_p",ITc_sound_manager_is_stream_on_device_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_get_max_volume_p",ITc_sound_manager_get_max_volume_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
-       {"ITc_sound_manager_set_get_volume_p",ITc_sound_manager_set_get_volume_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
-       {"ITc_sound_manager_get_current_sound_type_p",ITc_sound_manager_get_current_sound_type_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
-       {"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_set_get_volume_p",ITc_sound_manager_set_get_volume_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},    {"ITc_sound_manager_get_current_sound_type_p",ITc_sound_manager_get_current_sound_type_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},    {"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_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},
+       {"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},
        {NULL, NULL}
 };
 
index 3072bd6752573b66ee781de153d25e28be21ff6b..fe51ef658c6460a1ace082361c88a947c200aba3 100755 (executable)
@@ -57,40 +57,41 @@ 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_is_device_running_p(void);
 extern int ITc_sound_manager_add_remove_device_running_changed_cb_p(void);
+extern int ITs_sound_manager_get_supported_sample_formats_p(void);
+extern int ITs_sound_manager_set_get_sample_format_p(void);
+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);
 
 
-testcase tc_array[] = {
+       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},
+       {"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},
        {"ITc_sound_manager_get_device_id_p",ITc_sound_manager_get_device_id_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_device_name_p",ITc_sound_manager_get_device_name_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
        {"ITc_sound_manager_get_device_state_p",ITc_sound_manager_get_device_state_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_get_device_list_p",ITc_sound_manager_get_device_list_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_get_current_media_playback_device_type_p",ITc_sound_manager_get_current_media_playback_device_type_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_add_remove_device_connection_changed_cb_p",ITc_sound_manager_add_remove_device_connection_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_add_remove_device_state_changed_cb_p",ITc_sound_manager_add_remove_device_state_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},
-       {"ITc_sound_manager_create_destroy_stream_information_p",ITc_sound_manager_create_destroy_stream_information_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_add_remove_device_for_stream_routing_p",ITc_sound_manager_add_remove_device_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_remove_all_devices_for_stream_routing_p",ITc_sound_manager_remove_all_devices_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_device_list_p",ITc_sound_manager_get_device_list_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_get_current_media_playback_device_type_p",ITc_sound_manager_get_current_media_playback_device_type_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},    {"ITc_sound_manager_add_remove_device_connection_changed_cb_p",ITc_sound_manager_add_remove_device_connection_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},  {"ITc_sound_manager_add_remove_device_state_changed_cb_p",ITc_sound_manager_add_remove_device_state_changed_cb_p,ITs_sound_manager_device_startup,ITs_sound_manager_device_cleanup},    {"ITc_sound_manager_create_destroy_stream_information_p",ITc_sound_manager_create_destroy_stream_information_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},      {"ITc_sound_manager_add_remove_device_for_stream_routing_p",ITc_sound_manager_add_remove_device_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},        {"ITc_sound_manager_remove_all_devices_for_stream_routing_p",ITc_sound_manager_remove_all_devices_for_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_apply_stream_routing_p",ITc_sound_manager_apply_stream_routing_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_acquire_release_focus_p",ITc_sound_manager_acquire_release_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_get_focus_state_p",ITc_sound_manager_get_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_add_remove_focus_state_watch_cb_p",ITc_sound_manager_add_remove_focus_state_watch_cb_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_set_get_focus_reacquisition_p",ITc_sound_manager_set_get_focus_reacquisition_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_focus_state_p",ITc_sound_manager_get_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},  {"ITc_sound_manager_add_remove_focus_state_watch_cb_p",ITc_sound_manager_add_remove_focus_state_watch_cb_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},  {"ITc_sound_manager_set_get_focus_reacquisition_p",ITc_sound_manager_set_get_focus_reacquisition_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_get_sound_type_p",ITc_sound_manager_get_sound_type_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_get_current_playback_recording_focus_p",ITc_sound_manager_get_current_playback_recording_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
-       {"ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p",ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
+       {"ITc_sound_manager_get_current_playback_recording_focus_p",ITc_sound_manager_get_current_playback_recording_focus_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},        {"ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p",ITc_sound_manager_focus_get_requesting_requested_behavior_get_changed_focus_state_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_is_stream_on_device_p",ITc_sound_manager_is_stream_on_device_p,ITs_sound_manager_stream_startup,ITs_sound_manager_stream_cleanup},
        {"ITc_sound_manager_get_max_volume_p",ITc_sound_manager_get_max_volume_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
        {"ITc_sound_manager_set_get_volume_p",ITc_sound_manager_set_get_volume_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
-       {"ITc_sound_manager_get_current_sound_type_p",ITc_sound_manager_get_current_sound_type_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},
-       {"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_get_current_sound_type_p",ITc_sound_manager_get_current_sound_type_p,ITs_sound_manager_volume_startup,ITs_sound_manager_volume_cleanup},    {"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_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},
+       {"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},      {"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},
        {NULL, NULL}
 };