VXIpromptAPI.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:6k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. /****************License************************************************
  2.  * Vocalocity OpenVXI
  3.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *  
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  18.  * registered trademarks of Vocalocity, Inc. 
  19.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  20.  * by Vocalocity.
  21.  ***********************************************************************/
  22. #ifndef _VXIPROMPT_API_H
  23. #define _VXIPROMPT_API_H
  24. #include <VXIheaderPrefix.h>
  25. #include <VXIvalue.h>                  /* For VXIprompt base interface */
  26. #include <VXIlog.h>                    /* For VXIlog interface */
  27. #include <VXIinet.h>                   /* For VXIinet interface */
  28. #include <VXIcache.h>                  /* For VXIcache interface */
  29. #include <VXIprompt.h>                 /* For VXIprompt base interface */
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33. #define SIM_INPUT_TYPE   L"simulator.input.type"
  34. /**
  35.  * @name VXIprompt
  36.  * @memo VXIprompt Interface
  37.  * @doc
  38.  * VXIprompt interface, a simulator implementation of the VXIprompt abstract
  39.  * interface for Prompting functionality. Prompts are constructed as a
  40.  * series of audio segments, where segments may be in-memory audio
  41.  * samples, paths to on-disk audio files, URLs to remote audio, text
  42.  * for playback via a Text-to-Speech engine, or text for playback
  43.  * using concatenative audio routines (123 played as "1.ulaw 2.ulaw
  44.  * 3.ulaw"). This implementation merely logs what a real VXIprompt
  45.  * implementation should do to the diagnostic log. <p>
  46.  *
  47.  * There is one prompt interface per thread/line.
  48.  */
  49.   /*@{*/
  50. /**
  51.  * VXIprompt interface, extends the VXIprompt interface to add a stop for
  52.  * call method.
  53.  */
  54. typedef struct VXIpromptInterfaceEx
  55. {
  56.   /* Base interface, must be the first member */
  57.   VXIpromptInterface vxiprompt;
  58.    
  59.   /**
  60.   * Stop playing prompt
  61.   *
  62.   * VXIprompt interface provides no Stop() functionality, therefore add an API
  63.   *  extension to access the Stop() from real prompt implementation
  64.   *
  65.   * @param prompt     VXIpromptInterface pointer that will be deallocated.  
  66.   *                   
  67.   * @result VXIprompt_RESULT_SUCCESS on success 
  68.   */
  69.   VXIpromptResult (*Stop) (struct VXIpromptInterfaceEx *prompt);
  70.   /**
  71.   * Return the delta-time for simulated play.  An SSFT's extension
  72.   * that may not be needed by other platforms!  Also an illustration of
  73.   * adding extension to VXIprompt interface
  74.   *
  75.   * @param prompt     VXIpromptInterface pointer that will be deallocated.  
  76.   *
  77.   * @param delta      delta time (could be negative or positive)  
  78.   *
  79.   * @result VXIprompt_RESULT_SUCCESS on success 
  80.   */
  81.   VXIpromptResult (*GetDeltaTime) (struct VXIpromptInterfaceEx *prompt, VXIlong *delta);
  82. } VXIpromptInterfaceEx;
  83. /**
  84.  * Global platform initialization of VXIprompt
  85.  *
  86.  * @param log            VXI Logging interface used for error/diagnostic 
  87.  *                       logging, only used for the duration of this 
  88.  *                       function call
  89.  * @param diagLogBase    Base tag number for diagnostic logging purposes.
  90.  *                       All diagnostic tags for VXIprompt will start at this
  91.  *                       ID and increase upwards.
  92.  *
  93.  * @result VXIprompt_RESULT_SUCCESS on success
  94.  */
  95. VXIPROMPT_API VXIpromptResult VXIpromptInit 
  96. (
  97.   VXIlogInterface  *log,
  98. VXIunsigned       diagLogBase,
  99. const VXIVector  *resources,
  100. VXIMap           *args
  101. );
  102. /**
  103.  * Global platform shutdown of VXIprompt
  104.  *
  105.  * @param log    VXI Logging interface used for error/diagnostic logging,
  106.  *               only used for the duration of this function call
  107.  *
  108.  * @result VXIprompt_RESULT_SUCCESS on success
  109.  */
  110. VXIPROMPT_API VXIpromptResult VXIpromptShutDown (VXIlogInterface  *log);
  111. /**
  112.  * Create a new prompt service handle
  113.  *
  114.  * @param log    VXI Logging interface used for error/diagnostic logging,
  115.  *               must remain a valid pointer throughout the lifetime of
  116.  *               the resource (until VXIpromptDestroyResource( ) is called)
  117.  * @param inet   VXI Internet interface used for URL fetches,
  118.  *               must remain a valid pointer throughout the lifetime of
  119.  *               the resource (until VXIpromptDestroyResource( ) is called)
  120.  * @param prompt VXIpromptInterface pointer that will be allocated within this
  121.  *               function. Call VXIpromptDestroyResource( ) to delete the 
  122.  *               resource.
  123.  *
  124.  * @result VXIprompt_RESULT_SUCCESS on success 
  125.  */
  126. VXIPROMPT_API 
  127. VXIpromptResult VXIpromptCreateResource (
  128.   VXIlogInterface     *log,
  129.   VXIinetInterface    *inet,
  130.   VXIcacheInterface   *cache,
  131.   VXIpromptInterface **prompt);
  132. /**
  133.  * Destroy the interface and free internal resources. Once this is
  134.  *  called, the logging and Internet interfaces passed to
  135.  *  VXIpromptCreateResource( ) may be released as well.
  136.  *
  137.  * @param prompt VXIpromptInterface pointer that will be deallocated.  It will
  138.  *               be set to NULL when deallocated.
  139.  *
  140.  * @result VXIprompt_RESULT_SUCCESS on success 
  141.  */
  142. VXIPROMPT_API 
  143. VXIpromptResult VXIpromptDestroyResource (VXIpromptInterface **prompt);
  144. /*@}*/
  145. #ifdef __cplusplus
  146. }
  147. #endif
  148. #include "VXIheaderSuffix.h"
  149. #endif  /* include guard */