| /*************************************************************************/ |
| /* */ |
| /* Language Technologies Institute */ |
| /* Carnegie Mellon University */ |
| /* Copyright (c) 2008 */ |
| /* All Rights Reserved. */ |
| /* */ |
| /* Permission is hereby granted, free of charge, to use and distribute */ |
| /* this software and its documentation without restriction, including */ |
| /* without limitation the rights to use, copy, modify, merge, publish, */ |
| /* distribute, sublicense, and/or sell copies of this work, and to */ |
| /* permit persons to whom this work is furnished to do so, subject to */ |
| /* the following conditions: */ |
| /* 1. The code must retain the above copyright notice, this list of */ |
| /* conditions and the following disclaimer. */ |
| /* 2. Any modifications must be clearly marked as such. */ |
| /* 3. Original authors' names are not deleted. */ |
| /* 4. The authors' names are not used to endorse or promote products */ |
| /* derived from this software without specific prior written */ |
| /* permission. */ |
| /* */ |
| /* CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK */ |
| /* DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING */ |
| /* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT */ |
| /* SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE */ |
| /* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES */ |
| /* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN */ |
| /* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ |
| /* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF */ |
| /* THIS SOFTWARE. */ |
| /* */ |
| /*************************************************************************/ |
| |
| #ifndef __FLOWM_H_ |
| #define __FLOWM_H_ |
| |
| /* Following the program structure in Boling's Promgramming in WinCE */ |
| typedef LRESULT (*MsgDispatcher)(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| typedef struct MsgDispatch_struct |
| { |
| UINT Code; /* messages */ |
| MsgDispatcher Fxn; |
| } MsgDispatch; |
| |
| typedef LRESULT (*CMDDispatcher)(HWND h, WORD w, HWND h2, WORD w2); |
| typedef struct CMDDispatch_struct |
| { |
| UINT Code; |
| CMDDispatcher Fxn; |
| } CMDDispatch; |
| |
| /* Some globals that serve to communcate between threads */ |
| extern int flowm_play_status; |
| extern TCHAR fl_filename[257]; |
| extern int flowm_file_pos; |
| extern int flowm_file_size; |
| extern int flowm_selected_voice; |
| extern int flowm_selected_relation; |
| |
| extern HWND TTSWindow; |
| #define FL_MAX_MSG_CHARS 300 |
| extern TCHAR fl_tts_msg[FL_MAX_MSG_CHARS]; |
| extern TCHAR fl_fp_msg[FL_MAX_MSG_CHARS]; |
| |
| #define FLOWM_NUM_UTT_POS 200 |
| extern int flowm_utt_pos_pos; |
| extern int flowm_prev_utt_pos[FLOWM_NUM_UTT_POS]; |
| extern float flowm_duration; |
| |
| /* The interface to the Flite TTS system */ |
| void flowm_init(); |
| void flowm_terminate(); |
| int flowm_say_text(TCHAR *text); |
| int flowm_say_file(TCHAR *filename); |
| int flowm_save_wave(TCHAR *filename); /* save previous waveform */ |
| |
| float flowm_find_file_percentage(); |
| TCHAR *flowm_voice_name(int i); |
| |
| int InitApp (HINSTANCE h); |
| HWND InitInstance (HINSTANCE h, LPWSTR p , int i); |
| |
| #ifdef __MINGW32__ |
| /* These aren't needed in MINGW32 and give compiler warnings */ |
| #undef CALLBACK |
| #define CALLBACK |
| #undef WINAPI |
| #define WINAPI |
| #endif |
| |
| void WINAPI SystemIdleTimerReset( void); |
| |
| LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| |
| LRESULT DoCreateMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoNotifyMain (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoPaintMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoSizeMain(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
| LRESULT DoCommandMain(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
| LRESULT DoSettingChangeMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoHibernateMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoActivateMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| LRESULT DoDestroyMain(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam); |
| |
| LPARAM DoMainCommandExit(HWND hwnd,WORD idItem,HWND hwndCtl,WORD wNotifyCode); |
| LPARAM DoMainCommandAbout(HWND hwnd, WORD idItem, |
| HWND hwndCtl, WORD wNotifyCode); |
| LPARAM DoMainCommandPlay(HWND hwnd, WORD idItem,HWND hwndCtl,WORD wNotifyCode); |
| LPARAM DoMainCommandFile(HWND hwnd, WORD idItem,HWND hwndCtl,WORD wNotifyCode); |
| BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
| BOOL CALLBACK PlayDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
| BOOL CALLBACK FileDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
| |
| #define FL_TOOLBAR1 101 |
| #define FL_MAIN 102 |
| #define FL_TOOLMENU 103 |
| #define FL_ABOUTMENU 104 |
| #define FL_RPTLIST 105 |
| |
| #define FLS_TOOLMENUNAME 150 |
| #define FLS_ABOUTMENUNAME 151 |
| |
| #define FL_EXIT 201 |
| #define FL_PLAY 202 |
| #define FL_FILE 203 |
| #define FL_ABOUT 204 |
| #define FL_OPTIONS 205 |
| |
| #define FL_FILENAME 301 |
| #define FL_TEXT 302 |
| #define FL_PUSHPLAY 303 |
| #define FL_PUSHTTS 304 |
| #define FL_PUSHSTOP 305 |
| #define FL_PUSHSELECT 306 |
| #define FL_SYNTHTEXT 307 |
| #define FL_FILEPOS 308 |
| #define FL_PUSHFORWARD 309 |
| #define FL_PUSHBACK 310 |
| #define FL_BENCH 311 |
| #define FL_SCREENOFF 312 |
| #define FL_PUSHEND 313 |
| #define FL_PUSHSAVE 314 |
| |
| #define FL_VOXLIST 401 |
| #define FL_RELLIST 402 |
| #define FL_OUTPUT 403 |
| |
| #define FL_MAX_TEXTLEN 256 |
| |
| #define FLOWM_PLAY 0 |
| #define FLOWM_STOP 1 |
| #define FLOWM_SKIP 2 |
| #define FLOWM_BACKSKIP 3 |
| #define FLOWM_BENCH 4 |
| |
| #endif |