From 2d6a9d02c77d7e08d4f18ee87d6e3d337b949f47 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 20 八月 2020 19:35:17 +0800 Subject: [PATCH] 坐标 --- lib/src/main/cpp/native-lib.cpp | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/src/main/cpp/native-lib.cpp b/lib/src/main/cpp/native-lib.cpp index 70aa448..5204dd3 100644 --- a/lib/src/main/cpp/native-lib.cpp +++ b/lib/src/main/cpp/native-lib.cpp @@ -3,6 +3,7 @@ #include <pthread.h> #include <unistd.h> #include <cstdlib> +#include <map> #include "common/serial_port.h" #include "jni_log.h" #include "common/net.h" @@ -34,6 +35,8 @@ static int ttsSeq = 1; static void SendBootIndicate(union sigval sig); + +static std::map<int, void (*)(int)> TTSCallBack; int DESEncrypt(const uint8_t *key, int key_length, const uint8_t *plaintext, int plaintext_length, @@ -210,7 +213,7 @@ return seq; } -int PlayTTS(const char *string) +int PlayTTS(const char *string, void (*callback)(int)) { DEBUG("PlayTTS: %s", string); @@ -242,6 +245,8 @@ LOGE("%s: DetachCurrentThread() failed", __FUNCTION__); } } + + TTSCallBack.insert(pair<int, void (*)(int)>(id, callback)); return id; } @@ -314,5 +319,17 @@ JNIEXPORT void JNICALL Java_com_anyun_exam_lib_RemoteService_TextSpeakEnd(JNIEnv *env, jobject thiz, jint id) { // TODO: implement TextSpeakEnd() - PlatformStatusChanged(PLAY_TTS_DONE_EVT, (uint8_t *)&id, sizeof(id)); + + auto it = TTSCallBack.find(id); + + if (it != TTSCallBack.end()) { + if (it->second != NULL) { + tts_back_t tb; + + tb.seq = id; + tb.callback = (void (*)(int)) it->second; + PlatformStatusChanged(PLAY_TTS_DONE_EVT, (uint8_t *)&tb, sizeof(tb)); + } + TTSCallBack.erase(it); + } } -- Gitblit v1.8.0