cspeechp.h
上传用户:zhaopin
上传日期:2007-01-07
资源大小:79k
文件大小:3k
源码类别:

语音合成与识别

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        cspeechp.h
  3. // Purpose: Text to speech class - private
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 07/02/98
  7. // RCS-ID: $Id$
  8. // Copyright: (c) Julian Smart
  9. // Licence: wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11. #ifndef __CSPEECHP_H__
  12. #define __CSPEECHP_H__
  13. #ifdef __MFC__
  14. #ifndef _DEBUG
  15. // #define _AFX_NOFORCE_LIBS
  16. #endif
  17. // #define  _AFX_NO_BSTR_SUPPORT
  18. #include <afxwin.h>         // MFC core and standard components
  19. #endif
  20.   // __MFC__
  21. #include <objbase.h>                    // OLE stuff
  22. #ifdef DIRECTSOUND
  23. #include <dsound.h>
  24. #endif
  25. #include "speech.h"
  26. /////////////////////////////////////////////////////////////////////////////
  27. class CSpeech;
  28. /************************************************************************
  29. Notification objects */
  30. class CTestNotify : public ITTSNotifySink {
  31.    protected:
  32.       CSpeech *m_speech;
  33.    public:
  34.       CTestNotify (CSpeech *speech);
  35.       ~CTestNotify (void);
  36.       // IUnkown members that delegate to m_punkOuter
  37.       // Non-delegating object IUnknown
  38.       STDMETHODIMP         QueryInterface (REFIID, LPVOID FAR *);
  39.       STDMETHODIMP_(ULONG) AddRef(void);
  40.       STDMETHODIMP_(ULONG) Release(void);
  41.       // ITTSNotifySink
  42. STDMETHOD (AttribChanged)  (DWORD);
  43. STDMETHOD (AudioStart)     (QWORD);
  44. STDMETHOD (AudioStop)      (QWORD);
  45. STDMETHOD (Visual)         (QWORD, CHAR, CHAR, DWORD, PTTSMOUTH);
  46.    };
  47. typedef CTestNotify * PCTestNotify;
  48. class CTestBufNotify : public ITTSBufNotifySink {
  49. private:
  50. public:
  51.       CTestBufNotify (CSpeech* speech);
  52.       ~CTestBufNotify (void);
  53.       // IUnkown members that delegate to m_punkOuter
  54.       // Non-delegating object IUnknown
  55.       STDMETHODIMP         QueryInterface (REFIID, LPVOID FAR *);
  56.       STDMETHODIMP_(ULONG) AddRef(void);
  57.       STDMETHODIMP_(ULONG) Release(void);
  58.       // ITTSNotifySink
  59.    STDMETHOD (BookMark)     (QWORD, DWORD);
  60.    STDMETHOD (TextDataDone)    (QWORD, DWORD);
  61.    STDMETHOD (TextDataStarted)   (QWORD);
  62.    STDMETHOD (WordPosition)      (QWORD, DWORD);
  63. protected:
  64.   CSpeech* m_speech;
  65. };
  66. typedef CTestBufNotify * PCTestBufNotify;
  67. class CSpeechImpl
  68. {
  69. // Construction
  70. public:
  71. CSpeechImpl(CSpeech* speech);
  72. ~CSpeechImpl();
  73. // Accessors
  74. // Get the mode GUID by index (normally won't be needed by application)
  75. inline GUID GetModeGUID(int mode) const { return m_GUIDModes[mode] ; }
  76. // Implementation
  77. public:
  78.     BOOL InitTTS(void);
  79.     BOOL TerminateTTS(void);
  80. // Variables
  81. public:
  82.     PITTSENUM  m_pITTSEnum;
  83.     PITTSCENTRAL    m_pITTSCentral;
  84.     PITTSATTRIBUTES m_pITTSAttributes;
  85.     PITTSDIALOGS m_pITTSDialogs;
  86.     PCTestNotify    m_pTestNotify;
  87.     PCTestBufNotify m_pTestBufNotify;
  88. #ifdef DIRECTSOUND
  89.     PIAUDIODIRECT   m_pIAD;
  90. #else
  91.     PIAUDIOMULTIMEDIADEVICE m_pIMMD;
  92. #endif
  93.     unsigned long   m_dwRegKey;
  94.     GUID  m_GUIDModes[100];
  95. int m_noModes;
  96. CString m_modeNames[100];
  97. long m_modeFeatures[100];
  98. CSpeech* m_speech;
  99. };
  100. // Framework-independent message box
  101. void CSpeechMessage(const CString& msg, const CString& label = "CSpeech Error");
  102. #endif