Megaphone.h 5.3 KB
/**
 ********************************************************************
 * @file   Megaphone_TTS.h
 *         Megaphone_TTS的头文件
 *
 *********************************************************************
 */

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef MEGAPHONE_H
#define MEGAPHONE_H

/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "Megaphone/PlayBack/Megaphone_PlayBack.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/**************
 * 
 *  喊话器结构体
 * 
 * *************/
typedef struct MegaphoneInfo
{
    int PlayStatus;
    int PlayType;  //播放类型
    unsigned char str[4000]; //播放字符串载体
    unsigned int  str_len;
}MegaphoneInfo;


typedef enum MegaphonePlayStatus
{
    AUDIO_PLAY_STATUS_IDLE = 0x00, //空闲状态
    AUDIO_PLAY_STATUS_MUSIC = 0x01, //播放歌曲
    AUDIO_PLAY_STATUS_IFLAY_TTS = 0x02, //播放讯飞文本
    ADDIO_PLAY_STATUS_ESPEAK_TTS = 0x03, //espeak文本
    AUDIO_PLAY_STATUS_OPUS_REAL_TIME = 0x04, //opus实时语音
    AUDIO_PLAY_STATUS_OPUS_RECORD = 0x05, //opus录音
    AUDIO_PLAY_STATUS_MP3_REAL_TIME = 0x06, //mp3实时语音
    AUDIO_PLAY_STATUS_MP3_RECORD = 0x07, //mp3录音喊话

}MegaphonePlayStatus;

typedef enum MegaphoneTTSParam
{
    MEGAPHONE_TTS_NORMAL_VOLUME = 0x00, //tts生成音量
    MEGAPHONE_TTS_TONE = 0x01,
    MEGAPHONE_TTS_SPEED = 0x02,
    MEGAPHONE_TTS_APPEND_TONE = 0x03,
}MegaphoneTTSParam;

// typedef enum MegaphoneAudioParam
// {
//     MEGAPHONE_AUDIO_PLAYNAME = 0x00, //获取当前播放文件对的名字
//     MEGAPHONE_AUDIO_FILENUM  = 0x01, //获取播放文件的数量
//     MEGAPHONE_AUDIO_FILENAME = 0x02, //获取播放文件的名字

// }MegaphoneAudioParam;

typedef enum MegaphoneParam
{
    MEGAPHONE_VOLUME = 0x00, //喊话器音量
    MEGAPHONE_PLAY_STATUS = 0x01, //喊话器播放状态
    MEGAPHONE_LOOP = 0x02, //喊话器循环播放状态
    MEGAPHONE_LOOP_INTERVAL = 0x03, //喊话器循环播放间隔

}MegaphoneParam;

/* Exported types ------------------------------------------------------------*/
extern struct MegaphoneInfo *g_MegaphoneInfo;


/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode Megaphone_Init();
T_JZsdkReturnCode Megaphone_TTS_Play(unsigned char *str, unsigned int str_len, int ReplyFlag);
T_JZsdkReturnCode Megaphone_TTS_param(int flagcode, enum MegaphoneTTSParam paramflag, int *value);
T_JZsdkReturnCode Megaphone_Amplifier_param(int flagcode, int *value);
T_JZsdkReturnCode Megaphone_Flush_MusicList();
T_JZsdkReturnCode Megaphone_get_music_list_sum(int *num);
T_JZsdkReturnCode Megaphone_get_music_list_name(int num,unsigned char *music_name, int *music_name_length);
T_JZsdkReturnCode Megaphone_param(int flagcode, enum MegaphoneParam paramflag, int *value);
T_JZsdkReturnCode Megaphone_get_play_FileName(unsigned char *music_name, int *music_name_length);
T_JZsdkReturnCode Megaphone_PlayAudioFile(unsigned char *name, unsigned int name_Len);
T_JZsdkReturnCode Megaphone_PlayLastSong();
T_JZsdkReturnCode Megaphone_PlayNextSong();
T_JZsdkReturnCode Megaphone_PlayContinue();
T_JZsdkReturnCode Megaphone_PlayPause();
int Megaphone_GetMegaphoneStatus();
int Megaphone_get_now_volume();
T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode);//设置音量,音量0-100,默认音量value==10。



T_JZsdkReturnCode Megaphone_StopPlay(int UnChangeFlag);
T_JZsdkReturnCode Megaphone_status_Broadcast(int status);
T_JZsdkReturnCode Megaphone_MegDataGenFlag(int order, int Flag);
T_JZsdkReturnCode Megaphone_MegDataGenFinshFlag(int order, int Flag);
T_JZsdkReturnCode Megaphone_GetMusicListMessage(unsigned char *message);


/*********
 * 
 *  audiofile.h的对外部分
 * 
 * ********/

T_JZsdkReturnCode Megaphone_SaveOpusStart(unsigned char *FileName, int decode_rate, int SampleRate, int Channels);
T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size);
T_JZsdkReturnCode Megaphone_SaveOpusStop(int checkFlag, unsigned char *CheckCode);

T_JZsdkReturnCode Megaphone_RealTimeVoice_Start(int decode_rate);
T_JZsdkReturnCode Megaphone_RealTimeVoice_Trans(char *data, int length);
T_JZsdkReturnCode Megaphone_RealTimeVoice_Close();
T_JZsdkReturnCode Megaphone_RealTimeVoice_GetStatusFlag();

T_JZsdkReturnCode Megaphone_RealTimeMP2_start();
T_JZsdkReturnCode Megaphone_RealTimeMP2_trans(unsigned char *getdata, int len);
T_JZsdkReturnCode Megaphone_RealTimeMP2_stop();

T_JZsdkReturnCode Megaphone_SaveAudioFileStart(char *FileName);
T_JZsdkReturnCode Megaphone_SaveAudioFileTrans(char *SaveData, int size);
T_JZsdkReturnCode Megaphone_Broadcast_OpusDecodeStatus(int status);
T_JZsdkReturnCode Megaphone_SaveAudioFileStop(int checkFlag, unsigned char *CheckCode);
T_JZsdkReturnCode Megaphone_Opus_PlayFixedFile();

/********
 *  
 *  开始的广播语言
 * 
 * *********/
T_JZsdkReturnCode Start_up_and_broadcast_voice();
T_JZsdkReturnCode Start_voice();

//仅模块内使用
T_JZsdkReturnCode Meg_SetVolumeFun(int volume);
int Megaphone_get_RealSetVolume();
int Megaphone_get_RealTargetVolume();
T_JZsdkReturnCode Megaphone_PrintVolume(int Value, int flag);

#ifdef __cplusplus
}
#endif

#endif