]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
switch_core_asr interfaces for enable_grammar, disable_grammar, and disable_all_grammars
authorLuke Dashjr <luke@openmethods.com>
Sun, 22 Aug 2010 00:43:53 +0000 (19:43 -0500)
committerLuke Dashjr <luke@openmethods.com>
Mon, 23 Aug 2010 01:20:36 +0000 (20:20 -0500)
src/include/switch_core.h
src/include/switch_module_interfaces.h
src/switch_core_asr.c

index 650ffc15fbbfb027d0ba883b26533399a54da63e..26a048cdb2f7482775825cda96fb781f8b472fed 100644 (file)
@@ -24,6 +24,7 @@
  * Contributor(s):
  * 
  * Anthony Minessale II <anthm@freeswitch.org>
+ * Luke Dashjr <luke@openmethods.com> (OpenMethods, LLC)
  *
  *
  * switch_core.h -- Core Library
@@ -1747,6 +1748,29 @@ SWITCH_DECLARE(switch_status_t) switch_core_asr_load_grammar(switch_asr_handle_t
 */
 SWITCH_DECLARE(switch_status_t) switch_core_asr_unload_grammar(switch_asr_handle_t *ah, const char *name);
 
+/*!
+  \brief Enable a grammar from an asr handle
+  \param ah the handle to enable the grammar from
+  \param name the name of the grammar to enable
+  \return SWITCH_STATUS_SUCCESS
+*/
+SWITCH_DECLARE(switch_status_t) switch_core_asr_enable_grammar(switch_asr_handle_t *ah, const char *name);
+
+/*!
+  \brief Disable a grammar from an asr handle
+  \param ah the handle to disable the grammar from
+  \param name the name of the grammar to disable
+  \return SWITCH_STATUS_SUCCESS
+*/
+SWITCH_DECLARE(switch_status_t) switch_core_asr_disable_grammar(switch_asr_handle_t *ah, const char *name);
+
+/*!
+  \brief Disable all grammars from an asr handle
+  \param ah the handle to disable the grammars from
+  \return SWITCH_STATUS_SUCCESS
+*/
+SWITCH_DECLARE(switch_status_t) switch_core_asr_disable_all_grammars(switch_asr_handle_t *ah);
+
 /*!
   \brief Pause detection on an asr handle
   \param ah the handle to pause
index 078b83d2fd052adcdbe9760efcb1616849bda900..e0119b4d150cc30a65ecd0557a0b2e9a66cb8f98 100644 (file)
@@ -24,6 +24,7 @@
  * Contributor(s):
  * 
  * Anthony Minessale II <anthm@freeswitch.org>
+ * Luke Dashjr <luke@openmethods.com> (OpenMethods, LLC)
  *
  *
  * switch_module_interfaces.h -- Module Interface Definitions
@@ -393,6 +394,12 @@ struct switch_asr_interface {
        switch_mutex_t *reflock;
        switch_loadable_module_interface_t *parent;
        struct switch_asr_interface *next;
+       /*! function to enable a grammar to the asr interface */
+       switch_status_t (*asr_enable_grammar) (switch_asr_handle_t *ah, const char *name);
+       /*! function to disable a grammar to the asr interface */
+       switch_status_t (*asr_disable_grammar) (switch_asr_handle_t *ah, const char *name);
+       /*! function to disable all grammars to the asr interface */
+       switch_status_t (*asr_disable_all_grammars) (switch_asr_handle_t *ah);
 };
 
 /*! an abstract representation of an asr speech interface. */
index fa4446ec467b631152ac6349e7f3c49346561f34..691011a2851f2b239e55475f889f6b02597356fb 100644 (file)
@@ -27,6 +27,7 @@
  * Michael Jerris <mike@jerris.com>
  * Paul D. Tinsley <pdt at jackhammer.org>
  * Christopher M. Rienzo <chris@rienzo.net>
+ * Luke Dashjr <luke@openmethods.com> (OpenMethods, LLC)
  *
  *
  * switch_core_asr.c -- Main Core Library (Speech Detection Interface)
@@ -160,6 +161,45 @@ SWITCH_DECLARE(switch_status_t) switch_core_asr_unload_grammar(switch_asr_handle
        return status;
 }
 
+SWITCH_DECLARE(switch_status_t) switch_core_asr_enable_grammar(switch_asr_handle_t *ah, const char *name)
+{
+       switch_status_t status = SWITCH_STATUS_FALSE;
+
+       switch_assert(ah != NULL);
+
+       if (ah->asr_interface->asr_enable_grammar) {
+               status = ah->asr_interface->asr_enable_grammar(ah, name);
+       }
+
+       return status;
+}
+
+SWITCH_DECLARE(switch_status_t) switch_core_asr_disable_grammar(switch_asr_handle_t *ah, const char *name)
+{
+       switch_status_t status = SWITCH_STATUS_FALSE;
+
+       switch_assert(ah != NULL);
+
+       if (ah->asr_interface->asr_disable_grammar) {
+               status = ah->asr_interface->asr_disable_grammar(ah, name);
+       }
+
+       return status;
+}
+
+SWITCH_DECLARE(switch_status_t) switch_core_asr_disable_all_grammars(switch_asr_handle_t *ah)
+{
+       switch_status_t status = SWITCH_STATUS_FALSE;
+
+       switch_assert(ah != NULL);
+
+       if (ah->asr_interface->asr_disable_all_grammars) {
+               status = ah->asr_interface->asr_disable_all_grammars(ah);
+       }
+
+       return status;
+}
+
 SWITCH_DECLARE(switch_status_t) switch_core_asr_pause(switch_asr_handle_t *ah)
 {
        switch_assert(ah != NULL);