[ITC][capi-media-recorder][ACR-781][Added new apis]
authornibha.sharma <nibha.sharma@samsung.com>
Fri, 21 Oct 2016 06:49:21 +0000 (12:19 +0530)
committernibha.sharma <nibha.sharma@samsung.com>
Fri, 21 Oct 2016 06:49:21 +0000 (12:19 +0530)
Change-Id: I21f79238e297c4be85385eb9d08b477c3d92c9f9
Signed-off-by: nibha.sharma <nibha.sharma@samsung.com>
src/itc/recorder/ITs-recorder.c
src/itc/recorder/tct-recorder-native_common_iot.h
src/itc/recorder/tct-recorder-native_mobile.h
src/itc/recorder/tct-recorder-native_tv.h
src/itc/recorder/tct-recorder-native_wearable.h

index 09c99c8..417480b 100755 (executable)
@@ -33,6 +33,7 @@ bool g_bRecorderRecordingStatusCallback;
 bool g_bRecorderStateChangedCallback;
 bool g_bRecorderSupportedVideoEncoderCallback;
 bool g_bRecorderSupportedVideoResolutionCallback;
+bool g_bStateChange;
 
 /**
 * @function            ITs_recorder_startup
@@ -84,6 +85,27 @@ void ITs_recorder_cleanup(void)
 }
 
 /**
+* @function            device_state_Changed_callback
+* @description         callback function for device state change
+* @parameter           recorder_type_e type, recorder_device_state_e state, void *user_data
+* @return                      NA
+*/
+static void device_state_changed_callback(recorder_type_e type, recorder_device_state_e state, void *user_data)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] Inside callback \"device_state_changed_callback\"\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_bStateChange = true;
+       if ( g_mainloop )
+       {
+               g_main_loop_quit(g_mainloop);
+               g_main_loop_unref(g_mainloop);
+               g_mainloop = NULL;
+       }
+}
+
+/**
 * @function            sound_stream_focus_state_changed_callback
 * @description         callback function for stream focus state change
 * @parameter           stream : stream info, focus change reason: reason for change, additional_info, user_data : user data
@@ -2032,6 +2054,142 @@ int ITc_recorder_set_sound_stream_info_p(void)
        nRet = sound_manager_destroy_stream_information(hStreamInfo);
        PRINT_RESULT(SOUND_MANAGER_ERROR_NONE, nRet, "sound_manager_destroy_stream_information", SoundManagerGetError(nRet));
        
+       if ( DestroyRecorderHandler() == false )
+       {
+               return 1;
+       }
+       
+       return 0;
+}
+
+//& purpose: To gets the state of recorder device.
+//& type: auto
+/**
+* @testcase                    ITc_recorder_get_device_state_p
+* @since_tizen                         3.0
+* @author                              SRID(nibha.sharma)
+* @reviewer                            SRID(parshant.v)
+* @type                                auto
+* @scenario                            To gets the state of recorder device.
+* @description                 To gets the state of recorder device.
+* @apicovered                  recorder_get_device_state
+* @passcase                            If recorder_get_device_state passes
+* @failcase                    If recorder_get_device_state fails
+* @precondition                        The recorder state should be RECORDER_STATE_READY or RECORDER_STATE_CREATED
+* @postcondition               NA
+*/
+int ITc_recorder_get_device_state_p(void)
+{
+       START_TEST;
+
+       recorder_device_state_e eDeviceState = RECORDER_DEVICE_STATE_IDLE;
+
+       if ( CreateAudioRecorder() == false )
+       {
+               return 1;
+       }
+       
+       if ( g_bMicFeatureNotSupported )
+       {
+               FPRINTF("[Line : %d][%s][Not supported] system_info_get_platform_bool and recorder_create_audiorecorder returned Unsupported feature capability for Recorder\\n", __LINE__, API_NAMESPACE);
+               return 0;
+       }
+
+       // Target API
+       int nRet = recorder_get_device_state(RECORDER_TYPE_AUDIO, &eDeviceState);
+       PRINT_RESULT(RECORDER_ERROR_NONE, nRet, "recorder_get_device_state", RecorderGetError(nRet));
+       
+       if( eDeviceState != RECORDER_DEVICE_STATE_IDLE && eDeviceState != RECORDER_DEVICE_STATE_RECORDING && eDeviceState != RECORDER_DEVICE_STATE_PAUSED )
+       {
+               FPRINTF("[Line : %d][%s]invalid recorder state\\n", __LINE__, API_NAMESPACE);
+               return 1;
+       }
+       
+       if ( DestroyRecorderHandler() == false )
+       {
+               return 1;
+       }
+       
+       return 0;
+}
+
+//& purpose: Registers and Unregisters a callback function
+//& type: auto
+/**
+* @testcase                    ITc_recorder_add_remove_device_state_changed_cb_p
+* @since_tizen                         3.0
+* @author                              SRID(nibha.sharma)
+* @reviewer                            SRID(parshant.v)
+* @type                                auto
+* @scenario                            Registers and Unregisters a callback function
+* @description                 Registers and Unregisters a callback function
+* @apicovered                  recorder_add_device_state_changed_cb, recorder_remove_device_state_changed_cb
+* @passcase                            If recorder_add_device_state_changed_cb and recorder_remove_device_state_changed_cb passes
+* @failcase                    If recorder_add_device_state_changed_cb or recorder_remove_device_state_changed_cb fails
+* @precondition                        The recorder state should be RECORDER_STATE_READY or RECORDER_STATE_CREATED
+* @postcondition               NA
+*/
+int ITc_recorder_add_remove_device_state_changed_cb_p(void)
+{
+       START_TEST;
+
+       int nId = 0;
+       
+       if ( CreateAudioRecorder() == false )
+       {
+               return 1;
+       }
+       
+       if ( g_bMicFeatureNotSupported )
+       {
+               FPRINTF("[Line : %d][%s][Not supported] system_info_get_platform_bool and recorder_create_audiorecorder returned Unsupported feature capability for Recorder\\n", __LINE__, API_NAMESPACE);
+               return 0;
+       }
+       
+       if ( ReadyRecorderHandler() != true )
+       {
+               FPRINTF( "[Line : %d][%s] Initialize condition failed\\n", __LINE__, API_NAMESPACE);
+               DestroyRecorderHandler();
+               return 1;
+       }
+       
+       g_bStateChange = false;
+       
+       // Target API
+       int nRet = recorder_add_device_state_changed_cb( device_state_changed_callback, NULL, &nId );
+       PRINT_RESULT(RECORDER_ERROR_NONE, nRet, "recorder_add_device_state_changed_cb", RecorderGetError(nRet));
+       
+       nRet = recorder_start(g_pstRecorder);
+       PRINT_RESULT_CLEANUP(RECORDER_ERROR_NONE, nRet, "recorder_start", RecorderGetError(nRet), recorder_unprepare(g_pstRecorder);DestroyRecorderHandler());
+       
+       nRet = recorder_pause(g_pstRecorder);
+       PRINT_RESULT_CLEANUP(RECORDER_ERROR_NONE, nRet, "recorder_pause", RecorderGetError(nRet), recorder_cancel(g_pstRecorder);recorder_unprepare(g_pstRecorder);DestroyRecorderHandler());
+       RecorderWaitForAsync();
+       if( g_bStateChange == false )
+       {
+               FPRINTF("[Line : %d][%s]Callback Not Hit\\n", __LINE__, API_NAMESPACE);
+               DestroyRecorderHandler();
+               return 1;
+       }
+       
+       if( nId > 0 )
+       {
+               nRet = recorder_remove_device_state_changed_cb( nId );
+               PRINT_RESULT(RECORDER_ERROR_NONE, nRet, "recorder_remove_device_state_changed_cb", RecorderGetError(nRet));
+       }
+       
+       nRet = recorder_cancel(g_pstRecorder);
+       PRINT_RESULT_CLEANUP(RECORDER_ERROR_NONE, nRet, "recorder_cancel", RecorderGetError(nRet), recorder_unprepare(g_pstRecorder);DestroyRecorderHandler());
+
+       nRet = recorder_unprepare(g_pstRecorder);
+       PRINT_RESULT_CLEANUP(RECORDER_ERROR_NONE, nRet, "recorder_unprepare", RecorderGetError(nRet), DestroyRecorderHandler());
+       
+       if ( DestroyRecorderHandler() == false )
+       {
+               FPRINTF("[Line : %d][%s]DestroyRecorderHandler returns false\\n", __LINE__, API_NAMESPACE);
+               return 1;
+       }
+       
        return 0;
 }
 
index 6319752..03e1c7d 100755 (executable)
@@ -57,6 +57,9 @@ extern int ITc_recorder_foreach_supported_file_format_p(void);
 extern int ITc_recorder_foreach_supported_audio_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_resolution_p(void);
+extern int ITc_recorder_set_sound_stream_info_p(void);
+extern int ITc_recorder_get_device_state_p(void);
+extern int ITc_recorder_add_remove_device_state_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_recorder_attr_set_get_audio_channel_p", ITc_recorder_attr_set_get_audio_channel_p, ITs_recorder_attr_startup, ITs_recorder_attr_cleanup},
@@ -92,6 +95,9 @@ testcase tc_array[] = {
     {"ITc_recorder_foreach_supported_audio_encoder_p", ITc_recorder_foreach_supported_audio_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_encoder_p", ITc_recorder_foreach_supported_video_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_resolution_p", ITc_recorder_foreach_supported_video_resolution_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_get_device_state_p", ITc_recorder_get_device_state_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_add_remove_device_state_changed_cb_p", ITc_recorder_add_remove_device_state_changed_cb_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {NULL, NULL}
 };
 
index 08be50c..03e1c7d 100755 (executable)
@@ -58,6 +58,8 @@ extern int ITc_recorder_foreach_supported_audio_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_resolution_p(void);
 extern int ITc_recorder_set_sound_stream_info_p(void);
+extern int ITc_recorder_get_device_state_p(void);
+extern int ITc_recorder_add_remove_device_state_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_recorder_attr_set_get_audio_channel_p", ITc_recorder_attr_set_get_audio_channel_p, ITs_recorder_attr_startup, ITs_recorder_attr_cleanup},
@@ -93,7 +95,9 @@ testcase tc_array[] = {
     {"ITc_recorder_foreach_supported_audio_encoder_p", ITc_recorder_foreach_supported_audio_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_encoder_p", ITc_recorder_foreach_supported_video_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_resolution_p", ITc_recorder_foreach_supported_video_resolution_p, ITs_recorder_startup, ITs_recorder_cleanup},
-       {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_get_device_state_p", ITc_recorder_get_device_state_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_add_remove_device_state_changed_cb_p", ITc_recorder_add_remove_device_state_changed_cb_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {NULL, NULL}
 };
 
index f44e5d5..9205953 100755 (executable)
@@ -56,6 +56,9 @@ extern int ITc_recorder_foreach_supported_file_format_p(void);
 extern int ITc_recorder_foreach_supported_audio_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_resolution_p(void);
+extern int ITc_recorder_set_sound_stream_info_p(void);
+extern int ITc_recorder_get_device_state_p(void);
+extern int ITc_recorder_add_remove_device_state_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_recorder_attr_set_get_audio_channel_p", ITc_recorder_attr_set_get_audio_channel_p, ITs_recorder_attr_startup, ITs_recorder_attr_cleanup},
@@ -91,6 +94,9 @@ testcase tc_array[] = {
     {"ITc_recorder_foreach_supported_audio_encoder_p", ITc_recorder_foreach_supported_audio_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_encoder_p", ITc_recorder_foreach_supported_video_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_resolution_p", ITc_recorder_foreach_supported_video_resolution_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_get_device_state_p", ITc_recorder_get_device_state_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_add_remove_device_state_changed_cb_p", ITc_recorder_add_remove_device_state_changed_cb_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {NULL, NULL}
 };
 
index 08be50c..03e1c7d 100755 (executable)
@@ -58,6 +58,8 @@ extern int ITc_recorder_foreach_supported_audio_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_encoder_p(void);
 extern int ITc_recorder_foreach_supported_video_resolution_p(void);
 extern int ITc_recorder_set_sound_stream_info_p(void);
+extern int ITc_recorder_get_device_state_p(void);
+extern int ITc_recorder_add_remove_device_state_changed_cb_p(void);
 
 testcase tc_array[] = {
     {"ITc_recorder_attr_set_get_audio_channel_p", ITc_recorder_attr_set_get_audio_channel_p, ITs_recorder_attr_startup, ITs_recorder_attr_cleanup},
@@ -93,7 +95,9 @@ testcase tc_array[] = {
     {"ITc_recorder_foreach_supported_audio_encoder_p", ITc_recorder_foreach_supported_audio_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_encoder_p", ITc_recorder_foreach_supported_video_encoder_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {"ITc_recorder_foreach_supported_video_resolution_p", ITc_recorder_foreach_supported_video_resolution_p, ITs_recorder_startup, ITs_recorder_cleanup},
-       {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_set_sound_stream_info_p", ITc_recorder_set_sound_stream_info_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_get_device_state_p", ITc_recorder_get_device_state_p, ITs_recorder_startup, ITs_recorder_cleanup},
+    {"ITc_recorder_add_remove_device_state_changed_cb_p", ITc_recorder_add_remove_device_state_changed_cb_p, ITs_recorder_startup, ITs_recorder_cleanup},
     {NULL, NULL}
 };