コード例 #1
0
        public AITalkResultCode SetParam(ref AITalk_TTtsParam param)
        {
            IntPtr           pParam = AITalkMarshal.TTtsParamToIntPtr(ref param);
            AITalkResultCode code   = AITalkAPI.SetParam(pParam);

            this.OnWriteLog("[AITalkAPI_SetParam] " + code);
            Marshal.FreeCoTaskMem(pParam);
            if (code == AITalkResultCode.AITALKERR_SUCCESS)
            {
                this._kanaBuf = new StringBuilder((int)param.lenTextBufBytes);
                this._waveBuf = new short[param.lenRawBufBytes / 2];
            }
            return(code);
        }
コード例 #2
0
        public AITalkResultCode GetParam(ref AITalk_TTtsParam param)
        {
            uint             num;
            AITalkResultCode code = AITalkAPI.GetParam(IntPtr.Zero, out num);

            this.OnWriteLog("[AITalkAPI_GetParam] " + code);
            if (code == AITalkResultCode.AITALKERR_INSUFFICIENT)
            {
                IntPtr ptr = Marshal.AllocCoTaskMem((int)num);
                Marshal.WriteInt32(ptr, (int)num);
                code = AITalkAPI.GetParam(ptr, out num);
                this.OnWriteLog("[AITalkAPI_GetParam] " + code);
                if (code != AITalkResultCode.AITALKERR_SUCCESS)
                {
                    Marshal.FreeCoTaskMem(ptr);
                    return(code);
                }
                param = AITalkMarshal.IntPtrToTTtsParam(ptr);
                Marshal.FreeCoTaskMem(ptr);
            }
            return(code);
        }