00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef ARSPEECH_H
00030 #define ARSPEECH_H
00031
00032 #include "ariaTypedefs.h"
00033 #include "ArFunctor.h"
00034
00048 class ArSpeechSynth
00049 {
00050 public:
00051
00053 ArSpeechSynth();
00054
00055 virtual ~ArSpeechSynth();
00056
00057
00061 virtual bool init(void) = 0;
00062
00063
00068 virtual bool speak(const char *str, const char* params = 0) = 0;
00069
00072 virtual bool speakf(const char* fmt, ...) = 0;
00073
00076 virtual void interrupt() = 0;
00077
00079 ArRetFunctorC<bool, ArSpeechSynth>* getInitCallback();
00080
00082 ArRetFunctor2C<bool, ArSpeechSynth, const char*, const char*>* getSpeakCallback(void) ;
00083
00084
00086 ArFunctorC<ArSpeechSynth>* getInterruptCallback();
00087
00088
00096 void setAudioCallback(ArRetFunctor2<bool, ArTypes::Byte2*, int>* cb);
00097
00098
00102 virtual void setAudioSampleRate(int rate) = 0;
00103
00104
00105 protected:
00106 ArRetFunctor2C<bool, ArSpeechSynth, const char*, const char*> mySpeakCB;
00107 ArRetFunctorC<bool, ArSpeechSynth> myInitCB;
00108 ArFunctorC<ArSpeechSynth> myInterruptCB;
00109 ArRetFunctor2<bool, ArTypes::Byte2*, int>* myAudioPlaybackCB;
00110
00111
00112 };
00113
00114
00115
00116 #endif