zmaee_tts_cache.h 1.53 KB
/***************************************************************/
/* 																	    */
/*	TTS缓存接口												    */
/*   MMI层将需要播报的文本保存到TTS缓存中,内核  */
/*	再从缓存中获取文本进行播报						    */
/*																	    */
/***************************************************************/
#ifndef __ZMAEE_TTS_CACHE_H__
#define __ZMAEE_TTS_CACHE_H__

#include "zmaee_tts_typedef.h"


// Cache Queue
typedef struct _ZMAEE_TTS_CACHE_ITEM ZMAEE_TTS_CACHE_ITEM;
struct _ZMAEE_TTS_CACHE_ITEM{
	unsigned short *ucs2_text;
	int				ucs2_len;
	char			bIsCall;
	ZMAEE_TTS_CACHE_ITEM *next;
};

typedef struct {
	int count;
	ZMAEE_TTS_CACHE_ITEM *list;
	ZMAEE_TTS_CACHE_ITEM *tail;
}ZMAEE_TTS_CACHE_QUEUE;

/**
 * 覆盖TTS缓存,清空原来所有的缓存数据,建议同步重启语音合成
 * 参数:
 * 	@ucs2Text			ucs2格式的文本
 * 	@ucs2Len			ucs2文本的字符长度
 * Return:
 * 	详见ZMAEE_TTS_RETCODE
 * 	ZMAEE_TTS_RET_NOMEMORY	内存不足,不覆盖TTS缓存
 */
ZMAEE_TTS_RETCODE zmaee_tts_cache_replace(unsigned short *ucs2Text, int ucs2Len, char bIsCall);

/**
 * 添加TTS缓存,添加到之前缓存数据的后面
 * 参数:
 * 	@ucs2Text			ucs2格式的文本
 * 	@ucs2Len			ucs2文本的字符长度
 * Return:
 * 	详见ZMAEE_TTS_RETCODE
 * 	ZMAEE_TTS_RET_NOMEMORY	内存不足,不添加到缓存中
 */
ZMAEE_TTS_RETCODE zmaee_tts_cache_append(unsigned short *ucs2Text, int ucs2Len, char bIsCall);

/**
 * 清空TTS缓存,建议同步停止语音合成
 */
void zmaee_tts_cache_clear(void);

/**
 * 查询未处理的cache个数
 * 返回:
 * 	int					cache个数
 */
int zmaee_tts_cache_get_count(void);

#endif // __ZMAEE_TTS_CACHE_H__