From 4afa3201fe0b1a3c7120e452a91e318ee4db724b Mon Sep 17 00:00:00 2001 From: A11CF0 Date: Wed, 16 Oct 2024 12:00:27 +0300 Subject: [PATCH] Drop SSML support for now, as it is broken and incomplete anyway. --- CMakeLists.txt | 2 +- SRC/NVDA.cpp | 15 +-------------- SRC/NVDA.h | 2 +- SRC/SAPI.cpp | 2 -- SRC/SRAL.cpp | 5 +---- SRC/Util.cpp | 26 -------------------------- SRC/Util.h | 7 ------- 7 files changed, 4 insertions(+), 55 deletions(-) delete mode 100644 SRC/Util.cpp delete mode 100644 SRC/Util.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 247b963..f0d933d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ endif() project ("SRAL") add_library(${PROJECT_NAME}_obj OBJECT) target_sources(${PROJECT_NAME}_obj PRIVATE - "SRC/SRAL.cpp" "SRC/Engine.h" "SRC/Util.h" "SRC/Util.cpp") + "SRC/SRAL.cpp" "SRC/Engine.h") target_sources(${PROJECT_NAME}_obj PUBLIC FILE_SET HEADERS BASE_DIRS "${INCLUDES}" diff --git a/SRC/NVDA.cpp b/SRC/NVDA.cpp index 4aa31f9..37643c2 100644 --- a/SRC/NVDA.cpp +++ b/SRC/NVDA.cpp @@ -1,6 +1,5 @@ #include "Encoding.h" #include "NVDA.h" -#include "Util.h" #include bool NVDA::Initialize() { @@ -10,7 +9,6 @@ bool NVDA::Initialize() { nvdaController_brailleMessage = (NVDAController_brailleMessage)GetProcAddress(lib, "nvdaController_brailleMessage"); nvdaController_cancelSpeech = (NVDAController_cancelSpeech)GetProcAddress(lib, "nvdaController_cancelSpeech"); nvdaController_testIfRunning = (NVDAController_testIfRunning)GetProcAddress(lib, "nvdaController_testIfRunning"); - nvdaController_speakSsml = (NVDAController_speakSsml)GetProcAddress(lib, "nvdaController_speakSsml"); return true; } bool NVDA::Uninitialize() { @@ -20,7 +18,6 @@ bool NVDA::Uninitialize() { nvdaController_brailleMessage = nullptr; nvdaController_cancelSpeech = nullptr; nvdaController_testIfRunning = nullptr; - nvdaController_speakSsml = nullptr; return true; } bool NVDA::GetActive() { @@ -33,19 +30,9 @@ bool NVDA::Speak(const char* text, bool interrupt) { if (interrupt) nvdaController_cancelSpeech(); std::string text_str(text); - if (!IsSsml(text_str))AddSsml(text_str); - std::wstring out; UnicodeConvert(text_str, out); - error_status_t result = nvdaController_speakSsml(out.c_str(), -1, 0, true); - if (result == 0)return true; - else if (result == 1717) { - RemoveSsml(text_str); - UnicodeConvert(text_str, out); - result = nvdaController_speakText(out.c_str()); - return result == 0; - } - return false; + return nvdaController_speakText(out.c_str()) == 0; } bool NVDA::Braille(const char* text) { if (!GetActive())return false; diff --git a/SRC/NVDA.h b/SRC/NVDA.h index 2fb891c..96129ca 100644 --- a/SRC/NVDA.h +++ b/SRC/NVDA.h @@ -19,7 +19,7 @@ class NVDA : public Engine { bool Initialize()override; bool Uninitialize()override; int GetFeatures()override { - return SUPPORTS_SPEECH | SUPPORTS_BRAILLE | SUPPORTS_PAUSE_SPEECH | SUPPORTS_SSML; + return SUPPORTS_SPEECH | SUPPORTS_BRAILLE | SUPPORTS_PAUSE_SPEECH; } void SetVolume(uint64_t)override { return; } uint64_t GetVolume()override { return 0; } diff --git a/SRC/SAPI.cpp b/SRC/SAPI.cpp index 8f9fcc0..c671b12 100644 --- a/SRC/SAPI.cpp +++ b/SRC/SAPI.cpp @@ -1,6 +1,5 @@ #ifdef _WIN32 #include "SAPI.h" -#include "Util.h" #include #include #include @@ -132,7 +131,6 @@ bool SAPI::Speak(const char* text, bool interrupt) { this->Initialize(); } std::string text_str(text); - if (!IsSsml(text_str))AddSsml(text_str); unsigned long bytes; char* audio_ptr = blastspeak_speak_to_memory(instance, &bytes, text_str.c_str()); if (audio_ptr == nullptr) diff --git a/SRC/SRAL.cpp b/SRC/SRAL.cpp index fca6ee5..3453c76 100644 --- a/SRC/SRAL.cpp +++ b/SRC/SRAL.cpp @@ -1,7 +1,6 @@ #define SRAL_EXPORT #include "../Include/SRAL.h" #include "Engine.h" -#include "Util.h" #if defined(_WIN32) #define UNICODE #include "NVDA.h" @@ -367,9 +366,7 @@ extern "C" SRAL_API bool SRAL_Output(const char* text, bool interrupt) { if (g_currentEngine == nullptr)return false; speech_engine_update(); const bool speech = SRAL_Speak(text, interrupt); - std::string braille_str(text); - if (IsSsml(braille_str))RemoveSsml(braille_str); - const bool braille = SRAL_Braille(braille_str.c_str()); + const bool braille = SRAL_Braille(text); return speech || braille; } extern "C" SRAL_API bool SRAL_StopSpeech(void) { diff --git a/SRC/Util.cpp b/SRC/Util.cpp deleted file mode 100644 index ba64d1a..0000000 --- a/SRC/Util.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "Util.h" -#include -#include - - -bool IsSsml(const std::string& str) { - std::string cpy_str = str; - cpy_str.erase(std::remove_if(cpy_str.begin(), cpy_str.end(), ::isspace), cpy_str.end()); - size_t pos = cpy_str.find(""); - if (pos == 0 && cpy_str.find("") != std::string::npos) { - return true; - } - return false; -} -bool AddSsml(std::string& str) { - if (IsSsml(str))return true; - str = "" + str + ""; - return IsSsml(str); -} -bool RemoveSsml(std::string& str) { - if (!IsSsml(str))return true; - std::regex ssml_tags("<[^>]+>"); - str = std::regex_replace(str, ssml_tags, ""); // Replace SSML tags with an empty string - return true; -} - diff --git a/SRC/Util.h b/SRC/Util.h deleted file mode 100644 index de1be9e..0000000 --- a/SRC/Util.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef UTIL_H_ -#define UTIL_H_ -#include -bool IsSsml(const std::string& str); -bool AddSsml(std::string& str); -bool RemoveSsml(std::string& str); -#endif \ No newline at end of file