[Asterisk-code-review] res_speech: Add a type conversion, and new engine unregister methods (asterisk[16])
Friendly Automation
asteriskteam at digium.com
Fri Oct 22 08:15:01 CDT 2021
Friendly Automation has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/16645 )
Change subject: res_speech: Add a type conversion, and new engine unregister methods
......................................................................
res_speech: Add a type conversion, and new engine unregister methods
Add a new function that converts a speech results type to a string.
Also add another function to unregister an engine, but returns a
pointer to the unregistered engine object instead of a success/fail
integer.
Change-Id: I0f7de17cb411021c09fb03988bc2b904e1380192
---
M include/asterisk/speech.h
M res/res_speech.c
2 files changed, 29 insertions(+), 6 deletions(-)
Approvals:
Joshua Colp: Looks good to me, but someone else must approve
Sean Bright: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved
Friendly Automation: Approved for Submit
diff --git a/include/asterisk/speech.h b/include/asterisk/speech.h
index 7af7e99..681c536 100644
--- a/include/asterisk/speech.h
+++ b/include/asterisk/speech.h
@@ -47,6 +47,9 @@
AST_SPEECH_RESULTS_TYPE_NBEST,
};
+/*! \brief Convert a speech results type to a string */
+const char *ast_speech_results_type_to_string(enum ast_speech_results_type type);
+
/* Speech structure */
struct ast_speech {
/*! Structure lock */
@@ -152,6 +155,9 @@
int ast_speech_register(struct ast_speech_engine *engine);
/*! \brief Unregister a speech recognition engine */
int ast_speech_unregister(const char *engine_name);
+/*! \brief Unregister a speech recognition engine */
+struct ast_speech_engine *ast_speech_unregister2(const char *engine_name);
+
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/res/res_speech.c b/res/res_speech.c
index 57f6fa6..d425fde 100644
--- a/res/res_speech.c
+++ b/res/res_speech.c
@@ -280,6 +280,19 @@
return res;
}
+const char *ast_speech_results_type_to_string(enum ast_speech_results_type type)
+{
+ switch (type) {
+ case AST_SPEECH_RESULTS_TYPE_NORMAL:
+ return "normal";
+ case AST_SPEECH_RESULTS_TYPE_NBEST:
+ return "nbest";
+ default:
+ ast_assert(0);
+ return "unknown";
+ }
+}
+
/*! \brief Change the type of results we want */
int ast_speech_change_results_type(struct ast_speech *speech, enum ast_speech_results_type results_type)
{
@@ -322,11 +335,16 @@
/*! \brief Unregister a speech recognition engine */
int ast_speech_unregister(const char *engine_name)
{
- struct ast_speech_engine *engine = NULL;
- int res = -1;
+ return ast_speech_unregister2(engine_name) == NULL ? -1 : 0;
+}
- if (ast_strlen_zero(engine_name))
- return -1;
+struct ast_speech_engine *ast_speech_unregister2(const char *engine_name)
+{
+ struct ast_speech_engine *engine = NULL;
+
+ if (ast_strlen_zero(engine_name)) {
+ return NULL;
+ }
AST_RWLIST_WRLOCK(&engines);
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&engines, engine, list) {
@@ -339,14 +357,13 @@
}
ast_verb(2, "Unregistered speech recognition engine '%s'\n", engine_name);
/* All went well */
- res = 0;
break;
}
}
AST_RWLIST_TRAVERSE_SAFE_END;
AST_RWLIST_UNLOCK(&engines);
- return res;
+ return engine;
}
static int unload_module(void)
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/16645
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 16
Gerrit-Change-Id: I0f7de17cb411021c09fb03988bc2b904e1380192
Gerrit-Change-Number: 16645
Gerrit-PatchSet: 3
Gerrit-Owner: Kevin Harwell <kharwell at digium.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: Sean Bright <sean at seanbright.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20211022/5e8e7eb4/attachment.html>
More information about the asterisk-code-review
mailing list