00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "/usr/include/kspeechsink.h"
00010
00011 #include <kdatastream.h>
00012 #include <qasciidict.h>
00013
00014
00015 static const int KSpeechSink_fhash = 17;
00016 static const char* const KSpeechSink_ftable[14][3] = {
00017 { "ASYNC", "kttsdStarted()", "kttsdStarted()" },
00018 { "ASYNC", "kttsdExiting()", "kttsdExiting()" },
00019 { "ASYNC", "markerSeen(QCString,QString)", "markerSeen(QCString appId,QString markerName)" },
00020 { "ASYNC", "sentenceStarted(QCString,uint,uint)", "sentenceStarted(QCString appId,uint jobNum,uint seq)" },
00021 { "ASYNC", "sentenceFinished(QCString,uint,uint)", "sentenceFinished(QCString appId,uint jobNum,uint seq)" },
00022 { "ASYNC", "textSet(QCString,uint)", "textSet(QCString appId,uint jobNum)" },
00023 { "ASYNC", "textAppended(QCString,uint,int)", "textAppended(QCString appId,uint jobNum,int partNum)" },
00024 { "ASYNC", "textStarted(QCString,uint)", "textStarted(QCString appId,uint jobNum)" },
00025 { "ASYNC", "textFinished(QCString,uint)", "textFinished(QCString appId,uint jobNum)" },
00026 { "ASYNC", "textStopped(QCString,uint)", "textStopped(QCString appId,uint jobNum)" },
00027 { "ASYNC", "textPaused(QCString,uint)", "textPaused(QCString appId,uint jobNum)" },
00028 { "ASYNC", "textResumed(QCString,uint)", "textResumed(QCString appId,uint jobNum)" },
00029 { "ASYNC", "textRemoved(QCString,uint)", "textRemoved(QCString appId,uint jobNum)" },
00030 { 0, 0, 0 }
00031 };
00032 static const int KSpeechSink_ftable_hiddens[13] = {
00033 0,
00034 0,
00035 0,
00036 0,
00037 0,
00038 0,
00039 0,
00040 0,
00041 0,
00042 0,
00043 0,
00044 0,
00045 0,
00046 };
00047
00048 bool KSpeechSink::process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData)
00049 {
00050 static QAsciiDict<int>* fdict = 0;
00051 if ( !fdict ) {
00052 fdict = new QAsciiDict<int>( KSpeechSink_fhash, true, false );
00053 for ( int i = 0; KSpeechSink_ftable[i][1]; i++ )
00054 fdict->insert( KSpeechSink_ftable[i][1], new int( i ) );
00055 }
00056 int* fp = fdict->find( fun );
00057 switch ( fp?*fp:-1) {
00058 case 0: {
00059 replyType = KSpeechSink_ftable[0][0];
00060 kttsdStarted( );
00061 } break;
00062 case 1: {
00063 replyType = KSpeechSink_ftable[1][0];
00064 kttsdExiting( );
00065 } break;
00066 case 2: {
00067 QCString arg0;
00068 QString arg1;
00069 QDataStream arg( data, IO_ReadOnly );
00070 if (arg.atEnd()) return false;
00071 arg >> arg0;
00072 if (arg.atEnd()) return false;
00073 arg >> arg1;
00074 replyType = KSpeechSink_ftable[2][0];
00075 markerSeen(arg0, arg1 );
00076 } break;
00077 case 3: {
00078 QCString arg0;
00079 uint arg1;
00080 uint arg2;
00081 QDataStream arg( data, IO_ReadOnly );
00082 if (arg.atEnd()) return false;
00083 arg >> arg0;
00084 if (arg.atEnd()) return false;
00085 arg >> arg1;
00086 if (arg.atEnd()) return false;
00087 arg >> arg2;
00088 replyType = KSpeechSink_ftable[3][0];
00089 sentenceStarted(arg0, arg1, arg2 );
00090 } break;
00091 case 4: {
00092 QCString arg0;
00093 uint arg1;
00094 uint arg2;
00095 QDataStream arg( data, IO_ReadOnly );
00096 if (arg.atEnd()) return false;
00097 arg >> arg0;
00098 if (arg.atEnd()) return false;
00099 arg >> arg1;
00100 if (arg.atEnd()) return false;
00101 arg >> arg2;
00102 replyType = KSpeechSink_ftable[4][0];
00103 sentenceFinished(arg0, arg1, arg2 );
00104 } break;
00105 case 5: {
00106 QCString arg0;
00107 uint arg1;
00108 QDataStream arg( data, IO_ReadOnly );
00109 if (arg.atEnd()) return false;
00110 arg >> arg0;
00111 if (arg.atEnd()) return false;
00112 arg >> arg1;
00113 replyType = KSpeechSink_ftable[5][0];
00114 textSet(arg0, arg1 );
00115 } break;
00116 case 6: {
00117 QCString arg0;
00118 uint arg1;
00119 int arg2;
00120 QDataStream arg( data, IO_ReadOnly );
00121 if (arg.atEnd()) return false;
00122 arg >> arg0;
00123 if (arg.atEnd()) return false;
00124 arg >> arg1;
00125 if (arg.atEnd()) return false;
00126 arg >> arg2;
00127 replyType = KSpeechSink_ftable[6][0];
00128 textAppended(arg0, arg1, arg2 );
00129 } break;
00130 case 7: {
00131 QCString arg0;
00132 uint arg1;
00133 QDataStream arg( data, IO_ReadOnly );
00134 if (arg.atEnd()) return false;
00135 arg >> arg0;
00136 if (arg.atEnd()) return false;
00137 arg >> arg1;
00138 replyType = KSpeechSink_ftable[7][0];
00139 textStarted(arg0, arg1 );
00140 } break;
00141 case 8: {
00142 QCString arg0;
00143 uint arg1;
00144 QDataStream arg( data, IO_ReadOnly );
00145 if (arg.atEnd()) return false;
00146 arg >> arg0;
00147 if (arg.atEnd()) return false;
00148 arg >> arg1;
00149 replyType = KSpeechSink_ftable[8][0];
00150 textFinished(arg0, arg1 );
00151 } break;
00152 case 9: {
00153 QCString arg0;
00154 uint arg1;
00155 QDataStream arg( data, IO_ReadOnly );
00156 if (arg.atEnd()) return false;
00157 arg >> arg0;
00158 if (arg.atEnd()) return false;
00159 arg >> arg1;
00160 replyType = KSpeechSink_ftable[9][0];
00161 textStopped(arg0, arg1 );
00162 } break;
00163 case 10: {
00164 QCString arg0;
00165 uint arg1;
00166 QDataStream arg( data, IO_ReadOnly );
00167 if (arg.atEnd()) return false;
00168 arg >> arg0;
00169 if (arg.atEnd()) return false;
00170 arg >> arg1;
00171 replyType = KSpeechSink_ftable[10][0];
00172 textPaused(arg0, arg1 );
00173 } break;
00174 case 11: {
00175 QCString arg0;
00176 uint arg1;
00177 QDataStream arg( data, IO_ReadOnly );
00178 if (arg.atEnd()) return false;
00179 arg >> arg0;
00180 if (arg.atEnd()) return false;
00181 arg >> arg1;
00182 replyType = KSpeechSink_ftable[11][0];
00183 textResumed(arg0, arg1 );
00184 } break;
00185 case 12: {
00186 QCString arg0;
00187 uint arg1;
00188 QDataStream arg( data, IO_ReadOnly );
00189 if (arg.atEnd()) return false;
00190 arg >> arg0;
00191 if (arg.atEnd()) return false;
00192 arg >> arg1;
00193 replyType = KSpeechSink_ftable[12][0];
00194 textRemoved(arg0, arg1 );
00195 } break;
00196 default:
00197 return DCOPObject::process( fun, data, replyType, replyData );
00198 }
00199 return true;
00200 }
00201
00202 QCStringList KSpeechSink::interfaces()
00203 {
00204 QCStringList ifaces = DCOPObject::interfaces();
00205 ifaces += "KSpeechSink";
00206 return ifaces;
00207 }
00208
00209 QCStringList KSpeechSink::functions()
00210 {
00211 QCStringList funcs = DCOPObject::functions();
00212 for ( int i = 0; KSpeechSink_ftable[i][2]; i++ ) {
00213 if (KSpeechSink_ftable_hiddens[i])
00214 continue;
00215 QCString func = KSpeechSink_ftable[i][0];
00216 func += ' ';
00217 func += KSpeechSink_ftable[i][2];
00218 funcs << func;
00219 }
00220 return funcs;
00221 }
00222
00223