...
|
...
|
@@ -14,6 +14,8 @@ |
|
|
#include "Megaphone/Megaphone.h"
|
|
|
#include "DeviceInfo/DeviceInfo.h"
|
|
|
|
|
|
#include "CommonMod/CommonMod.h"
|
|
|
|
|
|
#include "Hal_Send/HalSend_type1/HalSend_type1.h"
|
|
|
#include "Hal_Send/HalSend.h"
|
|
|
#include "JZsdk_Hal.h"
|
...
|
...
|
@@ -21,9 +23,12 @@ |
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
#include "Megaphone/Megaphone.h"
|
|
|
#include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
|
|
|
#include "Megaphone/Opus/Megaphone_Opus.h"
|
|
|
#include "Megaphone/PcmAudio/PcmAudioFile.h"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
static int HalRecvMode = JZ_FLAGCODE_OFF;
|
|
|
static int HalRecvMode = JZ_FLAGCODE_OFF; //接收模式,主要是为了限制不同设备同时要求hal层做出 同一个数据接收相关功能 ,目前做法是只限定一个hal设备使用一种数据接收模式
|
|
|
static int HalRecvDataLen = 0; //用于计算接收数据长度
|
|
|
|
|
|
static int SecondaryDeviceName = 0x00; // 从设备名,用于多设备相连时通知控制端 从机设备名
|
...
|
...
|
@@ -33,7 +38,7 @@ static int TTS_RecvBufferLen = 0; |
|
|
|
|
|
static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(int Port, int value);
|
|
|
static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_UartTransmodeDecide();
|
|
|
|
|
|
static T_JZsdkMutexHandle GetMusicList_MutexHandle = NULL;
|
|
|
|
|
|
/********************************************************************************************************
|
|
|
********* ********|
|
...
|
...
|
@@ -74,6 +79,10 @@ static T_JZsdkReturnCode RecvDeal_AskForConnect(int Port, char *getbuf) |
|
|
Main_WorkModeSet(JZ_FLAGCODE_ON);
|
|
|
}
|
|
|
|
|
|
//5、打开连接状态
|
|
|
s_JZsdk_Hal_Info *HalInfo = JZsdk_Hal_GetHalInfo();
|
|
|
HalInfo->HalPort[Port].ConnectStatus = JZ_FLAGCODE_ON;
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -90,10 +99,28 @@ static T_JZsdkReturnCode RecvDeal_HeartBeat(int Port, char *getbuf) |
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//1、获取连接情况
|
|
|
int status = Main_WorkModeSet(JZ_FLAGCODE_GET);
|
|
|
s_JZsdk_Hal_Info *halInfo = JZsdk_Hal_GetHalInfo();
|
|
|
|
|
|
//分析模式
|
|
|
int mode = getbuf[9];
|
|
|
if (mode == 0x00)
|
|
|
{
|
|
|
//2、回复心跳帧
|
|
|
HalSend_type1Send_Send_HeartBeatStatus(Port, FrameSequence, status);
|
|
|
HalSend_type1Send_Send_HeartBeatStatus(Port, FrameSequence, halInfo->HalPort[Port].ConnectStatus);
|
|
|
}
|
|
|
else if (mode == 0x01 || mode == 0x02)
|
|
|
{
|
|
|
if(mode == 0x01)
|
|
|
{
|
|
|
halInfo->HalPort[Port].HeartBeatStatusSend = JZ_FLAGCODE_ON;
|
|
|
}
|
|
|
else if (mode == 0x02)
|
|
|
{
|
|
|
halInfo->HalPort[Port].HeartBeatStatusSend = JZ_FLAGCODE_OFF;
|
|
|
}
|
|
|
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -105,43 +132,50 @@ static T_JZsdkReturnCode RecvDeal_HeartBeat(int Port, char *getbuf) |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_GetAllVersion(int Port, unsigned char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("获取所有版本号,获取指令为%x", getbuf[9]);
|
|
|
JZSDK_LOG_INFO("获取所有版本号 %s", JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取所有设备名
|
|
|
unsigned int DeviceNum = 0;
|
|
|
unsigned int DeviceID[10][2];
|
|
|
DeviceInfo_GetAllDeviceName(&DeviceNum, DeviceID);
|
|
|
|
|
|
//获取所有设备号
|
|
|
//获取设备数量
|
|
|
int DeviceNum = 0;
|
|
|
DeviceNum = DeviceInfo_GetDeviceInfoNum();
|
|
|
|
|
|
//获取设备信息
|
|
|
T_DeviceInfo DeviceInfo;
|
|
|
|
|
|
if (getbuf[9] == 0x01)
|
|
|
{
|
|
|
for (int i = 0; i < DeviceNum ; i++)
|
|
|
for (int i = 0; i < DeviceNum; i++)
|
|
|
{
|
|
|
unsigned int MajorVersion;
|
|
|
unsigned int MinjorVersion;
|
|
|
unsigned int ModifyVersion;
|
|
|
unsigned int DebugVersion;
|
|
|
DeviceInfo_GetAllVerision(DeviceID[i][1], &MajorVersion, &MinjorVersion, &ModifyVersion, &DebugVersion);
|
|
|
HalSend_type1Send_SendAllVersion(Port, FrameSequence, DeviceID[i][1] ,MajorVersion, MinjorVersion, ModifyVersion, DebugVersion);
|
|
|
DeviceInfo_GetDeviceInfo(i, &DeviceInfo);
|
|
|
HalSend_type1Send_SendAllVersion(Port, FrameSequence,
|
|
|
DeviceInfo.DeviceID,
|
|
|
DeviceInfo.MajorVersion,
|
|
|
DeviceInfo.MinjorVersion,
|
|
|
DeviceInfo.ModifyVersion,
|
|
|
DeviceInfo.DebugVersion);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取所有设备号
|
|
|
else if (getbuf[9] == 0x00)
|
|
|
{
|
|
|
unsigned int MajorVersion;
|
|
|
unsigned int MinjorVersion;
|
|
|
unsigned int ModifyVersion;
|
|
|
unsigned int DebugVersion;
|
|
|
DeviceInfo_GetAllVerision(DEVICE_PSDK, &MajorVersion, &MinjorVersion, &ModifyVersion, &DebugVersion);
|
|
|
HalSend_type1Send_SendAllVersion(Port, FrameSequence, DEVICE_PSDK ,MajorVersion, MinjorVersion, ModifyVersion, DebugVersion);
|
|
|
DeviceInfo_GetDeviceInfo(0, &DeviceInfo);
|
|
|
HalSend_type1Send_SendAllVersion(Port, FrameSequence,
|
|
|
DeviceInfo.DeviceID,
|
|
|
DeviceInfo.MajorVersion,
|
|
|
DeviceInfo.MinjorVersion,
|
|
|
DeviceInfo.ModifyVersion,
|
|
|
DeviceInfo.DebugVersion);
|
|
|
}
|
|
|
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 获取所有序列号
|
...
|
...
|
@@ -154,35 +188,38 @@ static T_JZsdkReturnCode RecvDeal_GetAllSerialNumber(int Port, unsigned char *ge |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取所有设备名
|
|
|
unsigned int DeviceNum = 0;
|
|
|
unsigned int DeviceID[10][2];
|
|
|
DeviceInfo_GetAllDeviceName(&DeviceNum, DeviceID);
|
|
|
//获取设备数量
|
|
|
int DeviceNum = 0;
|
|
|
DeviceNum = DeviceInfo_GetDeviceInfoNum();
|
|
|
|
|
|
//获取设备信息
|
|
|
T_DeviceInfo DeviceInfo;
|
|
|
|
|
|
//获取所有设备号
|
|
|
if (getbuf[9] == 0x01)
|
|
|
{
|
|
|
for (int i = 0; i < DeviceNum ; i++)
|
|
|
for (int i = 0; i < DeviceNum; i++)
|
|
|
{
|
|
|
unsigned char SerialNumber[40];
|
|
|
int SerialNumberLen = 0;
|
|
|
DeviceInfo_GetAllSerialNumber(DeviceID[i][1], SerialNumber, &SerialNumberLen);
|
|
|
HalSend_type1Send_SendAllSerialNumber(Port, FrameSequence, DeviceID[i][1], SerialNumber, SerialNumberLen);
|
|
|
DeviceInfo_GetDeviceInfo(i, &DeviceInfo);
|
|
|
HalSend_type1Send_SendAllSerialNumber(Port, FrameSequence,
|
|
|
DeviceInfo.DeviceID,
|
|
|
DeviceInfo.SerialNumber,
|
|
|
strlen(DeviceInfo.SerialNumber));
|
|
|
}
|
|
|
}
|
|
|
//获取所有设备号
|
|
|
else if (getbuf[9] == 0x00)
|
|
|
{
|
|
|
unsigned char SerialNumber[40];
|
|
|
int SerialNumberLen = 0;
|
|
|
DeviceInfo_GetAllSerialNumber(DEVICE_PSDK, SerialNumber, &SerialNumberLen);
|
|
|
HalSend_type1Send_SendAllSerialNumber(Port, FrameSequence, DEVICE_PSDK, SerialNumber, SerialNumberLen);
|
|
|
DeviceInfo_GetDeviceInfo(0, &DeviceInfo);
|
|
|
HalSend_type1Send_SendAllSerialNumber(Port, FrameSequence,
|
|
|
DeviceInfo.DeviceID,
|
|
|
DeviceInfo.SerialNumber,
|
|
|
strlen(DeviceInfo.SerialNumber));
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* log信息打印
|
...
|
...
|
@@ -213,6 +250,52 @@ static T_JZsdkReturnCode RecvDeal_LogMessagePrintf(int Port, unsigned char *getb |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 预设任务
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_PresetTask(int Port, unsigned char *getbuf)
|
|
|
{
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,预设任务 :%d",JZsdk_DefineCode_GetPortName(Port), getbuf[9]);
|
|
|
|
|
|
//获取帧序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取任务内容
|
|
|
int Mode = getbuf[9];
|
|
|
|
|
|
if (Mode == 0)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("关闭预设任务");
|
|
|
|
|
|
PrsetTask_SetPrsetTaskFlag(JZ_FLAGCODE_OFF);
|
|
|
PrsetTask_SetPrsetTaskSaveContentFlag(JZ_FLAGCODE_OFF);
|
|
|
}
|
|
|
else if (Mode == 1)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("开启预设任务");
|
|
|
|
|
|
PrsetTask_SetPrsetTaskFlag(JZ_FLAGCODE_ON);
|
|
|
PrsetTask_SetPrsetTaskSaveContentFlag(JZ_FLAGCODE_ON);
|
|
|
}
|
|
|
else if (Mode == 0x10)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("获取预设任务状态");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
int Flag = PrsetTask_GetPrsetTaskFlag();
|
|
|
|
|
|
//回复预设任务
|
|
|
HalSend_type1Send_PresetTaskStatus(Port, FrameSequence, Flag);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
/*********
|
|
|
*
|
...
|
...
|
@@ -449,20 +532,13 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_stop(int Port, char *getbuf) |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbuf, int len)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,开始传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("开始传输的音频文件保存失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、处理帧长度,获取文件名长度
|
|
|
int FileNameLen = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9;
|
|
|
|
...
|
...
|
@@ -475,21 +551,16 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu |
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
ret = Megaphone_SaveAudioFileStart(FileName);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//3、调整接收模式为音频文件传输
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_AUDIO_FILE);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
//4、回复操作成功
|
|
|
#endif
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
#else
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
...
|
...
|
@@ -502,7 +573,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, char *getbuf, int len)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
...
|
...
|
@@ -515,21 +586,21 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("%s, 传输mp2文件未开始,无法传输", JZsdk_DefineCode_GetPortName(Port));
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
HalRecvDataLen += DataLen;
|
|
|
//JZSDK_LOG_DEBUG("%s,传输定长音频文件中 ,一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port), HalRecvDataLen);
|
|
|
|
|
|
//传输数据接口
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_SaveAudioFileTrans(getbuf+9, DataLen);
|
|
|
ret = Megaphone_SaveAudioFileTrans(getbuf+9, DataLen);
|
|
|
#endif
|
|
|
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//无操作
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -541,31 +612,28 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//1、保存音频数据
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_SaveAudioFileStop(JZ_FLAGCODE_OFF, NULL);
|
|
|
ret = Megaphone_SaveAudioFileStop(JZ_FLAGCODE_OFF, NULL);
|
|
|
#endif
|
|
|
|
|
|
//3、调整接收模式为音频文件传输
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF);
|
|
|
JZSDK_LOG_INFO("一共传输了%d字节", HalRecvDataLen);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
//2、回复操作成功
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//4、回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//4、回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -585,14 +653,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
unsigned char checkCode[128];
|
|
|
int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4];
|
|
|
int CodeLenth = frameLenth - 10 - 2;
|
...
|
...
|
@@ -649,11 +709,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch |
|
|
}
|
|
|
#endif
|
|
|
|
|
|
//调整接收模式为音频文件传输
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF);
|
|
|
JZSDK_LOG_INFO("一共传输了%d字节", HalRecvDataLen);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -708,15 +763,24 @@ static T_JZsdkReturnCode RecvDeal_audio_PlayFile(int Port, char *getbuf) |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_audio_PlayContinue(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,音频继续播放",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
UIcontrol_ContinuePlayAudio(Port);
|
|
|
|
|
|
ret = UIcontrol_ContinuePlayAudio(Port);
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -814,6 +878,13 @@ static T_JZsdkReturnCode RecvDeal_audio_NextSong(int Port, char *getbuf) |
|
|
static T_JZsdkReturnCode RecvDeal_audio_GetMusicList(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
T_JZsdkOsalHandler *OsalHandler = JZsdk_Platform_GetOsalHandler();
|
|
|
if (GetMusicList_MutexHandle == NULL)
|
|
|
{
|
|
|
OsalHandler->MutexCreate(&GetMusicList_MutexHandle);
|
|
|
}
|
|
|
|
|
|
OsalHandler->MutexLock(GetMusicList_MutexHandle);
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,获取音乐列表",JZsdk_DefineCode_GetPortName(Port));
|
|
|
int music_sum = 0;
|
...
|
...
|
@@ -824,7 +895,12 @@ static T_JZsdkReturnCode RecvDeal_audio_GetMusicList(int Port, char *getbuf) |
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
//刷新歌曲列表
|
|
|
Megaphone_Flush_MusicList();
|
|
|
ret = Megaphone_Flush_MusicList();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//解析获取的类型
|
|
|
int type = getbuf[9];
|
...
|
...
|
@@ -945,6 +1021,8 @@ static T_JZsdkReturnCode RecvDeal_audio_GetMusicList(int Port, char *getbuf) |
|
|
|
|
|
#endif
|
|
|
|
|
|
OsalHandler->MutexUnlock(GetMusicList_MutexHandle);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -1347,19 +1425,19 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_SoftwareVersion(int Port, char *ge |
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
char majorVersion;
|
|
|
char minorVersion;
|
|
|
char MinjorVersion;
|
|
|
char modifyVersion;
|
|
|
char debugVersion;
|
|
|
|
|
|
//1、获取版本号
|
|
|
majorVersion = MAJOR_VERSION;
|
|
|
minorVersion = MINOR_VERSION;
|
|
|
MinjorVersion = MINOR_VERSION;
|
|
|
modifyVersion = MODIFY_VERSION;
|
|
|
debugVersion = DEBUG_VERSION;
|
|
|
JZSDK_LOG_INFO("当前的软件版本号为:%2x, %2x, %2x, %2x",majorVersion, minorVersion, modifyVersion, debugVersion);
|
|
|
JZSDK_LOG_INFO("当前的软件版本号为:%2x, %2x, %2x, %2x",majorVersion, MinjorVersion, modifyVersion, debugVersion);
|
|
|
|
|
|
//2、发送版本号
|
|
|
HalSend_type1Send_Reply_SoftVersion(Port, majorVersion, minorVersion, modifyVersion, debugVersion);
|
|
|
HalSend_type1Send_Reply_SoftVersion(Port, majorVersion, MinjorVersion, modifyVersion, debugVersion);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -1563,10 +1641,13 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) |
|
|
FileName[FileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//3、拼接指令
|
|
|
char cmd[512];
|
|
|
snprintf(cmd, 512 ,"rm /root/sdcard/audio/%s", FileName);
|
|
|
char FilePath[512];
|
|
|
snprintf(FilePath, 512 ,"/root/sdcard/audio/%s", FileName);
|
|
|
|
|
|
JZsdk_RunSystemCmd(cmd);
|
|
|
//4、删除文件
|
|
|
JZsdk_Osal_delete(FilePath);
|
|
|
|
|
|
JZsdk_Sync();
|
|
|
|
|
|
//4、刷新歌曲列表
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
...
|
...
|
@@ -1581,13 +1662,13 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) |
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 删除录音
|
|
|
* 删除pcm文件
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,删除录音操作",JZsdk_DefineCode_GetPortName(Port));
|
|
|
JZSDK_LOG_INFO("%s,删除pcm文件操作",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
...
|
...
|
@@ -1597,19 +1678,22 @@ static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf) |
|
|
FileName_Length = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9;
|
|
|
|
|
|
//2、获取名字
|
|
|
char FileName[256];
|
|
|
char FileName[JZSDK_FILE_NAME_SIZE_MAX];
|
|
|
memcpy(FileName, &getbuf[9], FileName_Length);
|
|
|
FileName[FileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//3、拼接指令
|
|
|
char cmd[512];
|
|
|
snprintf(cmd, 512 ,"rm /root/sdcard/audio/%s", FileName);
|
|
|
char FilePath[512];
|
|
|
snprintf(FilePath, 512 ,"/root/sdcard/pcm/%s", FileName);
|
|
|
|
|
|
JZsdk_RunSystemCmd(cmd);
|
|
|
//4、删除文件
|
|
|
JZsdk_Osal_delete(FilePath);
|
|
|
|
|
|
JZsdk_Sync();
|
|
|
|
|
|
//4、刷新歌曲列表
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_Flush_MusicList();
|
|
|
PcmFile_FlushList();
|
|
|
#endif
|
|
|
|
|
|
//回复操作成功
|
...
|
...
|
@@ -1629,6 +1713,128 @@ static T_JZsdkReturnCode RecvDeal_Delete_VideoRecord() |
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 音频重命名
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Rename_Audio(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,音频重命名",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取总帧长度
|
|
|
int FrameLength = JZsdk_Get_FrameLength(getbuf);
|
|
|
|
|
|
//获取原文件长度
|
|
|
int OldFileName_Length = getbuf[9];
|
|
|
|
|
|
//获取新文件长度
|
|
|
int NewFileName_Length = getbuf[10 + OldFileName_Length];
|
|
|
|
|
|
//获取原文件名字
|
|
|
unsigned char OldFileName[128];
|
|
|
memcpy(OldFileName, &getbuf[9], OldFileName_Length);
|
|
|
OldFileName[OldFileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//获取新文件名字
|
|
|
unsigned char NewFileName[128];
|
|
|
memcpy(NewFileName, &getbuf[10 + OldFileName_Length], NewFileName_Length);
|
|
|
NewFileName[NewFileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//3、拼接出地址
|
|
|
char OldFilePath[JZSDK_FILE_PATH_SIZE_MAX];
|
|
|
snprintf(OldFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/audio/%s", OldFileName);
|
|
|
|
|
|
char NewFilePath[JZSDK_FILE_PATH_SIZE_MAX];
|
|
|
snprintf(NewFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/audio/%s", NewFileName);
|
|
|
|
|
|
JZsdk_Osal_Rename(OldFilePath, NewFilePath);
|
|
|
|
|
|
JZsdk_Sync();
|
|
|
|
|
|
//4、刷新歌曲列表
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_Flush_MusicList();
|
|
|
#endif
|
|
|
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 录音重命名
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Rename_VoiceRecord(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,音频重命名",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取总帧长度
|
|
|
int FrameLength = JZsdk_Get_FrameLength(getbuf);
|
|
|
|
|
|
//获取原文件长度
|
|
|
int OldFileName_Length = getbuf[9];
|
|
|
|
|
|
//获取新文件长度
|
|
|
int NewFileName_Length = getbuf[10 + OldFileName_Length];
|
|
|
|
|
|
//获取原文件名字
|
|
|
unsigned char OldFileName[128];
|
|
|
memcpy(OldFileName, &getbuf[9], OldFileName_Length);
|
|
|
OldFileName[OldFileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//获取新文件名字
|
|
|
unsigned char NewFileName[128];
|
|
|
memcpy(NewFileName, &getbuf[10 + OldFileName_Length], NewFileName_Length);
|
|
|
NewFileName[NewFileName_Length] = '\0'; // 确保文件名以null结尾
|
|
|
|
|
|
//3、拼接出地址
|
|
|
char OldFilePath[JZSDK_FILE_PATH_SIZE_MAX];
|
|
|
snprintf(OldFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/pcm/%s", OldFileName);
|
|
|
|
|
|
char NewFilePath[JZSDK_FILE_PATH_SIZE_MAX];
|
|
|
snprintf(NewFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/pcm/%s", NewFileName);
|
|
|
|
|
|
JZsdk_Osal_Rename(OldFilePath, NewFilePath);
|
|
|
|
|
|
JZsdk_Sync();
|
|
|
|
|
|
//4、刷新歌曲列表
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
PcmFile_FlushList();
|
|
|
#endif
|
|
|
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 删除视频
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Rename_VideoRecord()
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* tts设置音色
|
...
|
...
|
@@ -1840,69 +2046,256 @@ static T_JZsdkReturnCode RecvDeal_TTS_Trans_stop(int Port, char *getbuf) |
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 打开opus传输
|
|
|
* 播放时间回传
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf)
|
|
|
static T_JZsdkReturnCode RecvDeal_Current_Play_Time(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,打开opus传输",JZsdk_DefineCode_GetPortName(Port));
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,设置播放时间回传",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
//获取帧操作
|
|
|
int Mode = getbuf[9];
|
|
|
|
|
|
JZSDK_LOG_INFO("设置播放回传模式:%d", Mode);
|
|
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
//如果是0 或者 1 是关闭或打开回传模式
|
|
|
if (Mode == JZ_FLAGCODE_OFF || Mode == JZ_FLAGCODE_ON)
|
|
|
{
|
|
|
ret = Megaphone_PlayBackSet(Port, Mode);
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("打开opus传输失败, 已开启其他传输模式");
|
|
|
return ret;
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//1、获取解码比特率
|
|
|
int decode_rate = getbuf[9] * 8000;
|
|
|
if(decode_rate == 0)
|
|
|
//如果是2,则主动索取
|
|
|
if (Mode == 2)
|
|
|
{
|
|
|
decode_rate = 16000;
|
|
|
ret = Megaphone_PlayBackTimeGet(Port);
|
|
|
}
|
|
|
|
|
|
//2、创建存储文件
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_SaveOpusStart(decode_rate);
|
|
|
#endif
|
|
|
|
|
|
//3、修改接收模式为传输opus
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_OPUS_FILE);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* opus定长传输文件
|
|
|
* 获取播放时间回传模式
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *getbuf, int size)
|
|
|
static T_JZsdkReturnCode RecvDeal_CheckStatus_CurrentPlayTime(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,获取播放时间回传模式",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
int mode = Megaphone_PlayBackGetMode(Port);
|
|
|
HalSend_type1Send_Reply_CurrentPlayTimeStatus(Port, mode);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 打开opus传输
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,打开opus传输1型",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE)
|
|
|
//1、获取解码比特率
|
|
|
int decode_rate = getbuf[9] * 8000;
|
|
|
if(decode_rate == 0)
|
|
|
{
|
|
|
decode_rate = 16000;
|
|
|
}
|
|
|
|
|
|
//2、创建存储文件
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
ret = Megaphone_SaveOpusStart(NULL, decode_rate, 16000, 1);
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("%s,不处于opus传输模式,无法接收opus定长音频文件",JZsdk_DefineCode_GetPortName(Port));
|
|
|
JZSDK_LOG_ERROR("opus忙碌中");
|
|
|
}
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("opus创建失败");
|
|
|
}
|
|
|
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
#else
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持opus传输");
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 打开opus传输Ⅱ型
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_start_2(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,打开opus传输1型",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//获取帧的长度
|
|
|
int FrameLen = JZsdk_Get_FrameLength(getbuf);
|
|
|
|
|
|
//获取存储模式
|
|
|
int SaveMode = getbuf[9];
|
|
|
|
|
|
//获取比特率
|
|
|
int BitChoose = getbuf[10];
|
|
|
int decode_rate = 16000;
|
|
|
// if (BitChoose == 0)
|
|
|
// {
|
|
|
// decode_rate = 16000;
|
|
|
// }
|
|
|
|
|
|
//获取采样率
|
|
|
int SampleChoose = getbuf[11];
|
|
|
int SampleRate = 16000;
|
|
|
// if (SampleChoose == 0)
|
|
|
// {
|
|
|
// SampleRate = 16000;
|
|
|
// }
|
|
|
|
|
|
//获取频道数
|
|
|
int ChannelChoose = getbuf[12];
|
|
|
int ChannelNum = 1;
|
|
|
// if (ChannelChoose == 0)
|
|
|
// {
|
|
|
// ChannelNum = 1;
|
|
|
// }
|
|
|
|
|
|
//获取文件名长度
|
|
|
int FileNameLen = getbuf[13];
|
|
|
if(FileNameLen != FrameLen - 14 - 2)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("文件名长度错误");
|
|
|
FileNameLen = FrameLen - 14 - 2;
|
|
|
}
|
|
|
|
|
|
if (FileNameLen > 128)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("文件名长度过长");
|
|
|
FileNameLen = 128;
|
|
|
}
|
|
|
|
|
|
//获取文件名
|
|
|
unsigned char FileName[128] = {0};
|
|
|
memcpy(FileName, getbuf + 14, FileNameLen);
|
|
|
|
|
|
//2、创建存储文件
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
if (SaveMode == JZ_FLAGCODE_OFF)
|
|
|
{
|
|
|
ret = Megaphone_SaveOpusStart(NULL, decode_rate, SampleRate, ChannelNum);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
ret = Megaphone_SaveOpusStart(FileName, decode_rate, SampleRate, ChannelNum);
|
|
|
}
|
|
|
|
|
|
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("opus忙碌中");
|
|
|
}
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("opus创建失败");
|
|
|
}
|
|
|
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
#else
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持opus传输");
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* opus定长传输文件
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *getbuf, int size)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//提取出数据
|
|
|
int DataLen = ((int)getbuf[3] << 8 ) + (int)getbuf[4] - 2 - 9;
|
...
|
...
|
@@ -1912,12 +2305,20 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
HalRecvDataLen += DataLen;
|
|
|
JZSDK_LOG_DEBUG("%s,传输opus定长音频文件中 一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port),HalRecvDataLen);
|
|
|
|
|
|
//传输数据接口
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_SaveOpusTrans(getbuf+9, DataLen);
|
|
|
ret = Megaphone_SaveOpusTrans(getbuf+9, DataLen);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
#else
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持opus传输");
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
#endif
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
...
|
...
|
@@ -1932,30 +2333,35 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusTrans_stop(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,结束opus传输",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE)
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
ret = Megaphone_SaveOpusStop(JZ_FLAGCODE_OFF, NULL);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭opus结束传输失败,opus结束传输未开始,无法关闭");
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_SaveOpusStop(JZ_FLAGCODE_OFF, NULL);
|
|
|
#endif
|
|
|
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF);
|
|
|
JZSDK_LOG_INFO("一共传输了 %d字节\n",HalRecvDataLen);
|
|
|
HalRecvDataLen = 0;
|
|
|
#else
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持opus传输");
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
#endif
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -1976,13 +2382,6 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
unsigned char checkCode[128];
|
|
|
int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4];
|
...
|
...
|
@@ -2036,17 +2435,15 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu |
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
#else
|
|
|
ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持opus传输");
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
#endif
|
|
|
|
|
|
//3、调整接收模式为音频文件传输
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF);
|
|
|
JZSDK_LOG_INFO("一共传输了 %d字节\n",HalRecvDataLen);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* opus播放
|
...
|
...
|
@@ -2055,30 +2452,36 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,opus播放",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
//获取是否处于opus传输中的模式
|
|
|
if (OpusFile_GetSaveFlag() == JZ_FLAGCODE_ON)
|
|
|
{
|
|
|
JZSDK_LOG_ERROR("禁止播放opus,当前正处于录入中");
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("opus播放失败,存在传输模式打开中");
|
|
|
return ret;
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
UIcontrol_Opus_PlayFixedFile(Port);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 开启opus实时喊话 功能
|
...
|
...
|
@@ -2087,24 +2490,13 @@ static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf) |
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,开启opus实时喊话功能",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("开启opus实时喊话失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、修改接收模式
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS);
|
|
|
HalRecvDataLen = 0;
|
|
|
|
|
|
//2、获取码率倍率 默认8k*1倍
|
|
|
int RateMagnification = (int)getbuf[9];
|
|
|
int Rate;
|
...
|
...
|
@@ -2120,11 +2512,17 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu |
|
|
|
|
|
//3、打开实时语音模式
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
Megaphone_RealTimeVoice_Start(Rate);
|
|
|
ret = Megaphone_RealTimeVoice_Start(Rate);
|
|
|
#endif
|
|
|
|
|
|
//4、通知成功打开语音发送模式
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -2138,7 +2536,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu |
|
|
static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, char *getbuf, int len)
|
|
|
{
|
|
|
|
|
|
T_JZsdkReturnCode ret;
|
|
|
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
...
|
...
|
@@ -2152,73 +2550,227 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//判断是否是opus实时语音传输模式
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS)
|
|
|
JZSDK_LOG_DEBUG("%s,传输opus定长语音传输中 长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen);
|
|
|
|
|
|
//传输数据接口
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
ret = Megaphone_RealTimeVoice_Trans(getbuf+9, DataLen);
|
|
|
#endif
|
|
|
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZSDK_LOG_ERROR("%s,opus实时语音定长传输失败,未开启实时opus传输模式", JZsdk_DefineCode_GetPortName(Port));
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
HalRecvDataLen += DataLen;
|
|
|
JZSDK_LOG_DEBUG("%s,传输opus定长语音传输中 长度:%d,总长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen, HalRecvDataLen);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//传输数据接口
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 关闭opus实时语音发送功能
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_stop(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,关闭opus实时喊话功能",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//2、关闭实时语音模式
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
ret = Megaphone_RealTimeVoice_Trans(getbuf+9, DataLen);
|
|
|
ret = Megaphone_RealTimeVoice_Close();
|
|
|
#endif
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//4、回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//4、回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 关闭opus实时语音发送功能
|
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_stop(int Port, char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("%s,关闭opus实时喊话功能",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
T_JZsdkReturnCode ret;
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* pcm部分
|
|
|
*
|
|
|
* *******************************************************************************************************************************/
|
|
|
|
|
|
/*********************************
|
|
|
*
|
|
|
* PCM播放
|
|
|
*
|
|
|
*
|
|
|
* **********************************/
|
|
|
static T_JZsdkReturnCode RecvDeal_PCM_Play(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s, PCM播放",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//分析pcm文件名
|
|
|
unsigned char PcmName[128];
|
|
|
unsigned int PcmNameLen = JZsdk_Get_FrameLength(getbuf) - 9 - 2;
|
|
|
if (PcmNameLen > 128)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
memset(PcmName, 0, sizeof(PcmName));
|
|
|
memcpy(PcmName, &getbuf[10], PcmNameLen);
|
|
|
|
|
|
ret = UIcontrol_Pcm_PlayListFile(Port, PcmName, PcmNameLen);
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**********************************
|
|
|
*
|
|
|
* pcm列表查询
|
|
|
*
|
|
|
*
|
|
|
* **********************************/
|
|
|
static T_JZsdkReturnCode RecvDeal_Get_PcmList(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,pcm列表查询",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
//刷新pcm列表
|
|
|
PcmFile_FlushList();
|
|
|
|
|
|
//获取opus总数
|
|
|
int PcmFileCount = PcmFile_GetListNum();
|
|
|
|
|
|
//注册一个opus数组
|
|
|
unsigned char **MusicName = (unsigned char **)malloc(PcmFileCount * sizeof(unsigned char*));
|
|
|
if (MusicName == NULL)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//注册一个歌曲名字长度的数组
|
|
|
int *MusicNameLength = (int *)malloc(PcmFileCount * sizeof(int));
|
|
|
if (MusicNameLength == NULL)
|
|
|
{
|
|
|
free(MusicName);
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//为每一首opus分配内存
|
|
|
for (int i = 0; i < PcmFileCount; i++)
|
|
|
{
|
|
|
MusicName[i] = (unsigned char*)malloc(128 * sizeof(unsigned char));
|
|
|
if (MusicName[i] == NULL)
|
|
|
{
|
|
|
// 内存分配失败,需要释放之前分配的内存
|
|
|
for (int j = 0; j < i; j++)
|
|
|
{
|
|
|
free(MusicName[j]);
|
|
|
}
|
|
|
free(MusicNameLength);
|
|
|
free(MusicName);
|
|
|
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
memset(MusicName[i], 0, 128 * sizeof(unsigned char));
|
|
|
|
|
|
//如果成功分配内存,则写入名字
|
|
|
Megaphone_PcmFile_GetAudioNameByIndex(i, MusicName[i], &MusicNameLength[i]);
|
|
|
}
|
|
|
|
|
|
JZSDK_LOG_DEBUG("pcm列表取出完成");
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
//发送开始帧
|
|
|
ret = HalSend_type1Send_Send_OpusList_Start(Port, FrameSequence, PcmFileCount);
|
|
|
|
|
|
if (HalRecvMode != JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS)
|
|
|
for (int i = 0; i < PcmFileCount; i++)
|
|
|
{
|
|
|
//获取歌曲详细信息
|
|
|
struct AudioMange_audio_struct AudioDetailMessage;
|
|
|
memset(&AudioDetailMessage, 0, sizeof(struct AudioMange_audio_struct));
|
|
|
ret = PcmFile_GetAudioInfo(MusicName[i], MusicNameLength[i],&AudioDetailMessage);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭opus实时语音发送功能失败,opus实时语音发送功能未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//1、修改接收模式
|
|
|
HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF);
|
|
|
JZSDK_LOG_INFO("一共播放了:%d的内容", HalRecvDataLen);
|
|
|
HalRecvDataLen = 0;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
//2、关闭实时语音模式
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
ret = Megaphone_RealTimeVoice_Close();
|
|
|
#endif
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
//发送opus列表
|
|
|
ret = HalSend_type1Send_Send_OpusList_Trans(Port, FrameSequence, AudioDetailMessage.FileName, AudioDetailMessage.FileNameLen, AudioDetailMessage.FileSize, AudioDetailMessage.Time);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//4、回复操作成功
|
|
|
HalSend_type1Send_Reply_Success(Port, FrameSequence);
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
|
|
|
continue;
|
|
|
}
|
|
|
else
|
|
|
}
|
|
|
|
|
|
//释放存储的数据
|
|
|
for (int i = 0; i < PcmFileCount; i++)
|
|
|
{
|
|
|
//4、回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
free(MusicName[i]);
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
free(MusicNameLength);
|
|
|
free(MusicName);
|
|
|
|
|
|
//发送结束帧
|
|
|
ret = HalSend_type1Send_Send_OpusList_Stop(Port, FrameSequence);
|
|
|
|
|
|
#else
|
|
|
JZSDK_LOG_ERROR("非喊话器不支持pcm列表");
|
|
|
//回复操作失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
/*******************************************************************************************************************************
|
...
|
...
|
@@ -2604,6 +3156,185 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_OutPutPower(int Port, char *getbuf |
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* 升级部分
|
|
|
*
|
|
|
* *******************************************************************************************************************************/
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 准备升级
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Upgrade_Prepare(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,准备升级",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
int status = 0;
|
|
|
Upgrade_GetStatus(&status);
|
|
|
|
|
|
//回复升级的准备状态
|
|
|
HalSend_type1Send_Reply_ReadyForUpdate(Port, FrameSequence);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 升级校验码
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Upgrade_SendCheckCode(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,升级校验码",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//解析出校验码
|
|
|
unsigned char CheckCode[32];
|
|
|
memcpy(CheckCode, getbuf + 9, 32);
|
|
|
|
|
|
//将校验码放置到升级模块
|
|
|
ret = Upgrade_PackageCheckCodeSave(CheckCode, JZSDK_CHECK_SUM_TYPE_MD5, 32);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复校验码已收到
|
|
|
HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(Port, 1);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复校验码已收到
|
|
|
HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(Port, 0);
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 数据传输开始
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Upgrade_Start(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,数据传输开始",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
ret = Upgrade_PackageDownload_Start();
|
|
|
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复开始文件发送
|
|
|
HalSend_type1Send_Reply_UpgradeStart(Port);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复开始文件发送失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 数据传输中
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Upgrade_Trans(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,数据传输中",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//解析数据长度
|
|
|
int FrameLength = JZsdk_Get_FrameLength(getbuf);
|
|
|
int BufLen = FrameLength - 8 -2;
|
|
|
|
|
|
ret = Upgrade_PackageDownload_Trans(&getbuf[9], BufLen);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复数据传输失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*********
|
|
|
*
|
|
|
* 数据传输结束
|
|
|
*
|
|
|
**********/
|
|
|
static T_JZsdkReturnCode RecvDeal_Upgrade_End(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkReturnCode ret;
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,数据传输结束",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
ret = Upgrade_PackageDownload_Stop();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复数据传输失败
|
|
|
HalSend_type1Send_Reply_Failure(Port, FrameSequence);
|
|
|
return ret;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//回复结束文件传输
|
|
|
HalSend_type1Send_Reply_UpgradeEnd(Port);
|
|
|
}
|
|
|
|
|
|
//回复完成后,开始校验
|
|
|
ret = Upgrade_PackageCheck();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
HalSend_type1Send_Reply_UpgradeCheckResult(Port, 1);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//回复校验成功
|
|
|
HalSend_type1Send_Reply_UpgradeCheckResult(Port, 0);
|
|
|
|
|
|
//开始升级
|
|
|
Upgrade_PackageUpgrade();
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* 警灯部分
|
...
|
...
|
@@ -2802,9 +3533,9 @@ static T_JZsdkReturnCode RecvDeal_ObtainTimeStamp(int Port, unsigned char *getbu |
|
|
}
|
|
|
|
|
|
// 提取年、月、日
|
|
|
int year = tm_info->tm_year + 1900; // 注意:tm_year是从1900年开始的
|
|
|
int year = tm_info->tm_year + 1980; // 注意:tm_year是从1980年开始的
|
|
|
int month = tm_info->tm_mon + 1; // 注意:tm_mon是从0开始的(0=1月,11=12月)
|
|
|
int day = tm_info->tm_mday;
|
|
|
int day = tm_info->tm_mday + 6;
|
|
|
|
|
|
JZSDK_LOG_INFO("获得年份: %d, 月份: %d, 日期: %d", year, month, day);
|
|
|
|
...
|
...
|
@@ -2817,6 +3548,9 @@ static T_JZsdkReturnCode RecvDeal_ObtainTimeStamp(int Port, unsigned char *getbu |
|
|
JZSDK_LOG_ERROR("设置系统时间失败");
|
|
|
}
|
|
|
|
|
|
//设置gps时间
|
|
|
Attribute_SetGpsTime((T_JZsdkAttributeGpsTime)TimeStamp);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
...
|
...
|
@@ -2837,12 +3571,24 @@ static T_JZsdkReturnCode RecvDeal_ObtainAllVersion(int Port, unsigned char *getb |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
//查看设备id是否已存在到本地
|
|
|
if(DeviceInfo_IsExist(DeviceId) != JZ_FLAGCODE_ON)
|
|
|
{
|
|
|
DeviceInfo_IncreaseDeviceId(DeviceId);
|
|
|
}
|
|
|
|
|
|
//设置到本地
|
|
|
DeviceInfo_SetAllVerision(DeviceId, MajorVersion, MinjorVersion, ModifyVersion, DebugVersion);
|
|
|
DeviceInfo_IncreaseVersion(DeviceId, MajorVersion, MinjorVersion, ModifyVersion, DebugVersion);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
/********************
|
|
|
*
|
|
|
* 接收到序列号
|
|
|
*
|
|
|
*
|
|
|
* **********************/
|
|
|
static T_JZsdkReturnCode RecvDeal_ObtainAllSerialNumber(int Port, unsigned char *getbuf)
|
|
|
{
|
|
|
int DeviceId = getbuf[9];
|
...
|
...
|
@@ -2856,14 +3602,14 @@ static T_JZsdkReturnCode RecvDeal_ObtainAllSerialNumber(int Port, unsigned char |
|
|
|
|
|
JZSDK_LOG_INFO("获得到全部序列号帧, 设备0x%x, %s",DeviceId, SerialNumber);
|
|
|
|
|
|
if (DeviceId == DEVICE_VERSION)
|
|
|
//查看设备id是否已存在到本地
|
|
|
if(DeviceInfo_IsExist(DeviceId) != JZ_FLAGCODE_ON)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("不处理本地版本信息");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
DeviceInfo_IncreaseDeviceId(DeviceId);
|
|
|
}
|
|
|
|
|
|
//设置到本地
|
|
|
DeviceInfo_SetAllSerialNumber(DeviceId, SerialNumber, SerialNumberLen);
|
|
|
DeviceInfo_IncreaseSerialNumber(DeviceId, SerialNumber, SerialNumberLen);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -3157,6 +3903,7 @@ static T_JZsdkReturnCode RecvDeal_QuerySecondaryDeviceName(int Port, char *getbu |
|
|
|
|
|
//2、获取当前从设备名
|
|
|
int SecondaryName = SecondaryDeviceName;
|
|
|
JZSDK_LOG_INFO("当前从设备为:%d", SecondaryName);
|
|
|
|
|
|
//3、回复当前从设备名
|
|
|
HalSend_type1Send_Reply_SecondaryDeviceName(Port ,SecondaryName, FrameSequence);
|
...
|
...
|
@@ -3311,8 +4058,31 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_GimbalLinkage(int Port, char *getb |
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
static T_JZTaskHandle g_UartReinit_task = NULL;
|
|
|
|
|
|
static void *UartReinit_thread(void *arg)
|
|
|
{
|
|
|
int *arg_value = (int *)arg;
|
|
|
|
|
|
int Port = arg_value[0];
|
|
|
|
|
|
int Value[1];
|
|
|
Value[0]= arg_value[1];
|
|
|
|
|
|
|
|
|
JZsdk_HalPort_ReInit(Port, Value);
|
|
|
|
|
|
JZSDK_LOG_INFO("串口重置完毕");
|
|
|
|
|
|
free(arg);
|
|
|
}
|
|
|
|
|
|
|
|
|
static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf)
|
|
|
{
|
|
|
T_JZsdkOsalHandler *osalHandler = JZsdk_Platform_GetOsalHandler();
|
|
|
|
|
|
JZSDK_LOG_INFO("%s,收到串口比特率修改",JZsdk_DefineCode_GetPortName(Port));
|
|
|
|
|
|
//获取帧的序列号
|
...
|
...
|
@@ -3349,8 +4119,14 @@ static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf) |
|
|
break;
|
|
|
}
|
|
|
|
|
|
int Value[1] = {BitRate};
|
|
|
JZsdk_HalPort_ReInit(Port, Value);
|
|
|
int *arg = (int *)malloc(sizeof(int) * 2);
|
|
|
arg[0] = Port;
|
|
|
arg[1] = BitRate;
|
|
|
|
|
|
//使用一个线程用于修改比特率
|
|
|
osalHandler->TaskCreate("UartReinit_task", UartReinit_thread, 8192, arg, &g_UartReinit_task);
|
|
|
|
|
|
JZSDK_LOG_INFO("已创建串口重置线程");
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
...
|
...
|
@@ -3505,8 +4281,7 @@ static T_JZsdkReturnCode RecvDeal_ObtainSecondaryDeviceName(int Port, char *getb |
|
|
printf("设置本地从设备名%x\n", value1);
|
|
|
SecondaryDeviceName = value1;
|
|
|
|
|
|
//设置本地从设备名
|
|
|
DeviceInfo_SetDeviceName(Port, value1);
|
|
|
DeviceInfo_IncreaseDeviceId(value1);
|
|
|
|
|
|
//广播从设备名
|
|
|
UIcontrol_Broadcast_SecondaryDeviceName(value1);
|
...
|
...
|
@@ -3514,6 +4289,7 @@ static T_JZsdkReturnCode RecvDeal_ObtainSecondaryDeviceName(int Port, char *getb |
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* 云台相关
|
...
|
...
|
@@ -3650,6 +4426,12 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//预设任务帧
|
|
|
case JZ_INSCODE_5AFRAME_PRESET_TASK:
|
|
|
RecvDeal_PresetTask(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//获取设备信息
|
|
|
case JZ_INSCODE_5AFRAME_DEVICE_MESSAGE:
|
|
|
RecvDeal_GetDeviceMessage(Port,getbuf);
|
...
|
...
|
@@ -3832,13 +4614,37 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//音频重命名
|
|
|
case JZ_INSCODE_5AFRAME_RENAME_AUDIO:
|
|
|
RecvDeal_Rename_Audio(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//录音重命名
|
|
|
case JZ_INSCODE_5AFRAME_RENAME_VOICE_RECORD:
|
|
|
RecvDeal_Rename_VoiceRecord(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//视频重命名
|
|
|
case JZ_INSCODE_5AFRAME_RENAME_VIDEO_RECORD:
|
|
|
RecvDeal_Rename_VideoRecord(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//打开opus传输
|
|
|
case JZ_INSCODE_5AFRAME_OPUS_TRANS_START:
|
|
|
case JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1:
|
|
|
RecvDeal_OpusTrans_start(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
|
|
|
//传输opus文件数据2型
|
|
|
case JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2:
|
|
|
RecvDeal_OpusTrans_start_2(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//传输定长opus文件数据
|
|
|
case JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION:
|
|
|
RecvDeal_OpusTrans_LimitTransmission(Port,getbuf, len);
|
...
|
...
|
@@ -3863,7 +4669,6 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
|
|
|
//开启opus实时喊话
|
|
|
case JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START:
|
|
|
RecvDeal_Opus_RealTimeVoice_start(Port,getbuf);
|
...
|
...
|
@@ -3882,6 +4687,18 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//PCM播放
|
|
|
case JZ_INSCODE_5AFRAME_PCM_PLAY:
|
|
|
RecvDeal_PCM_Play(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//获取Pcm列表
|
|
|
case JZ_INSCODE_5AFRAME_PCM_GETPCMLIST:
|
|
|
RecvDeal_Get_PcmList(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//云台控制
|
|
|
case JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL:
|
|
|
RecvDeal_Gimbal_PitchControl(Port,getbuf);
|
...
|
...
|
@@ -3922,6 +4739,17 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//开关播放时间回传
|
|
|
case JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME:
|
|
|
RecvDeal_Current_Play_Time(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//检查是否开启播放时间回传
|
|
|
case JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME:
|
|
|
RecvDeal_CheckStatus_CurrentPlayTime(Port,getbuf);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//音频列表获取
|
|
|
case JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST:
|
...
|
...
|
@@ -3998,6 +4826,34 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi |
|
|
|
|
|
|
|
|
|
|
|
//升级部分
|
|
|
|
|
|
//准备升级
|
|
|
case JZ_INSCODE_5AFRAME_UPGRADE_PERPARE:
|
|
|
RecvDeal_Upgrade_Prepare(Port,getbuf);
|
|
|
break;
|
|
|
|
|
|
//升级校验码
|
|
|
case JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE:
|
|
|
RecvDeal_Upgrade_SendCheckCode(Port,getbuf);
|
|
|
break;
|
|
|
|
|
|
//数据传输开始
|
|
|
case JZ_INSCODE_5AFRAME_UPGRADE_STRAT:
|
|
|
RecvDeal_Upgrade_Start(Port,getbuf);
|
|
|
break;
|
|
|
|
|
|
//数据传输中
|
|
|
case JZ_INSCODE_5AFRAME_UPGRADE_TRANS:
|
|
|
RecvDeal_Upgrade_Trans(Port,getbuf);
|
|
|
break;
|
|
|
|
|
|
//数据传输结束
|
|
|
case JZ_INSCODE_5AFRAME_UPGRADE_END:
|
|
|
RecvDeal_Upgrade_End(Port,getbuf);
|
|
|
break;
|
|
|
|
|
|
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* 5B类部分
|
...
|
...
|
@@ -4293,9 +5149,6 @@ static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(int Port, in |
|
|
static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_UartTransmodeDecide()
|
|
|
{
|
|
|
if ((HalRecvMode == JZ_DATA_TRANS_TYPE_REAL_TIME_MP2 ) //mp2实时语音传输模式
|
|
|
|| (HalRecvMode == JZ_DATA_TRANS_TYPE_AUDIO_FILE) //音频文件传输模式
|
|
|
|| (HalRecvMode == JZ_DATA_TRANS_TYPE_OPUS_FILE) //opus无限制传输模式
|
|
|
|| (HalRecvMode == JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS) //opus实时语音无限制传输模式
|
|
|
|| (HalRecvMode == JZ_DATA_TRANS_TYPE_TTS)) //TTS无限制传输模式)
|
|
|
{
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
...
|
...
|
|