Ejemplo n.º 1
0
        protected void DoJob()
        {
            AITalkResultCode errorCode = AITalkResultCode.AITALKERR_SUCCESS;
            AITalkStatusCode status    = AITalkStatusCode.AITALKSTAT_DONE;

Label_0005:
            Thread.Sleep(base.GetStatusInterval);
            errorCode = base.GetStatus(this._jobInfo.JobID, out status);
            if ((errorCode != AITalkResultCode.AITALKERR_SUCCESS) || (status == AITalkStatusCode.AITALKSTAT_WRONG_STATE))
            {
                this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("GetStatus", errorCode, ""));
            }
            else if (!this._jobInfo.Aborted)
            {
                if (this._jobInfo.TextProcessingDone && (this._jobInfo.TextBlockList.Count == 0))
                {
                    if (base._playing)
                    {
                        AudioEventArgs e = new AudioEventArgs(0, "", "", 0L);
                        this.InvokeUserEventHandler <AudioEventArgs>(new EventInVoker <AudioEventArgs>(this.OnPlayComplete), e);
                        base._playing = false;
                    }
                }
                else if ((((this.SynthMode & AITalk.SynthMode.Play) != AITalk.SynthMode.Play) || base._playing) && (((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) || (status != AITalkStatusCode.AITALKSTAT_DONE)))
                {
                    goto Label_0005;
                }
            }
            if ((this.SynthMode & AITalk.SynthMode.Synthesize) != AITalk.SynthMode.Synthesize)
            {
                AITalkResultCode code3 = AITalkAPI.CloseKana(this._jobInfo.JobID, 0);
                base.OnWriteLog("[AITalkAPI_CloseKana] " + code3);
                if (code3 != AITalkResultCode.AITALKERR_SUCCESS)
                {
                    this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("CloseKana", code3, ""));
                }
            }
            else
            {
                AITalkResultCode code4 = AITalkAPI.CloseSpeech(this._jobInfo.JobID, 0);
                base.OnWriteLog("[AITalkAPI_CloseSpeech] " + code4);
                if (code4 != AITalkResultCode.AITALKERR_SUCCESS)
                {
                    this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("CloseSpeech", code4, ""));
                }
            }
            if (base._playing)
            {
                base.StopAudio();
                base._playing = false;
            }
            this._jobInfo = null;
            base._busy    = false;
            this.InvokeUserEventHandler <EventArgs>(new EventInVoker <EventArgs>(this.OnJobComplete), new EventArgs());
        }
Ejemplo n.º 2
0
        public static AITalkResultCode GetStatus(int jobID, out AITalkStatusCode status)
        {
            int num = 1;

            while (true)
            {
                AITalkResultCode code = _GetStatus(jobID, out status);
                if ((code != AITalkResultCode.AITALKERR_WAIT_TIMEOUT) || (num >= MaxTries))
                {
                    return(code);
                }
                Thread.Sleep(SleepTime);
                num++;
            }
        }
Ejemplo n.º 3
0
 private static extern AITalkResultCode _GetStatus(int jobID, out AITalkStatusCode status);
Ejemplo n.º 4
0
 public AITalkResultCode GetStatus(int jobID, out AITalkStatusCode status)
 {
     return(AITalkAPI.GetStatus(jobID, out status));
 }