1 /* ----------------------------------------------------------------- */
2 /* The Toolkit for Building Voice Interaction Systems */
3 /* "MMDAgent" developed by MMDAgent Project Team */
4 /* http://www.mmdagent.jp/ */
5 /* ----------------------------------------------------------------- */
7 /* Copyright (c) 2009-2011 Nagoya Institute of Technology */
8 /* Department of Computer Science */
10 /* All rights reserved. */
12 /* Redistribution and use in source and binary forms, with or */
13 /* without modification, are permitted provided that the following */
14 /* conditions are met: */
16 /* - Redistributions of source code must retain the above copyright */
17 /* notice, this list of conditions and the following disclaimer. */
18 /* - Redistributions in binary form must reproduce the above */
19 /* copyright notice, this list of conditions and the following */
20 /* disclaimer in the documentation and/or other materials provided */
21 /* with the distribution. */
22 /* - Neither the name of the MMDAgent project team nor the names of */
23 /* its contributors may be used to endorse or promote products */
24 /* derived from this software without specific prior written */
27 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
28 /* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
29 /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
30 /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
31 /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS */
32 /* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, */
33 /* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
34 /* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */
35 /* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */
36 /* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
37 /* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY */
38 /* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
39 /* POSSIBILITY OF SUCH DAMAGE. */
40 /* ----------------------------------------------------------------- */
44 #define OPENJTALKMANAGER_INITIALNTHREAD 1 /* initial number of thread */
46 /* Open_JTalk_Link: thread list for Open JTalk */
47 typedef struct _Open_JTalk_Link {
48 Open_JTalk_Thread open_jtalk_thread;
49 struct _Open_JTalk_Link *next;
52 /* Open_JTalk_Event: input message buffer */
53 typedef struct _Open_JTalk_Event {
55 struct _Open_JTalk_Event *next;
58 /* Open_JTalk_EventQueue: queue of Open_JTalk_Event */
59 typedef struct _Open_JTalk_EventQueue {
60 Open_JTalk_Event *head;
61 Open_JTalk_Event *tail;
62 } Open_JTalk_EventQueue;
64 /* Open_JTalk_Manager: multi thread manager for Open JTalk */
65 class Open_JTalk_Manager
79 Open_JTalk_EventQueue m_bufferQueue;
80 Open_JTalk_Link *m_list;
85 /* initialize: initialize */
93 /* Open_JTalk_Manager: constructor */
96 /* ~Open_JTalk_Manager: destructor */
97 ~Open_JTalk_Manager();
99 /* loadAndStart: load and start thread */
100 void loadAndStart(MMDAgent *mmdagent, const char *dicDir, const char *config);
102 /* stopAndRelease: stop and release thread */
103 void stopAndRelease();
108 /* isRunning: check running */
111 /* synthesis: start synthesis */
112 void synthesis(const char *str);
114 /* stop: stop synthesis */
115 void stop(const char *str);