protected override int MyAITalkProcEventTTS(AITalkEventReasonCode reasonCode, int jobID, ulong tick, string name, IntPtr userData) { base.OnWriteLog(string.Concat(new object[] { "Callback [AITalkProcEventTTS] ", jobID, " : ", reasonCode.ToString(), " : ", tick, " : ", name, " : ", (int)userData })); TTSEventArgs e = new TTSEventArgs(tick, name); if (reasonCode == AITalkEventReasonCode.AITALKEVENT_BOOKMARK) { int num; string text = this._jobInfo.ProgressBookMark(name, out num); if (text == null) { return(0); } if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AudioEventParam item = new AudioEventParam(AudioEventCode.Bookmark, num, text, "", tick); this._jobInfo.AudioEventQueue.Enqueue(item); } this.InvokeUserEventHandler <TTSEventArgs>(new EventInVoker <TTSEventArgs>(this.OnTTSBookmark), e); } else if (reasonCode == AITalkEventReasonCode.AITALKEVENT_PH_LABEL) { if ((this.SynthMode & AITalk.SynthMode.Play) == AITalk.SynthMode.Play) { AudioEventParam param2 = new AudioEventParam(AudioEventCode.PhonemeLabel, 0, name, "", tick); this._jobInfo.AudioEventQueue.Enqueue(param2); } this.InvokeUserEventHandler <TTSEventArgs>(new EventInVoker <TTSEventArgs>(this.OnTTSPhonemeLabel), e); } return(0); }
protected override void MyAIAudioProcNotify(ulong tick, IntPtr userData) { AudioEventParam param = AudioEventParam.ToStruct(userData); AudioEventParam.Free(userData); base.OnWriteLog(string.Concat(new object[] { "Callback [AIAudioProcNotify] ", param.EventCode, " : ", tick, " : ", param.Pos, " : ", param.Text, " : ", param.Kana })); if (param.EventCode == AudioEventCode.Bookmark) { AudioEventArgs e = new AudioEventArgs(param.Pos, param.Text, param.Kana, tick); this.InvokeUserEventHandler <AudioEventArgs>(new EventInVoker <AudioEventArgs>(this.OnPlayBookmark), e); } else if (param.EventCode == AudioEventCode.PhonemeLabel) { PhonemeLabelEventArgs args2 = new PhonemeLabelEventArgs(param.Text, param.Tick); this.InvokeUserEventHandler <PhonemeLabelEventArgs>(new EventInVoker <PhonemeLabelEventArgs>(this.OnPlayPhonemeLabel), args2); } else if (param.EventCode == AudioEventCode.Sentence) { AudioEventArgs args3 = new AudioEventArgs(param.Pos, param.Text, param.Kana, tick); this.InvokeUserEventHandler <AudioEventArgs>(new EventInVoker <AudioEventArgs>(this.OnPlaySentence), args3); } else if (param.EventCode == AudioEventCode.Complete) { AudioEventArgs args4 = new AudioEventArgs(param.Pos, param.Text, param.Kana, tick); this.InvokeUserEventHandler <AudioEventArgs>(new EventInVoker <AudioEventArgs>(this.OnPlayComplete), args4); base._playing = false; } }
private void PushQueuedEvents() { while (this._jobInfo.AudioEventQueue.Count > 0) { AudioEventParam param = this._jobInfo.AudioEventQueue.Dequeue(); AIAudioResultCode errorCode = base.PushEvent(param.Tick, param.ToIntPtr()); if ((errorCode != AIAudioResultCode.AIAUDIOERR_SUCCESS) && (errorCode != AIAudioResultCode.AIAUDIOERR_NO_PLAYING)) { this.InvokeUserEventHandler <ErrorEventArgs>(new EventInVoker <ErrorEventArgs>(this.OnErrorOccured), new ErrorEventArgs("PushEvent_PushQueuedEvents", errorCode, "")); } } }