diff --git a/src/services/speechprocessorproxy.cpp b/src/services/speechprocessorproxy.cpp index beaeb519673c3eef0dc55e5b816ccf0313790c71..2b614274b0a607945fb8fd40422006fd5d4a7976 100644 --- a/src/services/speechprocessorproxy.cpp +++ b/src/services/speechprocessorproxy.cpp @@ -73,7 +73,7 @@ void onRecognitionAudioResult(GDBusConnection *connection, gpointer user_data) { auto *proxy = static_cast(user_data); if (proxy->inputAudioDataCallback_ == nullptr) { - std::cout << "RecognitionAudioResult callback is nullptr"; + std::cout << "RecognitionAudioResult callback is nullptr" << std::endl; return; } proxy->inputAudioDataCallback_(recognitionResult(parameters)); @@ -88,7 +88,7 @@ void onStopRecognitionAudioResult(GDBusConnection *connection, gpointer user_data) { auto *proxy = static_cast(user_data); if (proxy->stopRecognizingAudioCallback_ == nullptr) { - std::cout << "StopRecognitionAudioResult callback is nullptr"; + std::cout << "StopRecognitionAudioResult callback is nullptr" << std::endl; return; } proxy->stopRecognizingAudioCallback_(recognitionResult(parameters)); @@ -103,7 +103,7 @@ void onRecognitionAudioOnceResult(GDBusConnection *connection, gpointer user_data) { auto *proxy = static_cast(user_data); if (proxy->recognizingCompleteAudioCallback_ == nullptr) { - std::cout << "RecognitionAudioOnceResult callback is nullptr"; + std::cout << "RecognitionAudioOnceResult callback is nullptr" << std::endl; return; } proxy->recognizingCompleteAudioCallback_(recognitionResult(parameters)); @@ -118,12 +118,27 @@ void onSynthesisAudioResult(GDBusConnection *connection, gpointer user_data) { auto *proxy = static_cast(user_data); if (proxy->inputContinuousTextCallback_ == nullptr) { - std::cout << "SynthesisAudioResult callback is nullptr"; + std::cout << "SynthesisAudioResult callback is nullptr" << std::endl; return; } proxy->inputContinuousTextCallback_(synthesisResult(parameters)); } +void onStopSynthesizingAudio(GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + gpointer user_data) { + auto *proxy = static_cast(user_data); + if (proxy->stopSynthesizingAudioCallback_ == nullptr) { + std::cout << "stopSynthesizingAudio callback is nullptr" << std::endl; + return; + } + proxy->stopSynthesizingAudioCallback_(); +} + void onSynthesisAudioOnceResult(GDBusConnection *connection, const gchar *sender_name, const gchar *object_path, @@ -133,7 +148,7 @@ void onSynthesisAudioOnceResult(GDBusConnection *connection, gpointer user_data) { auto *proxy = static_cast(user_data); if (proxy->recognizingCompleteTextCallback_ == nullptr) { - std::cout << "SynthesisAudioOnceResult callback is nullptr"; + std::cout << "SynthesisAudioOnceResult callback is nullptr" << std::endl; return; } proxy->recognizingCompleteTextCallback_(synthesisResult(parameters)); @@ -271,6 +286,10 @@ void SpeechProcessorProxy::connectSignals() { interfaceName_, "SynthesisAudioResult", objectPath_, NULL, G_DBUS_SIGNAL_FLAGS_NONE, onSynthesisAudioResult, this, nullptr); + g_dbus_connection_signal_subscribe(connection, nullptr, + interfaceName_, "StopSynthesizingAudio", objectPath_, NULL, + G_DBUS_SIGNAL_FLAGS_NONE, onStopSynthesizingAudio, this, nullptr); + g_dbus_connection_signal_subscribe(connection, nullptr, interfaceName_, "SynthesisAudioOnceResult", objectPath_, NULL, G_DBUS_SIGNAL_FLAGS_NONE, onSynthesisAudioOnceResult, this, nullptr); @@ -407,7 +426,6 @@ void SpeechProcessorProxy::onStopSynthesizingAudioCallback(AisdkSpeechProcessor printErrorMessage(error, "input_continuous_text"); return; } - proxy->stopSynthesizingAudioCallback_(); } void SpeechProcessorProxy::onRecognizingCompleteTextCallback(AisdkSpeechProcessor *delegate, diff --git a/src/services/speechprocessorproxy.h b/src/services/speechprocessorproxy.h index c91b8d46f83960825240459ee17856795a107e27..49c2e440c621b045838725c8b470d7f234a38086 100644 --- a/src/services/speechprocessorproxy.h +++ b/src/services/speechprocessorproxy.h @@ -112,6 +112,13 @@ private: const gchar *signal_name, GVariant *parameters, gpointer user_data); + friend void onStopSynthesizingAudio(GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + gpointer user_data); friend void onSynthesisAudioOnceResult(GDBusConnection *connection, const gchar *sender_name, const gchar *object_path,