#ifndef MUSIC_H
#define MUSIC_H

#ifdef __cplusplus
extern "C" {
#endif
//#include <gdu_typedef.h>
void music_init(void);//初始化音乐
void get_music_list(void);//刷新音乐列表 
void get_recordlist(void);//刷新录音列表
void play_music(char* music_name,int datasize);//播放指定音乐,music_name文件名
void play_TTS(char* music_name[],int datasize);
void stop_music(void);//暂停音乐播放
void continue_music(void);//继续音乐播放
void last_music(void);//上一曲
void next_music(void);//下一曲
void set_mode(int mode);//设置播放模式,mode==1单曲播放。mode==2单曲循环
void set_volume(int value);//设置音量,音量0-100,默认音量value==10。
void set_ture_volume(int value);//设置绝对音量,绝对音量0-100无转换
void TTS(int name,int volume,int speed,int len,char *data);//文本播放UTF-8,name发音人默认name==1;volume合成音量默认合成音量100;speed语速默认speed==50;argv文本内容。
void TTS_mobie(int len,uint8_t* data);//文本播放Unicode
void returnframe(char* data, int datasize);//回调函数,监听播放状态
void send_quality(char* data,int datasize);//转发数据,用于直接转发数据至库
//static T_GduReturnCode GduTest_RunSystemCmd(char *systemCmdStr);//设置命令
void Protection(int mode);//用于音量保护的功能,防止声音由静音直接过大
void play_record(char* record_name,int datasize);//播放指定音乐,record_name文件名  //+
int Opus_RealTimeSpeak_AbnormalInterrupt();//实时合成异常中断

void Set_WidgePlayFlag(int flag);
int aplay_test(void);//播放实时pcm音频

int Opus_play(int8_t *cbits,int32_t len);
int Init_opus();
void Deinit_opus();
void write_loop(uint8_t *buf,int length);
int read_loop(uint8_t *buf);
void clear_loop();
static void *loop_play(void *arg);
void set_paly_state(int play_state);

void JZ_play_record(char* record_name);//道通录音播放
int JZ_loop_playback_create(void);//循环播放线程创建 
void SetSpeakerMode(uint8_t mode);//设置喊话器模式
uint8_t GetSpeakerMode(void);//获取喊话器模式
void SetTtsStatus(uint8_t status);//设置文本喊话状态
uint8_t GetTtsStatus(void);//获取文本喊话状态
void SetRecordStatus(uint8_t status);//设置录音喊话状态
uint8_t GetRecordStatus(void);//获取录音喊话状态

#ifdef __cplusplus
}
#endif

#endif //MUSIC_H