return ret;
}
+bool CServiceMain::is_current_assistant(pid_t pid)
+{
+ bool ret = false;
+ const char *current_maclient_appid = NULL;
+ if (mCurrentClientInfo >= 0 && mCurrentClientInfo < MAX_MACLIENT_INFO_NUM) {
+ current_maclient_appid = mClientInfo[mCurrentClientInfo].appid;
+ pid_t pid_by_appid = mClientManager.find_client_pid_by_appid(
+ std::string{current_maclient_appid});
+ if (pid == pid_by_appid) {
+ ret = true;
+ } else {
+ MAS_LOGE("[ERROR] Current client: [%d], active client : [%d %s]",
+ pid, pid_by_appid, current_maclient_appid);
+ }
+ }
+ return ret;
+}
+
bool CServiceMain::is_current_preprocessing_assistant(const char* appid)
{
if (NULL == appid) return false;
int CServiceMain::client_send_asr_result(pid_t pid, int event, const char* asr_result)
{
MAS_LOGD("[Enter] pid(%d), event(%d), asr_result(%s)", pid, event, asr_result);
+ if (!is_current_assistant(pid)) return -1;
+
bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled();
int ret = 0;
if (ui_panel_enabled) {
const char* utterance_text, const char* result_json)
{
MAS_LOGD("[Enter] pid(%d), display_text(%s), utterance_text(%s), result_json(%s)", pid, display_text, utterance_text, result_json);
+ if (!is_current_assistant(pid)) return -1;
+
bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled();
int ret = 0;
if (ui_panel_enabled) {
int CServiceMain::client_send_recognition_result(pid_t pid, int result)
{
MAS_LOGD("[Enter] pid(%d), result(%d)", pid, result);
+ if (!is_current_assistant(pid)) return -1;
+
bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled();
int ret = 0;
if (ui_panel_enabled) {
int CServiceMain::client_start_streaming_audio_data(pid_t pid, int type)
{
MAS_LOGI("[ENTER");
+
int ret = -1;
- const char *current_maclient_appid = NULL;
- if (mCurrentClientInfo >= 0 && mCurrentClientInfo < MAX_MACLIENT_INFO_NUM) {
- current_maclient_appid = mClientInfo[mCurrentClientInfo].appid;
- pid_t pid_by_appid = mClientManager.find_client_pid_by_appid(
- std::string{current_maclient_appid});
- if (pid != pid_by_appid) {
- MAS_LOGE("[ERROR] Current client: [%d], active client : [%d %s]",
- pid, pid_by_appid, current_maclient_appid);
- return ret;
- }
- }
+ if (!is_current_assistant(pid)) return ret;
+
switch(type) {
case MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE:
ret = mServicePlugin.start_streaming_utterance_data();
int CServiceMain::client_stop_streaming_audio_data(pid_t pid, int type)
{
int ret = -1;
+ if (!is_current_assistant(pid)) return ret;
+
switch(type) {
case MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE:
ret = mServicePlugin.stop_streaming_utterance_data();
int CServiceMain::client_set_background_volume(pid_t pid, double ratio)
{
+ if (!is_current_assistant(pid)) return -1;
+
std::string pid_appid;
boost::optional<std::string> appid_by_pid = mApplicationManager.get_appid_by_pid(pid);
if (appid_by_pid) {