From 35ceaca6912933e01812fb31cb4c32c3d3cec71f Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Tue, 31 Jul 2007 16:17:09 +0000 Subject: [PATCH] Add a flag to the speech API that allows an engine to set whether it received results or not. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77831 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/speech.h | 5 +++-- res/res_speech.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/asterisk/speech.h b/include/asterisk/speech.h index 3af01e614d..85e17edf2a 100644 --- a/include/asterisk/speech.h +++ b/include/asterisk/speech.h @@ -28,8 +28,9 @@ extern "C" { #endif /* Speech structure flags */ -#define AST_SPEECH_QUIET (1 << 0) /* Quiet down output... they are talking */ -#define AST_SPEECH_SPOKE (1 << 1) /* Speaker did not speak */ +#define AST_SPEECH_QUIET (1 << 0) /* Quiet down output... they are talking */ +#define AST_SPEECH_SPOKE (1 << 1) /* Speaker did not speak */ +#define AST_SPEECH_HAVE_RESULTS (1 << 2) /* Results are present */ /* Speech structure states - in order of expected change */ #define AST_SPEECH_STATE_NOT_READY 0 /* Not ready to accept audio */ diff --git a/res/res_speech.c b/res/res_speech.c index 16673538bc..73dfe8dec6 100644 --- a/res/res_speech.c +++ b/res/res_speech.c @@ -120,7 +120,7 @@ struct ast_speech_result *ast_speech_results_get(struct ast_speech *speech) { struct ast_speech_result *result = NULL; - if (speech->engine->get != NULL) { + if (speech->engine->get != NULL && ast_test_flag(speech, AST_SPEECH_HAVE_RESULTS)) { result = speech->engine->get(speech); } @@ -160,6 +160,7 @@ void ast_speech_start(struct ast_speech *speech) /* Clear any flags that may affect things */ ast_clear_flag(speech, AST_SPEECH_SPOKE); ast_clear_flag(speech, AST_SPEECH_QUIET); + ast_clear_flag(speech, AST_SPEECH_HAVE_RESULTS); /* If results are on the structure, free them since we are starting again */ if (speech->results != NULL) {