[ITC][multi-assistant][ACR-1386][New TC of advance features of MA] 98/206798/3
authorABHISHEK JAIN <j.abhishek@samsung.com>
Mon, 27 May 2019 07:09:56 +0000 (12:39 +0530)
committermanoj gupta <manoj.g2@samsung.com>
Mon, 27 May 2019 10:54:26 +0000 (10:54 +0000)
Change-Id: Ib8e2842ce7d3f92211a5f628b7c0da580b8e9d46
Signed-off-by: ABHISHEK JAIN <j.abhishek@samsung.com>
src/itc/multi-assistant/ITs-multi-assistant-common.h
src/itc/multi-assistant/ITs-multi-assistant.c
src/itc/multi-assistant/tct-multi-assistant-native_mobile.h
src/itc/multi-assistant/tct-multi-assistant-native_tizeniot.h
src/itc/multi-assistant/tct-multi-assistant-native_wearable.h

index d05146b28bc10e8e5f81c405659759cc66a36877..835e348c777b748ecd4a0eaf77335aef89d3a7c0 100755 (executable)
@@ -30,9 +30,9 @@
 */
 
 #define API_NAMESPACE                                  "MULTI_ASSISTANT_ITC"
-#define FEATURE_MULTI_ASSISTANT                        "http://tizen.org/feature/multi_assistant"
+#define FEATURE_MULTI_ASSISTANT                                "http://tizen.org/feature/multi_assistant"
 #define FEATURE_MICROPHONE                             "http://tizen.org/feature/microphone"
-#define TIME_LIMIT                                             20
+#define TIME_LIMIT                                     20
 
 static bool g_CallBackHit = false;
 static bool g_bMultiAssistant = false;
@@ -41,6 +41,10 @@ static bool g_bIsFeatureMismatched = false;
 static bool g_bFeatureNotSupported = false;
 static bool g_bMAInit = false;
 static ma_state_e g_nCurrentState = MA_STATE_NONE;
+static ma_active_state_e g_nCurrentActiveState = MA_ACTIVE_STATE_INACTIVE;
+static ma_active_state_e g_nPreviousActiveState = MA_ACTIVE_STATE_INACTIVE;
+static char *gpszWakeupCmd = NULL;
+
 
 void MaLanguageChangedCb(const char* previous, const char* current, void* user_data);
 void MaAudioStreamingCb(ma_audio_streaming_event_e event, char* buffer, int len, void* user_data);
index b8624623090121fe54cf8465251540a858ccd497..96d03f2502cd56a59117d51ae5f5bb4d8a3e305b 100755 (executable)
@@ -84,6 +84,34 @@ void MaErrorCb(ma_error_e reason, void* user_data)
        return;
 }
 
+/**
+* @function            MaActiveStateChangedCb
+* @description         Callback Function
+* @parameters          ma_active_state_e previous, ma_active_state_e current, void* user_data
+* @return              NA
+*/
+void MaActiveStateChangedCb(ma_active_state_e previous, ma_active_state_e current, void* user_data)
+{
+       FPRINTF("[Line : %d][%s] MaActiveStateChangedCb Callback Invoked\\n", __LINE__, API_NAMESPACE);
+       g_CallBackHit = true;
+       g_nPreviousActiveState = previous;
+       g_nCurrentActiveState = current;
+       return;
+}
+
+/**
+* @function            MaWakeupEngineCmdCb
+* @description         Callback Function
+* @parameters          const char *command, void* user_data
+* @return              NA
+*/
+void MaWakeupEngineCmdCb(const char *command, void* user_data)
+{
+       FPRINTF("[Line : %d][%s] MaWakeupEngineCmdCb Callback Invoked\\n", __LINE__, API_NAMESPACE);
+       g_CallBackHit = true;
+       gpszWakeupCmd = command;
+       return;
+}
 /*****************************************************Callback End*****************************************************/
 
 /**
@@ -548,3 +576,265 @@ int ITc_ma_send_result_p(void)
 
        return 0;
 }
+
+/**
+* @testcase                            ITc_ma_send_recognition_result_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Sends Recognition results to multi-assistant service.
+* @scenario                            Sends Recognition results to multi-assistant service.
+* @apicovered                          ma_send_recognition_result
+* @passcase                            ma_send_recognition_result returns 0
+* @failcase                            ma_send_recognition_result returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED. and MA should be prepared.
+* @postcondition                       N/A
+* */
+int ITc_ma_send_recognition_result_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+       g_CallBackHit = false;
+
+       ma_recognition_result_event_e eResult[] = {
+               MA_RECOGNITION_RESULT_EVENT_SUCCESS,
+               MA_RECOGNITION_RESULT_EVENT_EMPTY_TEXT,
+               MA_RECOGNITION_RESULT_EVENT_ERROR
+       };
+
+       nRet = ma_set_state_changed_cb(MaStateChangedCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+       nRet = ma_prepare();
+       PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+       WAIT_FOR_CALLBACK(MA_STATE_READY);
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+       int nResultSize = sizeof(eResult)/sizeof(eResult[0]);
+       for(int nResult = 0; nResult < nResultSize; nResult++)
+       {
+               nRet = ma_send_recognition_result(eResult[nResult]);
+               PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_send_recognition_result", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+       }
+
+       nRet = ma_unprepare();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+       nRet = ma_unset_state_changed_cb();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+       return 0;
+}
+
+/**
+* @testcase                            ITc_ma_set_unset_active_state_changed_cb_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Sets and unsets active state callback.
+* @scenario                            Sets and unsets active state callback.
+* @apicovered                          ma_set_active_state_changed_cb, ma_unset_active_state_changed_cb
+* @passcase                            ma_set_active_state_changed_cb, ma_unset_active_state_changed_cb returns 0
+* @failcase                            ma_set_active_state_changed_cb, ma_unset_active_state_changed_cb returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED.
+* @postcondition                       N/A
+* */
+int ITc_ma_set_unset_active_state_changed_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+
+       nRet = ma_set_active_state_changed_cb(MaActiveStateChangedCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_active_state_changed_cb", MaGetError(nRet));
+
+       nRet = ma_unset_active_state_changed_cb();
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_active_state_changed_cb", MaGetError(nRet));
+
+       return 0;
+}
+
+/**
+* @testcase                            ITc_ma_start_stop_receiving_audio_streaming_data_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Starts and Stops recieving audio streaming data.
+* @scenario                            Starts and Stops recieving audio streaming data.
+* @apicovered                          ma_start_receiving_audio_streaming_data, ma_stop_receiving_audio_streaming_data
+* @passcase                            ma_start_receiving_audio_streaming_data, ma_stop_receiving_audio_streaming_data returns 0
+* @failcase                            ma_start_receiving_audio_streaming_data, ma_stop_receiving_audio_streaming_data returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED. and MA should be prepared.
+* @postcondition                       N/A
+* */
+int ITc_ma_start_stop_receiving_audio_streaming_data_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+       g_CallBackHit = false;
+
+       ma_audio_streaming_data_type_e eDataType[] = {
+               MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE,
+               MA_AUDIO_STREAMING_DATA_TYPE_PREVIOUS_UTTERANCE,
+               MA_AUDIO_STREAMING_DATA_TYPE_FOLLOW_UP_SPEECH
+       };
+
+       nRet = ma_set_state_changed_cb(MaStateChangedCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+       nRet = ma_prepare();
+       PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+       WAIT_FOR_CALLBACK(MA_STATE_READY);
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+       int nDataSize = sizeof(eDataType)/sizeof(eDataType[0]);
+       for(int nData = 0; nData < nDataSize; nData++)
+       {
+               nRet = ma_start_receiving_audio_streaming_data(eDataType[nData]);
+               PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_start_receiving_audio_streaming_data", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+
+               nRet = ma_stop_receiving_audio_streaming_data(eDataType[nData]);
+               PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_stop_receiving_audio_streaming_data", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+       }
+
+       nRet = ma_unprepare();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+       nRet = ma_unset_state_changed_cb();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+       return 0;
+}
+
+/**
+* @testcase                            ITc_ma_update_voice_feedback_state_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Updates voice feedback state.
+* @scenario                            Updates voice feedback state.
+* @apicovered                          ma_update_voice_feedback_state
+* @passcase                            ma_update_voice_feedback_state returns 0
+* @failcase                            ma_update_voice_feedback_state returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED. and MA should be prepared.
+* @postcondition                       N/A
+* */
+int ITc_ma_update_voice_feedback_state_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+       g_CallBackHit = false;
+
+       ma_voice_feedback_state_e eFeedbackState[] = {
+               MA_VOICE_FEEDBACK_STATE_NONE,
+               MA_VOICE_FEEDBACK_STATE_STARTED
+       };
+
+       nRet = ma_set_state_changed_cb(MaStateChangedCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+       nRet = ma_prepare();
+       PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+       WAIT_FOR_CALLBACK(MA_STATE_READY);
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+       int nFeedbackSize = sizeof(eFeedbackState)/sizeof(eFeedbackState[0]);
+       for(int nFeedback = 0; nFeedback < nFeedbackSize; nFeedback++)
+       {
+               nRet = ma_update_voice_feedback_state(eFeedbackState[nFeedback]);
+               PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_update_voice_feedback_state", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+       }
+
+       nRet = ma_unprepare();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+       nRet = ma_unset_state_changed_cb();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+       return 0;
+}
+
+/**
+* @testcase                            ITc_ma_send_assistant_specific_command_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Sends assistant specific command.
+* @scenario                            Sends assistant specific command.
+* @apicovered                          ma_send_assistant_specific_command
+* @passcase                            ma_send_assistant_specific_command returns 0
+* @failcase                            ma_send_assistant_specific_command returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED. and MA should be prepared.
+* @postcondition                       N/A
+* */
+int ITc_ma_send_assistant_specific_command_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+       g_CallBackHit = false;
+       const char *pszCmd = "hello";
+
+       nRet = ma_set_state_changed_cb(MaStateChangedCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+       nRet = ma_prepare();
+       PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+       WAIT_FOR_CALLBACK(MA_STATE_READY);
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+       nRet = ma_send_assistant_specific_command(pszCmd);
+       PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_send_assistant_specific_command", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+
+       nRet = ma_unprepare();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+       nRet = ma_unset_state_changed_cb();
+       PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+       return 0;
+}
+
+
+/**
+* @testcase                            ITc_ma_set_unset_wakeup_engine_command_cb_p
+* @since_tizen                         5.5
+* @author                              SRID(j.abhishek)
+* @reviewer                            SRID(manoj.g2)
+* @type                                auto
+* @description                         Sets and unsets wakeup engine callback.
+* @scenario                            Sets and unsets wakeup engine callback.
+* @apicovered                          ma_set_wakeup_engine_command_cb, ma_unset_wakeup_engine_command_cb
+* @passcase                            ma_set_wakeup_engine_command_cb, ma_unset_wakeup_engine_command_cb returns 0
+* @failcase                            ma_set_wakeup_engine_command_cb, ma_unset_wakeup_engine_command_cb returns 1
+* @precondition                        The state should be #MA_STATE_INITIALIZED.
+* @postcondition                       N/A
+* */
+int ITc_ma_set_unset_wakeup_engine_command_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = -1;
+       void* pszData = NULL;
+
+       nRet = ma_set_wakeup_engine_command_cb(MaWakeupEngineCmdCb, pszData);
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_wakeup_engine_command_cb", MaGetError(nRet));
+
+       nRet = ma_unset_wakeup_engine_command_cb();
+       PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_wakeup_engine_command_cb", MaGetError(nRet));
+
+       return 0;
+}
index b63abf9aa700a3eb5b46ffb46bdbbc118e6daf27..3dd2876d91d98611e162b019a5ac002517a978b8 100644 (file)
@@ -32,6 +32,12 @@ extern int ITc_ma_set_unset_language_changed_cb_p(void);
 extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
 extern int ITc_ma_send_asr_result_p(void);
 extern int ITc_ma_send_result_p(void);
+extern int ITc_ma_send_recognition_result_p(void);
+extern int ITc_ma_set_unset_active_state_changed_cb_p(void);
+extern int ITc_ma_start_stop_receiving_audio_streaming_data_p(void);
+extern int ITc_ma_update_voice_feedback_state_p(void);
+extern int ITc_ma_send_assistant_specific_command_p(void);
+extern int ITc_ma_set_unset_wakeup_engine_command_cb_p(void);
 
 testcase tc_array[] = {
        {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
@@ -44,6 +50,12 @@ testcase tc_array[] = {
        {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+       {"ITc_ma_send_recognition_result_p", ITc_ma_send_recognition_result_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_active_state_changed_cb_p", ITc_ma_set_unset_active_state_changed_cb_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_start_stop_receiving_audio_streaming_data_p", ITc_ma_start_stop_receiving_audio_streaming_data_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_update_voice_feedback_state_p", ITc_ma_update_voice_feedback_state_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_send_assistant_specific_command_p", ITc_ma_send_assistant_specific_command_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_wakeup_engine_command_cb_p", ITc_ma_set_unset_wakeup_engine_command_cb_p, ITs_ma_startup, ITs_ma_cleanup},
        {NULL, NULL}
 };
 
index b63abf9aa700a3eb5b46ffb46bdbbc118e6daf27..3dd2876d91d98611e162b019a5ac002517a978b8 100644 (file)
@@ -32,6 +32,12 @@ extern int ITc_ma_set_unset_language_changed_cb_p(void);
 extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
 extern int ITc_ma_send_asr_result_p(void);
 extern int ITc_ma_send_result_p(void);
+extern int ITc_ma_send_recognition_result_p(void);
+extern int ITc_ma_set_unset_active_state_changed_cb_p(void);
+extern int ITc_ma_start_stop_receiving_audio_streaming_data_p(void);
+extern int ITc_ma_update_voice_feedback_state_p(void);
+extern int ITc_ma_send_assistant_specific_command_p(void);
+extern int ITc_ma_set_unset_wakeup_engine_command_cb_p(void);
 
 testcase tc_array[] = {
        {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
@@ -44,6 +50,12 @@ testcase tc_array[] = {
        {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+       {"ITc_ma_send_recognition_result_p", ITc_ma_send_recognition_result_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_active_state_changed_cb_p", ITc_ma_set_unset_active_state_changed_cb_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_start_stop_receiving_audio_streaming_data_p", ITc_ma_start_stop_receiving_audio_streaming_data_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_update_voice_feedback_state_p", ITc_ma_update_voice_feedback_state_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_send_assistant_specific_command_p", ITc_ma_send_assistant_specific_command_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_wakeup_engine_command_cb_p", ITc_ma_set_unset_wakeup_engine_command_cb_p, ITs_ma_startup, ITs_ma_cleanup},
        {NULL, NULL}
 };
 
index b63abf9aa700a3eb5b46ffb46bdbbc118e6daf27..3dd2876d91d98611e162b019a5ac002517a978b8 100644 (file)
@@ -32,6 +32,12 @@ extern int ITc_ma_set_unset_language_changed_cb_p(void);
 extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
 extern int ITc_ma_send_asr_result_p(void);
 extern int ITc_ma_send_result_p(void);
+extern int ITc_ma_send_recognition_result_p(void);
+extern int ITc_ma_set_unset_active_state_changed_cb_p(void);
+extern int ITc_ma_start_stop_receiving_audio_streaming_data_p(void);
+extern int ITc_ma_update_voice_feedback_state_p(void);
+extern int ITc_ma_send_assistant_specific_command_p(void);
+extern int ITc_ma_set_unset_wakeup_engine_command_cb_p(void);
 
 testcase tc_array[] = {
        {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
@@ -44,6 +50,12 @@ testcase tc_array[] = {
        {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
        {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+       {"ITc_ma_send_recognition_result_p", ITc_ma_send_recognition_result_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_active_state_changed_cb_p", ITc_ma_set_unset_active_state_changed_cb_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_start_stop_receiving_audio_streaming_data_p", ITc_ma_start_stop_receiving_audio_streaming_data_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_update_voice_feedback_state_p", ITc_ma_update_voice_feedback_state_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_send_assistant_specific_command_p", ITc_ma_send_assistant_specific_command_p, ITs_ma_startup, ITs_ma_cleanup},
+       {"ITc_ma_set_unset_wakeup_engine_command_cb_p", ITc_ma_set_unset_wakeup_engine_command_cb_p, ITs_ma_startup, ITs_ma_cleanup},
        {NULL, NULL}
 };