作者 潘浩彬

合并分支 'dev' 到 'master'

Dev



查看合并请求 !22
正在显示 44 个修改的文件 包含 1502 行增加2451 行删除

要显示太多修改。

为保证性能只显示 44 of 44+ 个文件。

@@ -7,6 +7,7 @@ linux_kernel @@ -7,6 +7,7 @@ linux_kernel
7 7
8 project_build/AUTEL_道通PSDK 8 project_build/AUTEL_道通PSDK
9 project_build/GDU_普宙PSDK 9 project_build/GDU_普宙PSDK
  10 +project_build/ZY_珠海紫燕PSDK
10 11
11 project_build/Only_Serial/* 12 project_build/Only_Serial/*
12 !project_build/Only_Serial/application 13 !project_build/Only_Serial/application
@@ -133,7 +133,10 @@ @@ -133,7 +133,10 @@
133 "hal_uart.h": "c", 133 "hal_uart.h": "c",
134 "jzsdkbase.h": "c", 134 "jzsdkbase.h": "c",
135 "dji_logger.h": "c", 135 "dji_logger.h": "c",
136 - "dji_platform.h": "c" 136 + "dji_platform.h": "c",
  137 + "util_misc.h": "c",
  138 + "jzsdk_smt_code.h": "c",
  139 + "volume.h": "c"
137 }, 140 },
138 "Codegeex.GenerationPreference": "automatic", 141 "Codegeex.GenerationPreference": "automatic",
139 "C_Cpp.dimInactiveRegions": false 142 "C_Cpp.dimInactiveRegions": false
1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_H10) 4 +set(DEVICE_NAME JZ_H150T)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
@@ -54,17 +54,18 @@ int Main_Device_Wheather_Use() @@ -54,17 +54,18 @@ int Main_Device_Wheather_Use()
54 return 1; 54 return 1;
55 } 55 }
56 56
57 - // //如果是国外版,判断是否在国内 //以后再单独领出一个模块  
58 - if (FIRMWARE_ORIGIN == OVERSEAS_VERSION)  
59 - {  
60 -#if APP_VERSION == APP_PSDK  
61 - //如果处于中国境内  
62 - if (Subscription_WhetherInChina() == 1)  
63 - {  
64 - return 2;  
65 - }  
66 -#endif  
67 - } 57 + //该功能已移除
  58 +// // //如果是国外版,判断是否在国内 //以后再单独领出一个模块
  59 +// if (FIRMWARE_ORIGIN == OVERSEAS_VERSION)
  60 +// {
  61 +// #if APP_VERSION == APP_PSDK
  62 +// //如果处于中国境内
  63 +// if (Subscription_WhetherInChina() == 1)
  64 +// {
  65 +// return 2;
  66 +// }
  67 +// #endif
  68 +// }
68 69
69 return 0; 70 return 0;
70 } 71 }
@@ -328,7 +329,7 @@ T_JZsdkReturnCode Main_APP_Psdk() @@ -328,7 +329,7 @@ T_JZsdkReturnCode Main_APP_Psdk()
328 //hal加载 329 //hal加载
329 JZsdk_Hal_Init(); 330 JZsdk_Hal_Init();
330 331
331 - JZSDK_LOG_INFO("%x,PsdkVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION); 332 + JZSDK_LOG_INFO("%x,PsdkVersion%d.%d.%d.%d\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);
332 333
333 //通用模块初始化 334 //通用模块初始化
334 CommonMod_Init(); 335 CommonMod_Init();
@@ -370,7 +371,7 @@ int Main_APP_Uart() @@ -370,7 +371,7 @@ int Main_APP_Uart()
370 371
371 JZsdk_Hal_Init(); 372 JZsdk_Hal_Init();
372 373
373 - JZSDK_LOG_INFO("0x%x,UartVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION); 374 + JZSDK_LOG_INFO("0x%x,UartVersion%d.%d.%d.%d\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);
374 375
375 //通用模块 376 //通用模块
376 CommonMod_Init(); 377 CommonMod_Init();
@@ -1260,7 +1260,7 @@ T_JZsdkReturnCode JZC1_Init(int mode) @@ -1260,7 +1260,7 @@ T_JZsdkReturnCode JZC1_Init(int mode)
1260 } 1260 }
1261 1261
1262 //初始化IRC_funtion模块 1262 //初始化IRC_funtion模块
1263 - ret = IRC_ParamInit(JZ_C1_IRC_HEIGHT, JZ_C1_IRC_WIDTH, 25); 1263 + ret = IRC_ParamInit(JZ_C1_IRC_HEIGHT, JZ_C1_IRC_WIDTH, 25, IRC_DEAL_MODE_KT);
1264 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 1264 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
1265 { 1265 {
1266 JZSDK_LOG_ERROR("初始化红外的数据处理失败"); 1266 JZSDK_LOG_ERROR("初始化红外的数据处理失败");
  1 +// #include "JZsdkLib.h"
  2 +// #include "BaseConfig.h"
  3 +// #include <pthread.h>
  4 +// #include <math.h>
  5 +
  6 +// #include "IRCUT/ircut.h"
  7 +
  8 +// #include "MediaProc/IRC_funtion/SatIrcLibProc/Sat_Irc.h"
  9 +
  10 +// #ifdef RTK_MPP_STATUS_ON
  11 +// #include "MediaProc/MultProc/RTK_mmp/RTK_mmp.h"
  12 +// #include "MediaProc/MultProc/RTK_mmp/Dec/RTK_mmp_dec.h"
  13 +// #include "MediaProc/MultProc/RTK_mmp/Enc/RTK_mmp_enc.h"
  14 +// #include "MediaProc/Camera/Camera.h"
  15 +
  16 +// #ifdef RTK_RGA_STATUS_ON
  17 +
  18 +// #include "MediaProc/RgaProc/RK_Rga/RK_Rga.h"
  19 +
  20 +// #endif
  21 +
  22 +// #include "MediaProc/MediaProc.h"
  23 +// #include "UI_control/UI_control.h"
  24 +// #include "CommonMod/PowerManger/PowerManger.h"
  25 +
  26 +// typedef struct ST_RgaInfo
  27 +// {
  28 +// //源图像
  29 +// RK_RgaImage *src_img;
  30 +
  31 +// //裁剪图像
  32 +// RK_RgaImage *corp_img;
  33 +
  34 +// //目标图像
  35 +// RK_RgaImage *dst_img;
  36 +
  37 +// //放大倍数
  38 +// int scale;
  39 +
  40 +// }ST_RgaInfo;
  41 +
  42 +
  43 +// typedef struct T_JZST_info
  44 +// {
  45 +// /*************************************************************/
  46 +// //红外相机的编码器信息
  47 +// T_rtk_mmp_enc_info *IRC_enc_info;
  48 +
  49 +// //红外相机的rga信息
  50 +// ST_RgaInfo *IRC_rga_info;
  51 +
  52 +// /*************************************************************/
  53 +// //光学相机的解码器信息
  54 +// T_rtk_mmp_dec_info *Opt_dec_info;
  55 +
  56 +// //光学相机的编码器信息
  57 +// T_rtk_mmp_enc_info *Opt_enc_info;
  58 +
  59 +// //光学相机的相机信息
  60 +// JZsdk_CameraInfo *Opt_Camera_info;
  61 +
  62 +// //光学相机的rga信息
  63 +// ST_RgaInfo *Opt_rga_info;
  64 +// /*************************************************************/
  65 +// //融合相机的编码器信息
  66 +// T_rtk_mmp_enc_info *Fuse_enc_info;
  67 +
  68 +// }T_JZST_info;
  69 +
  70 +
  71 +// #define JZ__IRC_WIDTH 320
  72 +// #define JZ__IRC_HEIGHT 256
  73 +// #define JZ__IRC_FRAMERATE 25
  74 +// #define JZ__IRC_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST
  75 +// #define JZ__IRC_BPS 4000000
  76 +
  77 +
  78 +// static T_JZST_info g_JZST_info;
  79 +
  80 +
  81 +
  82 +// T_JZsdkReturnCode JZST_SetNextFrame_IDR(unsigned int index)
  83 +// {
  84 +// if (index == JZ__IRC_INDEX)
  85 +// {
  86 +// RTK_mmp_enc_SetNextFrame_IDR(g_JZST_info.IRC_enc_info);
  87 +// }
  88 +// // else if (index == JZ_C1_OPT_INDEX)
  89 +// // {
  90 +// // RTK_mmp_enc_SetNextFrame_IDR(g_JZC1_info.Opt_enc_info);
  91 +// // }
  92 +// // else if (index == JZ_C1_FUSE_INDEX)
  93 +// // {
  94 +// // RTK_mmp_enc_SetNextFrame_IDR(g_JZC1_info.Fuse_enc_info);
  95 +// // }
  96 +
  97 +// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  98 +
  99 +// }
  100 +
  101 +// //数据推送函数
  102 +// static T_JZsdkReturnCode JZST_PushFrame(int CameraIndex, unsigned char* data, unsigned int data_len)
  103 +// {
  104 +// int currentIndex = VideoMgmt_GetVideoStreamFlowIndexNum(); //获取当前视频流索引
  105 +// //无视频流
  106 +// if (currentIndex == 0)
  107 +// {
  108 +// //不推送视频
  109 +// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  110 +// }
  111 +
  112 +// //红外相机
  113 +// if (currentIndex == JZ__IRC_INDEX && CameraIndex == JZ__IRC_INDEX)
  114 +// {
  115 +
  116 +// //推送数据到流转模块
  117 +// VideoMgmt_Single_FrameIn(data, data_len);
  118 +// }
  119 +
  120 +// // //光学相机
  121 +// // if(CameraIndex == JZ_C1_OPT_INDEX && currentIndex == JZ_C1_OPT_INDEX)
  122 +// // {
  123 +// // //推送数据到流转模块
  124 +// // VideoMgmt_Single_FrameIn(data, data_len);
  125 +// // }
  126 +
  127 +// // //组合视频流
  128 +// // if (currentIndex == JZ_C1_FUSE_INDEX && CameraIndex == JZ_C1_FUSE_INDEX)
  129 +// // {
  130 +// // //推送数据到流转模块
  131 +// // VideoMgmt_Single_FrameIn(data, data_len);
  132 +// // }
  133 +
  134 +// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  135 +// }
  136 +
  137 +
  138 +// static T_JZsdkReturnCode rgb32_to_yuv420sp(uint8_t *rgb32, uint8_t *yuv420sp, int width, int height)
  139 +// {
  140 +// int frame_size = width * height;
  141 +// uint8_t *y_plane = yuv420sp; // Y分量
  142 +// uint8_t *uv_plane = yuv420sp + frame_size; // UV交错分量(NV12)
  143 +
  144 +// for (int y = 0; y < height; y++) {
  145 +// for (int x = 0; x < width; x++) {
  146 +// // 假设RGB32内存布局为[B,G,R,A](小端序常见)
  147 +// int idx = (y * width + x) * 4;
  148 +// uint8_t B = rgb32[idx];
  149 +// uint8_t G = rgb32[idx + 1];
  150 +// uint8_t R = rgb32[idx + 2];
  151 +// // uint8_t A = rgb32[idx + 3]; // Alpha通道忽略
  152 +
  153 +// // 计算YUV(BT.601标准)
  154 +// int Y = 0.257 * R + 0.504 * G + 0.098 * B + 16;
  155 +// int U = -0.148 * R - 0.291 * G + 0.439 * B + 128;
  156 +// int V = 0.439 * R - 0.368 * G - 0.071 * B + 128;
  157 +
  158 +// // 写入Y分量
  159 +// y_plane[y * width + x] = (uint8_t)fmin(fmax(Y, 0), 255);
  160 +
  161 +// // 仅偶数行和偶数列采样UV分量(420下采样)
  162 +// if (y % 2 == 0 && x % 2 == 0) {
  163 +// int uv_idx = (y / 2) * (width / 2) + (x / 2);
  164 +// uv_plane[uv_idx * 2] = (uint8_t)fmin(fmax(U, 0), 255); // U
  165 +// uv_plane[uv_idx * 2 + 1] = (uint8_t)fmin(fmax(V, 0), 255); // V
  166 +// }
  167 +// }
  168 +// }
  169 +
  170 +// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  171 +// }
  172 +
  173 +// static void *JZ__ircDataThread(void *args)
  174 +// {
  175 +// #ifdef SATIRC_LIB_STATUS_ON
  176 +// U8_t *buf = NULL;
  177 +// int PixelNum = JZ__IRC_WIDTH * JZ__IRC_HEIGHT;
  178 +
  179 +// buf = (U8_t *)malloc(JZ__IRC_WIDTH * JZ__IRC_HEIGHT * 4);
  180 +// U8_t *yuv420sp = (U8_t *)malloc(320 * 256 * 3 / 2);
  181 +
  182 +// int test_i = 0;
  183 +// int color = 0;
  184 +
  185 +// while (1)
  186 +// {
  187 +// //每25张更换一次颜色
  188 +// if (test_i % 25 == 0)
  189 +// {
  190 +// color++;
  191 +// if (color == 12)
  192 +// {
  193 +// color = 0;
  194 +// }
  195 +
  196 +// SatIrc_SetColorPalette(color); //可以测0~11
  197 +// }
  198 +
  199 +// //获取红外数据
  200 +// memset(buf, 0, JZ__IRC_WIDTH * JZ__IRC_HEIGHT * 4);
  201 +// SatIrc_GetIRImage(buf, PixelNum);
  202 +
  203 +// //将红外数据转换为yuv
  204 +// memset(yuv420sp, 0, 320 * 256 * 3 / 2);
  205 +// rgb32_to_yuv420sp(buf, yuv420sp, JZ__IRC_WIDTH, JZ__IRC_HEIGHT);
  206 +
  207 +// //将红外数据送去编码器
  208 +// unsigned char *h264Data = NULL;
  209 +// unsigned int h264DataLen = 0;
  210 +
  211 +// MppPacket Packet = NULL;
  212 +
  213 +// //进行编码
  214 +// RTK_mmp_enc_data_to_h264(g_JZST_info.IRC_enc_info, yuv420sp, 320 * 256 * 3 / 2, &Packet);
  215 +
  216 +// h264DataLen = mpp_packet_get_length(Packet);
  217 +// h264Data = (unsigned char *)mpp_packet_get_pos(Packet);
  218 +
  219 +// //释放掉packet
  220 +// mpp_packet_deinit(&Packet);
  221 +
  222 +// //将h264数据推送
  223 +// JZST_PushFrame(1, h264Data, h264DataLen);
  224 +
  225 +// delayMs(1000/JZ__IRC_FRAMERATE);
  226 +// }
  227 +// #endif // #ifdef SATIRC_LIB_STATUS_ON
  228 +// }
  229 +
  230 +// static T_JZsdkReturnCode JZ__IrcCameraInit()
  231 +// {
  232 +// T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  233 +
  234 +// //初始化红外参数
  235 +// ret = IRC_ParamInit(JZ__IRC_HEIGHT, JZ__IRC_WIDTH, JZ__IRC_FRAMERATE, IRC_DEAL_MODE_SAT);
  236 +// if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  237 +// {
  238 +// JZSDK_LOG_ERROR("红外参数初始化失败!");
  239 +// return ret;
  240 +// }
  241 +
  242 +// //初始化红外相机
  243 +// T_JZsdkReturnCode = SatIrc_init();
  244 +// if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  245 +// {
  246 +// JZSDK_LOG_ERROR("红外相机初始化失败!");
  247 +// return ret;
  248 +// }
  249 +
  250 +// //初始化接收相机数据的线程
  251 +// T_JZsdkOsalHandler *osal_handle = JZsdk_Platform_GetOsalHandler();
  252 +
  253 +// T_JZTaskHandle JZ__ircDataTask = NULL;
  254 +// osal_handle->TaskCreate("JZ__ircDataThread", JZ__ircDataThread, 8192, NULL, JZ__ircDataTask);
  255 +
  256 +// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  257 +// }
  258 +
  259 +// T_JZsdkReturnCode JZ__Init(int mode)
  260 +// {
  261 +// //网口初始化
  262 +// if (mode == APP_UART)
  263 +// {
  264 +// //网口初始化
  265 +// JZsdk_NetWork_Init();
  266 +// }
  267 +
  268 +// T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  269 +
  270 +// #ifdef RTK_MPP_STATUS_ON
  271 +
  272 +// //初始化相机流管理器
  273 +// T_JZsdkVideoMgmtHandler VideoMgmtHandler = {
  274 +// .SetNextFrame_IDR = JZST_SetNextFrame_IDR,
  275 +// };
  276 +// VideoMgmt_Init(VideoMgmtHandler);
  277 +
  278 +// //初始化红外的编码器
  279 +// g_JZST_info.IRC_enc_info = (T_rtk_mmp_dec_info *)malloc(sizeof(T_rtk_mmp_dec_info));
  280 +
  281 +// //配置参数
  282 +// g_JZST_info.IRC_enc_info->Input_fmt = MPP_FMT_YUV420SP;
  283 +// g_JZST_info.IRC_enc_info->encType = MPP_VIDEO_CodingAVC;
  284 +// g_JZST_info.IRC_enc_info->width = JZ__IRC_WIDTH;
  285 +// g_JZST_info.IRC_enc_info->height = JZ__IRC_HEIGHT;
  286 +// g_JZST_info.IRC_enc_info->FrameNum = JZ__IRC_FRAMERATE;
  287 +// g_JZST_info.IRC_enc_info->IDR_gop = 5;
  288 +// g_JZST_info.IRC_enc_info->bps_target = JZ__IRC_BPS;
  289 +
  290 +// g_JZST_info.IRC_enc_info->hor_stride = JZ_ALIGN(g_JZST_info.IRC_enc_info->width, 16);
  291 +// g_JZST_info.IRC_enc_info->ver_stride = JZ_ALIGN(g_JZST_info.IRC_enc_info->height, 16);
  292 +
  293 +// //初始化编码器
  294 +// RTK_mmp_enc_init(g_JZST_info.IRC_enc_info);
  295 +
  296 +// //初始化红外相机
  297 +// ret = JZ__IrcCameraInit();
  298 +// if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  299 +// {
  300 +// JZSDK_LOG_ERROR("红外相机初始化失败!");
  301 +// }
  302 +
  303 +// //设置默认推送红外摄像头
  304 +// VideoMgmt_VideoStreamFlowIndex(JZ__IRC_INDEX);
  305 +
  306 +// return ret;
  307 +
  308 +// #endif
  309 +// }
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 #define VERSION_CHOOSE_H 7 #define VERSION_CHOOSE_H
8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h" 8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
9 //1~10行 除了D可以修改版本选择 禁止动任何东西 9 //1~10行 除了D可以修改版本选择 禁止动任何东西
10 -#define DEVICE_VERSION JZ_H10 10 +#define DEVICE_VERSION JZ_H150T
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 #define APP_VERSION APP_PSDK 13 #define APP_VERSION APP_PSDK
@@ -16,15 +16,15 @@ @@ -16,15 +16,15 @@
16 #define PLATFORM_VERSION PLATFORM_H3 16 #define PLATFORM_VERSION PLATFORM_H3
17 17
18 //禁止修改行 串口连接程序的软件版本号 18 //禁止修改行 串口连接程序的软件版本号
19 -#define MAJOR_VERSION 0x01  
20 -#define MINOR_VERSION 0x03  
21 -#define MODIFY_VERSION 0x11  
22 -#define DEBUG_VERSION 0x00 19 +#define MAJOR_VERSION 01
  20 +#define MINOR_VERSION 03
  21 +#define MODIFY_VERSION 11
  22 +#define DEBUG_VERSION 01
23 23
24 -//禁止修改行 滤波方式 24 +//禁止修改行 滤波方式 该项目目前已被移除
25 #define FILTERING_TYPE HIGH_PASS_FILTERING 25 #define FILTERING_TYPE HIGH_PASS_FILTERING
26 26
27 -//禁止修改行固件属地 目前 国内版/海外版 27 +//禁止修改行固件属地 目前 国内版/海外版, 该选项目前已被移除
28 #define FIRMWARE_ORIGIN DOMESTIC_VERSION 28 #define FIRMWARE_ORIGIN DOMESTIC_VERSION
29 29
30 //禁止修改行指定特殊固件 30 //禁止修改行指定特殊固件
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 //禁止修改行 全志编解码库 33 //禁止修改行 全志编解码库
34 #define ALLWINNER_CEDAR VERSION_SWITCH_OFF 34 #define ALLWINNER_CEDAR VERSION_SWITCH_OFF
35 35
36 -//禁止修改行 是否开启连接超时 36 +//禁止修改行 是否开启连接超时, 该项目目前已被移除
37 #define CONNECTION_TIMED_OUT VERSION_SWITCH_OFF 37 #define CONNECTION_TIMED_OUT VERSION_SWITCH_OFF
38 38
39 //这个开关可以方便日常代码编写的跳转功能 39 //这个开关可以方便日常代码编写的跳转功能
@@ -125,6 +125,9 @@ @@ -125,6 +125,9 @@
125 //默认开启ktlib 125 //默认开启ktlib
126 #define KTIRC_LIB_STATUS_ON 126 #define KTIRC_LIB_STATUS_ON
127 127
  128 + //默认开启satlib
  129 + #define SATIRC_LIB_STATUS_ON
  130 +
128 //默认开启光源模块 131 //默认开启光源模块
129 #define LIGHTING_STATUS_ON 132 #define LIGHTING_STATUS_ON
130 #endif 133 #endif
@@ -1260,7 +1260,7 @@ static T_JZsdkReturnCode RecvDeal_SetVolume(int Port, char *getbuf) @@ -1260,7 +1260,7 @@ static T_JZsdkReturnCode RecvDeal_SetVolume(int Port, char *getbuf)
1260 1260
1261 JZSDK_LOG_INFO("%s,调节音量:%d",JZsdk_DefineCode_GetPortName(Port),value); 1261 JZSDK_LOG_INFO("%s,调节音量:%d",JZsdk_DefineCode_GetPortName(Port),value);
1262 1262
1263 - UIcontrol_SetVolume(Port, value); 1263 + UIcontrol_SetVolume(Port, value, JZ_FLAGCODE_ON);
1264 1264
1265 //回复操作成功 1265 //回复操作成功
1266 HalSend_type1Send_Reply_Success(Port, FrameSequence); 1266 HalSend_type1Send_Reply_Success(Port, FrameSequence);
@@ -1442,7 +1442,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_SoftwareVersion(int Port, char *ge @@ -1442,7 +1442,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_SoftwareVersion(int Port, char *ge
1442 MinjorVersion = MINOR_VERSION; 1442 MinjorVersion = MINOR_VERSION;
1443 modifyVersion = MODIFY_VERSION; 1443 modifyVersion = MODIFY_VERSION;
1444 debugVersion = DEBUG_VERSION; 1444 debugVersion = DEBUG_VERSION;
1445 - JZSDK_LOG_INFO("当前的软件版本号为:%2x, %2x, %2x, %2x",majorVersion, MinjorVersion, modifyVersion, debugVersion); 1445 + JZSDK_LOG_INFO("当前的软件版本号为:%2d, %2d, %2d, %2d",majorVersion, MinjorVersion, modifyVersion, debugVersion);
1446 1446
1447 //2、发送版本号 1447 //2、发送版本号
1448 HalSend_type1Send_Reply_SoftVersion(Port, FrameSequence, majorVersion, MinjorVersion, modifyVersion, debugVersion); 1448 HalSend_type1Send_Reply_SoftVersion(Port, FrameSequence, majorVersion, MinjorVersion, modifyVersion, debugVersion);
@@ -4577,6 +4577,17 @@ static T_JZsdkReturnCode RecvDeal_SetSpecialParameters(int Port, char *getbuf) @@ -4577,6 +4577,17 @@ static T_JZsdkReturnCode RecvDeal_SetSpecialParameters(int Port, char *getbuf)
4577 } 4577 }
4578 } 4578 }
4579 break; 4579 break;
  4580 +
  4581 + //0x03设置喊话器默认语言
  4582 + case 0x03:
  4583 + {
  4584 + ret = LanguageInfo_Write_LanguageInfo((E_LanguageInfo)value);
  4585 + if(ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  4586 + {
  4587 + JZSDK_LOG_ERROR("特参三失败");
  4588 + }
  4589 + }
  4590 + break;
4580 4591
4581 default: 4592 default:
4582 ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 4593 ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
@@ -23,34 +23,40 @@ T_JZsdkReturnCode Stream_Player_decode(struct AudioDealInfo *AD_Info, AVCodecCon @@ -23,34 +23,40 @@ T_JZsdkReturnCode Stream_Player_decode(struct AudioDealInfo *AD_Info, AVCodecCon
23 23
24 T_JZsdkReturnCode File_Stream_deal_Init(enum AVCodecID id) 24 T_JZsdkReturnCode File_Stream_deal_Init(enum AVCodecID id)
25 { 25 {
  26 + //注册包
26 pkt = av_packet_alloc(); 27 pkt = av_packet_alloc();
27 if(!pkt) 28 if(!pkt)
28 { 29 {
29 JZSDK_LOG_ERROR("av_packet_alloc failed."); 30 JZSDK_LOG_ERROR("av_packet_alloc failed.");
30 } 31 }
31 32
  33 + //寻找解码器
32 codec = avcodec_find_decoder(id); 34 codec = avcodec_find_decoder(id);
33 if (!codec) { 35 if (!codec) {
34 JZSDK_LOG_ERROR("Codec not found\n"); 36 JZSDK_LOG_ERROR("Codec not found\n");
35 } 37 }
36 38
  39 + //获得裸流的解析器
37 parser = av_parser_init(codec->id); 40 parser = av_parser_init(codec->id);
38 if (!parser) { 41 if (!parser) {
39 JZSDK_LOG_ERROR("Parser not found\n"); 42 JZSDK_LOG_ERROR("Parser not found\n");
40 } 43 }
41 44
  45 + //分配解码上下文
42 cdc_ctx = avcodec_alloc_context3(codec); 46 cdc_ctx = avcodec_alloc_context3(codec);
43 if (!cdc_ctx) { 47 if (!cdc_ctx) {
44 JZSDK_LOG_ERROR("Could not allocate audio codec context\n"); 48 JZSDK_LOG_ERROR("Could not allocate audio codec context\n");
45 } 49 }
46 50
47 - /* open it */ 51 + //将解码器和解码上下文绑定
48 if (avcodec_open2(cdc_ctx, codec, NULL) < 0) 52 if (avcodec_open2(cdc_ctx, codec, NULL) < 0)
49 { 53 {
50 JZSDK_LOG_ERROR("Could not open codec\n"); 54 JZSDK_LOG_ERROR("Could not open codec\n");
51 } 55 }
52 56
53 - JZSDK_LOG_INFO("File_Stream_deal_Init success"); 57 + JZSDK_LOG_INFO("file stream init complete");
  58 +
  59 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
54 } 60 }
55 61
56 //输入mp3的实时数据,以及本次数据的长度 62 //输入mp3的实时数据,以及本次数据的长度
@@ -116,6 +122,8 @@ T_JZsdkReturnCode mp3_Stream_Interface_Mp3Data(struct AudioDealInfo *AD_Info, un @@ -116,6 +122,8 @@ T_JZsdkReturnCode mp3_Stream_Interface_Mp3Data(struct AudioDealInfo *AD_Info, un
116 } 122 }
117 } 123 }
118 } 124 }
  125 +
  126 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
119 } 127 }
120 128
121 129
@@ -151,7 +159,7 @@ T_JZsdkReturnCode Stream_Player_decode(struct AudioDealInfo *AD_Info, AVCodecCon @@ -151,7 +159,7 @@ T_JZsdkReturnCode Stream_Player_decode(struct AudioDealInfo *AD_Info, AVCodecCon
151 //输出帧不可用 、 输出帧 已用完 159 //输出帧不可用 、 输出帧 已用完
152 if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) 160 if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
153 { 161 {
154 - continue;; 162 + continue;
155 } 163 }
156 else if (ret < 0) 164 else if (ret < 0)
157 { 165 {
@@ -57,6 +57,8 @@ extern "C" { @@ -57,6 +57,8 @@ extern "C" {
57 equalizer=f=8000:t=q:w=2.0:g=+2, \ 57 equalizer=f=8000:t=q:w=2.0:g=+2, \
58 equalizer=f=16000:t=q:w=2.0:g=+2" 58 equalizer=f=16000:t=q:w=2.0:g=+2"
59 59
  60 +
  61 +
60 #define FILTER_FORMAL_3_TTS "equalizer=f=31:t=q:w=2.0:g=-48, \ 62 #define FILTER_FORMAL_3_TTS "equalizer=f=31:t=q:w=2.0:g=-48, \
61 equalizer=f=62:t=q:w=2.0:g=-36, \ 63 equalizer=f=62:t=q:w=2.0:g=-36, \
62 equalizer=f=125:t=q:w=2.0:g=-30, \ 64 equalizer=f=125:t=q:w=2.0:g=-30, \
@@ -68,6 +70,36 @@ extern "C" { @@ -68,6 +70,36 @@ extern "C" {
68 equalizer=f=8000:t=q:w=2.0:g=+2, \ 70 equalizer=f=8000:t=q:w=2.0:g=+2, \
69 equalizer=f=16000:t=q:w=2.0:g=+2" 71 equalizer=f=16000:t=q:w=2.0:g=+2"
70 72
  73 +#define FILTER_FORMAL_4_AUDIO "equalizer=f=31:t=q:w=2.0:g=-48, \
  74 + equalizer=f=62:t=q:w=2.0:g=-36, \
  75 + equalizer=f=125:t=q:w=2.0:g=-30, \
  76 + equalizer=f=250:t=q:w=2.0:g=-26, \
  77 + equalizer=f=500:t=q:w=2.0:g=-20, \
  78 + equalizer=f=1000:t=q:w=2.0:g=-12, \
  79 + equalizer=f=2000:t=q:w=2.0:g=-8, \
  80 + equalizer=f=4000:t=q:w=2.0:g=+0, \
  81 + equalizer=f=8000:t=q:w=2.0:g=+0, \
  82 + equalizer=f=16000:t=q:w=2.0:g=+0, \
  83 + compand=attacks=0:decays=0.3:points=-60/-60|-30/-20|-20/-15|-10/-10|0/-5:gain=5, \
  84 + lowpass=f=6000:width_type=q:w=1.8, \
  85 + highpass=f=80:width_type=q:w=1.2, \
  86 + volume=0.98"
  87 +
  88 +#define FILTER_FORMAL_4_TTS "equalizer=f=31:t=q:w=2.0:g=-48, \
  89 + equalizer=f=62:t=q:w=2.0:g=-36, \
  90 + equalizer=f=125:t=q:w=2.0:g=-30, \
  91 + equalizer=f=250:t=q:w=2.0:g=-26, \
  92 + equalizer=f=500:t=q:w=2.0:g=-20, \
  93 + equalizer=f=1000:t=q:w=2.0:g=-12, \
  94 + equalizer=f=2000:t=q:w=2.0:g=-8, \
  95 + equalizer=f=4000:t=q:w=2.0:g=+0, \
  96 + equalizer=f=8000:t=q:w=2.0:g=+0, \
  97 + equalizer=f=16000:t=q:w=2.0:g=+0, \
  98 + compand=attacks=0:decays=0.3:points=-60/-60|-30/-20|-20/-15|-10/-10|0/-5:gain=5, \
  99 + lowpass=f=6000:width_type=q:w=1.8, \
  100 + highpass=f=80:width_type=q:w=1.2, \
  101 + volume=0.98"
  102 +
71 #define FILTER_FORMAL_1_M30_TTS "equalizer=f=31:t=q:w=2.0:g=-48, \ 103 #define FILTER_FORMAL_1_M30_TTS "equalizer=f=31:t=q:w=2.0:g=-48, \
72 equalizer=f=62:t=q:w=2.0:g=-36, \ 104 equalizer=f=62:t=q:w=2.0:g=-36, \
73 equalizer=f=125:t=q:w=2.0:g=-30, \ 105 equalizer=f=125:t=q:w=2.0:g=-30, \
@@ -109,6 +141,7 @@ extern "C" { @@ -109,6 +141,7 @@ extern "C" {
109 anequalizer=c0 f=3700 w=1400 g=-24 t=0|c1 f=3700 w=1400 g=-24 t=0" 141 anequalizer=c0 f=3700 w=1400 g=-24 t=0|c1 f=3700 w=1400 g=-24 t=0"
110 142
111 143
  144 +
112 /*00 35 145 /*00 35
113 02 37 146 02 37
114 05 39 147 05 39
@@ -151,10 +184,10 @@ typedef enum FilterList{ @@ -151,10 +184,10 @@ typedef enum FilterList{
151 }FilterList; 184 }FilterList;
152 185
153 //普通音频滤波参数 186 //普通音频滤波参数
154 -#define FILTER_PARAM_NORMAL_AUDIO FILTER_FORMAL_3_AUDIO 187 +#define FILTER_PARAM_NORMAL_AUDIO FILTER_FORMAL_4_AUDIO
155 188
156 //普通TTS滤波参数 189 //普通TTS滤波参数
157 -#define FILTER_PARAM_NORMAL_TTS FILTER_FORMAL_3_TTS 190 +#define FILTER_PARAM_NORMAL_TTS FILTER_FORMAL_4_TTS
158 191
159 192
160 //h10t的滤波器跟其他的不一样,所以单独定义 193 //h10t的滤波器跟其他的不一样,所以单独定义
@@ -13,6 +13,9 @@ @@ -13,6 +13,9 @@
13 static struct T_DeviceInfo g_DeviceInfo[6]; //最多6台设备组成为一台机 13 static struct T_DeviceInfo g_DeviceInfo[6]; //最多6台设备组成为一台机
14 int g_DeviceInfoNum = 0; //设备总数 14 int g_DeviceInfoNum = 0; //设备总数
15 15
  16 +static T_JZsdkReturnCode DeviceMessage_PrintDeviceInfo();
  17 +
  18 +
16 /*************************************************** 19 /***************************************************
17 * 20 *
18 * 设备信息初始化 21 * 设备信息初始化
@@ -24,6 +27,9 @@ T_JZsdkReturnCode DeviceInfo_Init() @@ -24,6 +27,9 @@ T_JZsdkReturnCode DeviceInfo_Init()
24 //硬件版本号初始化 27 //硬件版本号初始化
25 HardwareInfo_Init(); 28 HardwareInfo_Init();
26 29
  30 + //语言信息初始化
  31 + LanguageInfo_Init();
  32 +
27 //序列号模块初始化 33 //序列号模块初始化
28 SerialMAT_Init(); 34 SerialMAT_Init();
29 35
@@ -44,6 +50,9 @@ T_JZsdkReturnCode DeviceInfo_Init() @@ -44,6 +50,9 @@ T_JZsdkReturnCode DeviceInfo_Init()
44 //设置设备信息 版本号 50 //设置设备信息 版本号
45 DeviceInfo_IncreaseVersion(DEVICE_VERSION, MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION); 51 DeviceInfo_IncreaseVersion(DEVICE_VERSION, MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);
46 52
  53 + //设备信息自打印
  54 + //DeviceMessage_PrintDeviceInfo();
  55 +
47 JZSDK_LOG_INFO("MODULE_DEVICE_INFO_INIT_COMPLETE"); 56 JZSDK_LOG_INFO("MODULE_DEVICE_INFO_INIT_COMPLETE");
48 } 57 }
49 58
@@ -138,7 +147,7 @@ T_JZsdkReturnCode DeviceInfo_IncreaseVersion(int DeviceID, unsigned int MajorVer @@ -138,7 +147,7 @@ T_JZsdkReturnCode DeviceInfo_IncreaseVersion(int DeviceID, unsigned int MajorVer
138 g_DeviceInfo[i].ModifyVersion = ModifyVersion; 147 g_DeviceInfo[i].ModifyVersion = ModifyVersion;
139 g_DeviceInfo[i].DebugVersion = DebugVersion; 148 g_DeviceInfo[i].DebugVersion = DebugVersion;
140 149
141 - JZSDK_LOG_INFO("增加设备0x%x 版本号成功 %x.%x.%x.%x", DeviceID,g_DeviceInfo[i].MajorVersion,g_DeviceInfo[i].MinjorVersion,g_DeviceInfo[i].ModifyVersion,g_DeviceInfo[i].DebugVersion); 150 + JZSDK_LOG_INFO("增加设备0x%x 版本号成功 %d.%d.%d.%d", DeviceID,g_DeviceInfo[i].MajorVersion,g_DeviceInfo[i].MinjorVersion,g_DeviceInfo[i].ModifyVersion,g_DeviceInfo[i].DebugVersion);
142 151
143 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 152 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
144 } 153 }
@@ -186,3 +195,39 @@ int DeviceInfo_IsExist(int DeviceID) @@ -186,3 +195,39 @@ int DeviceInfo_IsExist(int DeviceID)
186 195
187 return JZ_FLAGCODE_OFF; 196 return JZ_FLAGCODE_OFF;
188 } 197 }
  198 +
  199 +static void *DeviceMessge_Printf(void *arg)
  200 +{
  201 + unsigned char message[256];
  202 +
  203 + while (1)
  204 + {
  205 + memset(message,0,sizeof(message));
  206 +
  207 + DeviceMessage_Mode(DEVICE_MESSAGE_DEBUG);
  208 + DeviceMessage_GetMessage(message, sizeof(message));
  209 +
  210 + JZSDK_LOG_INFO("%s", message);
  211 +
  212 + delayS(10);
  213 + }
  214 +
  215 +}
  216 +
  217 +/**********************
  218 + *
  219 + * 设备信息自打印
  220 + *
  221 + *
  222 + * *******************/
  223 +static T_JZsdkReturnCode DeviceMessage_PrintDeviceInfo()
  224 +{
  225 + T_JZsdkOsalHandler *OsalHandler = JZsdk_Platform_GetOsalHandler();
  226 + if (OsalHandler == NULL)
  227 + {
  228 + JZSDK_LOG_ERROR("获取OsalHandler失败");
  229 + }
  230 + static T_JZTaskHandle s_DeviceInfoThread = NULL;
  231 +
  232 + OsalHandler->TaskCreate("DeviceMessge_Printf", DeviceMessge_Printf, 8192,NULL, &s_DeviceInfoThread);
  233 +}
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 #include "SerialNumberProc/SerialProc.h" 14 #include "SerialNumberProc/SerialProc.h"
15 #include "DeviceInfo/HardwareInfo/HardwareInfo.h" 15 #include "DeviceInfo/HardwareInfo/HardwareInfo.h"
16 #include "DeviceInfo/Attribute/Attribute.h" 16 #include "DeviceInfo/Attribute/Attribute.h"
  17 +#include "LanguageInfo/LanguageInfo.h"
17 18
18 /* Includes ------------------------------------------------------------------*/ 19 /* Includes ------------------------------------------------------------------*/
19 #ifdef __cplusplus 20 #ifdef __cplusplus
  1 +#include "JZsdkLib.h"
  2 +
  3 +#include "LanguageInfo.h"
  4 +
  5 +#define LANGUAGE_INFO_FILE_NAME "/root/LanguageInfo.txt"
  6 +
  7 +static E_LanguageInfo g_LanguageInfo = LANGUAGE_INFO_CHINESE;
  8 +static T_JZsdkFileHandle g_LanguageInfoFileHandle = NULL;
  9 +
  10 +static T_JZsdkReturnCode LanguageInfo_Read_LanguageInfo();
  11 +
  12 +
  13 +T_JZsdkReturnCode LanguageInfo_Init()
  14 +{
  15 + //读取本地的语言信息
  16 + LanguageInfo_Read_LanguageInfo();
  17 +
  18 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  19 +}
  20 +
  21 +
  22 +/**************
  23 + *
  24 + * 写入本地的语言信息
  25 + *
  26 + *
  27 + * ************/
  28 +T_JZsdkReturnCode LanguageInfo_Write_LanguageInfo(E_LanguageInfo language)
  29 +{
  30 + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  31 + T_JZsdkFSHandler *fileSystemHandler = NULL;
  32 + T_JZsdkFileHandle fileHandle = NULL;
  33 +
  34 + // 1. 检查语言值合法性
  35 + if (language != LANGUAGE_INFO_CHINESE &&
  36 + language != LANGUAGE_INFO_ENGLISH)
  37 + {
  38 + JZSDK_LOG_ERROR("Invalid language value: %d", language);
  39 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  40 + }
  41 +
  42 + g_LanguageInfo = language;
  43 + JZSDK_LOG_INFO("Language set to %d", language);
  44 +
  45 + // 2. 获取文件系统操作句柄
  46 + fileSystemHandler = JZsdk_GetFsHandler();
  47 + if (!fileSystemHandler) {
  48 + JZSDK_LOG_ERROR("No FS handler");
  49 + return ret;
  50 + }
  51 +
  52 + // 3. 打开文件(如果不存在则创建,存在则清空内容)
  53 + ret = fileSystemHandler->FileOpen(LANGUAGE_INFO_FILE_NAME, FS_READ_AND_WRITE_CLEAR, &fileHandle);
  54 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  55 + JZSDK_LOG_ERROR("Open failed: %d", ret);
  56 + goto cleanup;
  57 + }
  58 +
  59 + // 4. 将语言值转换为字符写入(例如 0 -> '0',1 -> '1')
  60 + U8_t writeData = (U8_t)('0' + g_LanguageInfo); // 确保转换为 ASCII 字符
  61 + U32_t writeLen = 1; // 只写入 1 字节
  62 + U32_t realLen = 1;
  63 +
  64 + ret = fileSystemHandler->FileWrite_U8(
  65 + fileHandle,
  66 + &writeData,
  67 + writeLen,
  68 + &realLen
  69 + );
  70 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  71 + JZSDK_LOG_ERROR("Write failed: %d", ret);
  72 + goto cleanup;
  73 + }
  74 +
  75 + // 5. 强制刷盘
  76 + ret = fileSystemHandler->FileSync(fileHandle);
  77 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  78 + JZSDK_LOG_ERROR("Flush failed: %d", ret);
  79 + goto cleanup;
  80 + }
  81 +
  82 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; // 标记成功
  83 +
  84 +cleanup:
  85 + // 6. 关闭文件句柄
  86 + if (fileHandle) {
  87 + fileSystemHandler->FileClose(fileHandle);
  88 + }
  89 + return ret;
  90 +}
  91 +
  92 +/**************
  93 + *
  94 + * 读取本地的语言信息
  95 + *
  96 + *
  97 + * ************/
  98 +static T_JZsdkReturnCode LanguageInfo_Read_LanguageInfo()
  99 +{
  100 + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  101 + if (g_LanguageInfoFileHandle != NULL) {
  102 + JZSDK_LOG_ERROR("Handle already open");
  103 + return ret;
  104 + }
  105 +
  106 + T_JZsdkFSHandler *fileSystemHandler = JZsdk_GetFsHandler();
  107 + if (!fileSystemHandler) {
  108 + JZSDK_LOG_ERROR("No FS handler");
  109 + return ret;
  110 + }
  111 +
  112 + U8_t buf[32];
  113 + U32_t readLen = 0;
  114 +
  115 + ret = fileSystemHandler->FileOpen(LANGUAGE_INFO_FILE_NAME, FS_ONLY_READ, &g_LanguageInfoFileHandle);
  116 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  117 + JZSDK_LOG_ERROR("Open failed: %d", ret);
  118 + goto cleanup;
  119 + }
  120 +
  121 + ret = fileSystemHandler->FileRead_U8(g_LanguageInfoFileHandle, buf, sizeof(buf), &readLen);
  122 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  123 + JZSDK_LOG_ERROR("Read failed: %d", ret);
  124 + goto cleanup;
  125 + }
  126 +
  127 + // 解析内容到 g_LanguageInfo
  128 + int num = buf[0];
  129 + g_LanguageInfo = (E_LanguageInfo)(num - '0');
  130 + JZSDK_LOG_INFO("LanguageInfo: %d", g_LanguageInfo);
  131 +
  132 +cleanup:
  133 + if (g_LanguageInfoFileHandle) {
  134 + fileSystemHandler->FileClose(g_LanguageInfoFileHandle);
  135 + g_LanguageInfoFileHandle = NULL;
  136 + }
  137 + return ret;
  138 +}
  139 +
  140 +/*******************
  141 + *
  142 + * 获取语言信息
  143 + *
  144 + * ***********************/
  145 +E_LanguageInfo LanguageInfo_Get_LanguageInfo()
  146 +{
  147 + //获取程序的语言版本
  148 + return g_LanguageInfo;
  149 +}
  150 +
  151 +
  1 +/**
  2 + ********************************************************************
  3 + * @file LanguageInfo.h
  4 + * LanguageInfo.h 的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef LANGUAGE_INFO_H
  11 +#define LANGUAGE_INFO_H
  12 +
  13 +/* Includes ------------------------------------------------------------------*/
  14 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  15 +
  16 +#ifdef __cplusplus
  17 +extern "C" {
  18 +#endif
  19 +
  20 +/* Exported constants --------------------------------------------------------*/
  21 +/* 常亮定义*/
  22 +
  23 +/* Exported types ------------------------------------------------------------*/
  24 +typedef enum E_LanguageInfo{
  25 + LANGUAGE_INFO_CHINESE = 0,
  26 + LANGUAGE_INFO_ENGLISH = 1,
  27 +}E_LanguageInfo;
  28 +
  29 +/* Exported functions --------------------------------------------------------*/
  30 +E_LanguageInfo LanguageInfo_Get_LanguageInfo();
  31 +T_JZsdkReturnCode LanguageInfo_Write_LanguageInfo(E_LanguageInfo language);
  32 +T_JZsdkReturnCode LanguageInfo_Init();
  33 +
  34 +
  35 +#ifdef __cplusplus
  36 +}
  37 +#endif
  38 +
  39 +#endif
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 #include "DeviceInfo/SerialNumberProc/SerialProc.h" 7 #include "DeviceInfo/SerialNumberProc/SerialProc.h"
8 #include "JZsdk_Base/JZsdk_Code/JZsdk_SMT_Code.h" 8 #include "JZsdk_Base/JZsdk_Code/JZsdk_SMT_Code.h"
9 #include "./FirewareOriginMAT.h" 9 #include "./FirewareOriginMAT.h"
  10 +#include "DeviceInfo/DeviceInfo.h"
10 11
11 static int g_OriginRegionNum = ORIGIN_DEFAULT; 12 static int g_OriginRegionNum = ORIGIN_DEFAULT;
12 13
@@ -18,14 +19,17 @@ static int g_OriginRegionNum = ORIGIN_DEFAULT; @@ -18,14 +19,17 @@ static int g_OriginRegionNum = ORIGIN_DEFAULT;
18 * *******************/ 19 * *******************/
19 T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char *SerialNumber, unsigned int SerialNumberLen) 20 T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char *SerialNumber, unsigned int SerialNumberLen)
20 { 21 {
  22 + //读取语言文件
  23 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  24 +
21 //没有定义过的序列号,或是没有序列号 25 //没有定义过的序列号,或是没有序列号
22 if (SerialType == UNDEFINED_SNM || SerialType == STANDARD_DJI_SNM) 26 if (SerialType == UNDEFINED_SNM || SerialType == STANDARD_DJI_SNM)
23 { 27 {
24 - if (FIRMWARE_ORIGIN == DOMESTIC_VERSION) 28 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
25 { 29 {
26 g_OriginRegionNum = ORIGIN_CN; 30 g_OriginRegionNum = ORIGIN_CN;
27 } 31 }
28 - else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION) 32 + else if (LanguageInfo == LANGUAGE_INFO_ENGLISH)
29 { 33 {
30 g_OriginRegionNum = ORIGIN_EN; 34 g_OriginRegionNum = ORIGIN_EN;
31 } 35 }
@@ -40,11 +44,11 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char @@ -40,11 +44,11 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char
40 //旧类型的 44 //旧类型的
41 if (SerialType == STANDARD_JZ_1_SNM) 45 if (SerialType == STANDARD_JZ_1_SNM)
42 { 46 {
43 - if (FIRMWARE_ORIGIN == DOMESTIC_VERSION) 47 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
44 { 48 {
45 g_OriginRegionNum = ORIGIN_CN; 49 g_OriginRegionNum = ORIGIN_CN;
46 } 50 }
47 - else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION) 51 + else if (LanguageInfo == LANGUAGE_INFO_ENGLISH)
48 { 52 {
49 g_OriginRegionNum = ORIGIN_EN; 53 g_OriginRegionNum = ORIGIN_EN;
50 } 54 }
@@ -92,11 +96,11 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char @@ -92,11 +96,11 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char
92 } 96 }
93 97
94 //无匹配序列号 98 //无匹配序列号
95 - if (FIRMWARE_ORIGIN == DOMESTIC_VERSION) 99 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
96 { 100 {
97 g_OriginRegionNum = ORIGIN_CN; 101 g_OriginRegionNum = ORIGIN_CN;
98 } 102 }
99 - else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION) 103 + else if (LanguageInfo == LANGUAGE_INFO_ENGLISH)
100 { 104 {
101 g_OriginRegionNum = ORIGIN_EN; 105 g_OriginRegionNum = ORIGIN_EN;
102 } 106 }
@@ -15,12 +15,13 @@ @@ -15,12 +15,13 @@
15 15
16 #define IRC_DEALMODE_JZSDK 0 16 #define IRC_DEALMODE_JZSDK 0
17 #define IRC_DEALMODE_KTLIB 1 17 #define IRC_DEALMODE_KTLIB 1
  18 +#define IRC_DEALMODE_SAT 2
18 19
19 int g_temp_GasValueMax = 160; 20 int g_temp_GasValueMax = 160;
20 int g_temp_GasValueMin = 30; 21 int g_temp_GasValueMin = 30;
21 22
22 struct IRC_param *g_IRC_Param = NULL; 23 struct IRC_param *g_IRC_Param = NULL;
23 -static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, int width, int frameRate); 24 +static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, int width, int frameRate, IRC_DealMode dealMode);
24 static int lastSPCMode = -1; //0低温数据 1手动打档 2自动打档 25 static int lastSPCMode = -1; //0低温数据 1手动打档 2自动打档
25 static int lastTPCMode = -1; 26 static int lastTPCMode = -1;
26 27
@@ -34,11 +35,11 @@ static FILE *temp_fp = NULL; @@ -34,11 +35,11 @@ static FILE *temp_fp = NULL;
34 备注: 35 备注:
35 36
36 */ 37 */
37 -T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate) 38 +T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate, IRC_DealMode dealMode)
38 { 39 {
39 T_JZsdkReturnCode ret; 40 T_JZsdkReturnCode ret;
40 41
41 - ret = IRC_param_Init(&g_IRC_Param, height, width, frameRate); 42 + ret = IRC_param_Init(&g_IRC_Param, height, width, frameRate, dealMode);
42 43
43 if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB) 44 if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
44 { 45 {
@@ -47,11 +48,13 @@ T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate) @@ -47,11 +48,13 @@ T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate)
47 #endif 48 #endif
48 } 49 }
49 50
50 - // temp_fp = fopen("IRC_temp.raw", "w");  
51 - // if (temp_fp == NULL)  
52 - // {  
53 - // JZSDK_LOG_ERROR("IRC_temp.raw文件打开失败");  
54 - // } 51 + else if (g_IRC_Param->DealWay == IRC_DEALMODE_SAT)
  52 + {
  53 +#ifdef SATIRC_LIB_STATUS_ON
  54 +
  55 +#endif
  56 + }
  57 +
55 58
56 return ret; 59 return ret;
57 } 60 }
@@ -1302,7 +1305,7 @@ T_JZsdkReturnCode Proc_IRC_param(int flagcode, enum JZsdk_Widget_Control paramfl @@ -1302,7 +1305,7 @@ T_JZsdkReturnCode Proc_IRC_param(int flagcode, enum JZsdk_Widget_Control paramfl
1302 * 1305 *
1303 * 1306 *
1304 * ************************************************************************************************/ 1307 * ************************************************************************************************/
1305 -static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, int width, int frameRate) 1308 +static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, int width, int frameRate, IRC_DealMode dealMode)
1306 { 1309 {
1307 T_JZsdkReturnCode ret; 1310 T_JZsdkReturnCode ret;
1308 1311
@@ -1316,7 +1319,7 @@ static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, in @@ -1316,7 +1319,7 @@ static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, in
1316 } 1319 }
1317 1320
1318 //IrcDealCfg->DealWay = IRC_DEALMODE_JZSDK; 1321 //IrcDealCfg->DealWay = IRC_DEALMODE_JZSDK;
1319 - IrcDealCfg->DealWay = IRC_DEALMODE_KTLIB; 1322 + IrcDealCfg->DealWay = dealMode;
1320 1323
1321 //我们自己库要水平翻转 1324 //我们自己库要水平翻转
1322 if (IrcDealCfg->DealWay == IRC_DEALMODE_JZSDK) 1325 if (IrcDealCfg->DealWay == IRC_DEALMODE_JZSDK)
@@ -23,10 +23,15 @@ extern "C" { @@ -23,10 +23,15 @@ extern "C" {
23 23
24 24
25 /* Exported types ----------------------------- -------------------------------*/ 25 /* Exported types ----------------------------- -------------------------------*/
  26 +typedef enum IRC_DealMode{
  27 + IRC_DEAL_MODE_JZ = 0,
  28 + IRC_DEAL_MODE_KT = 1,
  29 + IRC_DEAL_MODE_SAT = 2,
  30 +}IRC_DealMode;
26 31
27 /* Exported functions --------------------------------------------------------*/ 32 /* Exported functions --------------------------------------------------------*/
28 33
29 -T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate); 34 +T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate, IRC_DealMode dealMode);
30 T_JZsdkReturnCode IRC_FrameDeal(U16_t *rawData ,unsigned int dataSize, unsigned char **outData, unsigned int *outDataSize); 35 T_JZsdkReturnCode IRC_FrameDeal(U16_t *rawData ,unsigned int dataSize, unsigned char **outData, unsigned int *outDataSize);
31 36
32 T_JZsdkReturnCode IRC_SetRawPixel_ResetFlag(); 37 T_JZsdkReturnCode IRC_SetRawPixel_ResetFlag();
  1 +
  2 +#include "JZsdkLib.h"
  3 +
  4 +#include "BaseConfig.h"
  5 +
  6 +#ifdef SATIRC_LIB_STATUS_ON
  7 +#include "satir_module.h"
  8 +#include "Sat_Irc.h"
  9 +
  10 +TSatIR_Module irModule; // 实例化对象
  11 +
  12 +T_JZsdkReturnCode SatIrc_init()
  13 +{
  14 + int ret = irModule.openIRCamera();
  15 + if (ret != 0)
  16 + {
  17 + JZSDK_LOG_ERROR("打开红外相机失败");
  18 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  19 + }
  20 +
  21 + //获取红外图像的分辨率
  22 + int width = irModule.getIRWidth();
  23 + int height = irModule.getIRHeight();
  24 +
  25 + JZSDK_LOG_INFO("获取到红外图像的分辨率为:宽:%d,高:%d", width, height);
  26 +
  27 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  28 +}
  29 +
  30 +
  31 +T_JZsdkReturnCode SatIrc_SetColorPalette(int color)
  32 +{
  33 + irModule.setColorPalette((TSatIR_Module::ColorPalette)color);
  34 +
  35 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  36 +}
  37 +
  38 +/********************
  39 + *
  40 + * 打档
  41 + * 1内参考
  42 + * 2外参考
  43 + *
  44 + * *****************/
  45 +T_JZsdkReturnCode SatIrc_DoShutter(int type)
  46 +{
  47 + irModule.doShutter(type);
  48 +
  49 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  50 +}
  51 +
  52 +/*************
  53 + *
  54 + *
  55 + * 获取rgb图像
  56 + *
  57 + *
  58 + * ************/
  59 +T_JZsdkReturnCode SatIrc_GetIRImage(U8_t *image, int PixelNum)
  60 +{
  61 + std::vector<uint8_t> outGray8;
  62 + std::vector<uint32_t> outRGBImage;
  63 +
  64 + // 调用获取红外帧的函数
  65 + irModule.getIRFrame(outGray8, outRGBImage);
  66 +
  67 + // 检查获取的数据是否有效
  68 + if (outRGBImage.empty() || outRGBImage.size() < PixelNum)
  69 + {
  70 + JZSDK_LOG_ERROR("获取红外图像失败");
  71 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  72 + }
  73 +
  74 + // 直接将32位RGB数据拷贝到输出缓冲区
  75 + // 每个像素占4字节(R|G|B|A或R|G|B|X,具体格式取决于SDK)
  76 + memcpy(image, outRGBImage.data(), PixelNum * sizeof(uint32_t));
  77 +
  78 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  79 +}
  80 +
  81 +#endif // SATIRC_LIB_STATUS_ON
  1 +/* ********************************************************************
  2 +*
  3 +*
  4 +*
  5 +***********************************************/
  6 +#ifndef SAT_IRC_H
  7 +#define SAT_IRC_H
  8 +
  9 +#include "JZsdkLib.h"
  10 +
  11 +
  12 +#ifdef __cplusplus
  13 +extern "C" {
  14 +#endif
  15 +
  16 +T_JZsdkReturnCode SatIrc_init();
  17 +T_JZsdkReturnCode SatIrc_SetColorPalette(int color);
  18 +T_JZsdkReturnCode SatIrc_GetIRImage(U8_t *image, int PixelNum);
  19 +
  20 +#ifdef __cplusplus
  21 +}
  22 +#endif
  23 +
  24 +#endif
@@ -18,9 +18,9 @@ T_JZsdkReturnCode Start_voice() @@ -18,9 +18,9 @@ T_JZsdkReturnCode Start_voice()
18 } 18 }
19 else 19 else
20 { 20 {
21 - //根据属地设置默认语言  
22 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
23 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 21 + //根据语言信息设置语言
  22 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  23 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
24 { 24 {
25 int language = 0x01; 25 int language = 0x01;
26 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language); 26 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
@@ -51,8 +51,8 @@ T_JZsdkReturnCode Start_up_and_broadcast_voice() @@ -51,8 +51,8 @@ T_JZsdkReturnCode Start_up_and_broadcast_voice()
51 if (APP_VERSION == APP_PSDK) 51 if (APP_VERSION == APP_PSDK)
52 { 52 {
53 //根据属地设置默认语言 53 //根据属地设置默认语言
54 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
55 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 54 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  55 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
56 { 56 {
57 int language = 0x01; 57 int language = 0x01;
58 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language); 58 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
@@ -93,8 +93,8 @@ T_JZsdkReturnCode Start_up_and_broadcast_voice() @@ -93,8 +93,8 @@ T_JZsdkReturnCode Start_up_and_broadcast_voice()
93 { 93 {
94 94
95 //根据属地设置默认语言 95 //根据属地设置默认语言
96 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
97 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 96 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  97 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
98 { 98 {
99 int language = 0x01; 99 int language = 0x01;
100 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language); 100 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
@@ -129,12 +129,10 @@ T_JZsdkReturnCode AttentionVoice_IndependencePlay() @@ -129,12 +129,10 @@ T_JZsdkReturnCode AttentionVoice_IndependencePlay()
129 129
130 delayMs(100); 130 delayMs(100);
131 131
132 - //根据属地设置默认语言 132 + //根据语言信息设置默认语言
133 int language = 0; 133 int language = 0;
134 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
135 -  
136 - //如果是国内版或者无属地 设置为中文  
137 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 134 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  135 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
138 { 136 {
139 language = 0x01; 137 language = 0x01;
140 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language); 138 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
@@ -12,7 +12,8 @@ @@ -12,7 +12,8 @@
12 #include "JZsdkLib.h" 12 #include "JZsdkLib.h"
13 #include "BaseConfig.h" 13 #include "BaseConfig.h"
14 #include "Megaphone/Megaphone.h" 14 #include "Megaphone/Megaphone.h"
15 -#include "Megaphone/VolumeLimit.h" 15 +#include "Megaphone/Volume/VolumeLimit.h"
  16 +#include "Megaphone/Volume/volume.h"
16 17
17 #define C_TIME 10 18 #define C_TIME 10
18 #define MAX_TIME 240 19 #define MAX_TIME 240
@@ -119,11 +120,11 @@ static T_JZsdkReturnCode MegTempRead_ImitateTem(int *fd) @@ -119,11 +120,11 @@ static T_JZsdkReturnCode MegTempRead_ImitateTem(int *fd)
119 { 120 {
120 if (status == 0x20) 121 if (status == 0x20)
121 { 122 {
122 - PlayVolume = RealVolume * 92 /100; 123 + PlayVolume = RealVolume * MAX_TTS_VOLUME /100;
123 } 124 }
124 else 125 else
125 { 126 {
126 - PlayVolume = RealVolume * 82/100; 127 + PlayVolume = RealVolume * MAX_VOLUME/100;
127 } 128 }
128 } 129 }
129 130
@@ -356,9 +357,11 @@ static void *MegTempControl_task(void *arg) @@ -356,9 +357,11 @@ static void *MegTempControl_task(void *arg)
356 { 357 {
357 //JZSDK_LOG_DEBUG("温控调整了温度"); 358 //JZSDK_LOG_DEBUG("温控调整了温度");
358 359
359 - Meg_SetVolumeFun(BalanceVolume); 360 + //修改音量
  361 + Megaphone_SetSystemVolume(BalanceVolume);
360 362
361 - Megaphone_PrintVolume(BalanceVolume, 1); 363 + //修改ui
  364 + Meg_TempControlVolumeUi(BalanceVolume);
362 } 365 }
363 366
364 OldBalanceVolume = BalanceVolume; 367 OldBalanceVolume = BalanceVolume;
@@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
17 #include "JZsdk_Hal.h" 17 #include "JZsdk_Hal.h"
18 18
19 #include "Megaphone/MegTempControl/MegTempControl.h" 19 #include "Megaphone/MegTempControl/MegTempControl.h"
20 -#include "./VolumeLimit.h"  
21 #include "../AudioDeal/AudioDeal.h" 20 #include "../AudioDeal/AudioDeal.h"
22 #include "./TTS/Megaphone_TTS.h" 21 #include "./TTS/Megaphone_TTS.h"
23 #include "./TTS/cnTTS/cnTTS.h" 22 #include "./TTS/cnTTS/cnTTS.h"
@@ -33,9 +32,6 @@ @@ -33,9 +32,6 @@
33 32
34 int MegPlayStatusUnChange_flag = JZ_FLAGCODE_OFF; 33 int MegPlayStatusUnChange_flag = JZ_FLAGCODE_OFF;
35 static MegaphonePlayStatus g_Megaphone_Play_Status = AUDIO_PLAY_STATUS_IDLE; 34 static MegaphonePlayStatus g_Megaphone_Play_Status = AUDIO_PLAY_STATUS_IDLE;
36 -static int g_Megaphone_Volume = 30;  
37 -static int g_Megaphone_RealTargetVolume = 30; //喊话器的实际目标音量  
38 -static int g_Megaphone_RealSetVolue = 30; //喊话器的实际音量  
39 35
40 static int g_Megaphone_Loop = JZ_FLAGCODE_OFF; //循环播放 36 static int g_Megaphone_Loop = JZ_FLAGCODE_OFF; //循环播放
41 static int g_Megaphone_LoopInterval = 1000; //循环播放间隔 单位ms 37 static int g_Megaphone_LoopInterval = 1000; //循环播放间隔 单位ms
@@ -47,11 +43,7 @@ int MegaphoneStatusFlag = JZ_FLAGCODE_OFF; //撌脩 @@ -47,11 +43,7 @@ int MegaphoneStatusFlag = JZ_FLAGCODE_OFF; //撌脩
47 struct MegaphoneInfo *g_MegaphoneInfo = NULL; //喊话器数据结构体 43 struct MegaphoneInfo *g_MegaphoneInfo = NULL; //喊话器数据结构体
48 44
49 static T_JZsdkReturnCode Megaphone_ConvertPlayStatus(int status); 45 static T_JZsdkReturnCode Megaphone_ConvertPlayStatus(int status);
50 -T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode);//设置音量,音量0-100,默认音量value==10。  
51 46
52 -static int g_TTS_Max_volume = 0; //用于存储tts最大音量限制  
53 -static int g_Max_volume = 0; //用于存储最大音量限制  
54 -static double PowerSimulation = 0; //用于模拟喊话器功率状态  
55 47
56 /********************** 48 /**********************
57 * 49 *
@@ -140,6 +132,8 @@ T_JZsdkReturnCode Megaphone_MegDataGenFinshFlag(int order, int Flag) @@ -140,6 +132,8 @@ T_JZsdkReturnCode Megaphone_MegDataGenFinshFlag(int order, int Flag)
140 { 132 {
141 return MegDataGenFinsh_Flag; 133 return MegDataGenFinsh_Flag;
142 } 134 }
  135 +
  136 + //JZSDK_LOG_DEBUG("设置数据生产完成标志位:0x%d",Flag);
143 137
144 MegDataGenFinsh_Flag = Flag; 138 MegDataGenFinsh_Flag = Flag;
145 139
@@ -163,7 +157,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me @@ -163,7 +157,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me
163 JZSDK_LOG_ERROR("无法进行播放操作,目前正在进行实时语音播放"); 157 JZSDK_LOG_ERROR("无法进行播放操作,目前正在进行实时语音播放");
164 return JZ_ERRORCODE_REALTIMEVOICE_HAS_BEEN_ON; 158 return JZ_ERRORCODE_REALTIMEVOICE_HAS_BEEN_ON;
165 } 159 }
166 - 160 +
167 //把暂停音乐的标志关了 161 //把暂停音乐的标志关了
168 AudioDeal_PauseAndContinuePlay(JZ_FLAGCODE_OFF); 162 AudioDeal_PauseAndContinuePlay(JZ_FLAGCODE_OFF);
169 163
@@ -891,90 +885,7 @@ T_JZsdkReturnCode Megaphone_Amplifier_param(int flagcode, int *value) @@ -891,90 +885,7 @@ T_JZsdkReturnCode Megaphone_Amplifier_param(int flagcode, int *value)
891 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 885 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
892 } 886 }
893 887
894 -/*********************  
895 - *  
896 - * 最大音量加载  
897 - *  
898 - * ***********************/  
899 -static T_JZsdkReturnCode Megaphone_MaxVolume_Init()  
900 -{  
901 - g_Max_volume = MAX_VOLUME;  
902 - g_TTS_Max_volume = MAX_TTS_VOLUME;  
903 -  
904 - if (DEVICE_VERSION == JZ_H1T)  
905 - {  
906 - //检索版本号  
907 - if (HardwareInfo_GetVersion(0) == 0x01  
908 - && HardwareInfo_GetVersion(1) == 0x02  
909 - && HardwareInfo_GetVersion(2) == 0x00  
910 - && HardwareInfo_GetVersion(3) == 0x00  
911 - )  
912 - {  
913 - g_Max_volume = 72;  
914 - g_TTS_Max_volume = 81;  
915 - }  
916 - }  
917 -  
918 - JZSDK_LOG_INFO("MaxV:%d MaxTTS_V:%d",g_Max_volume, g_TTS_Max_volume);  
919 -  
920 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
921 -}  
922 -  
923 -  
924 -static void *JZsdk_PowerSimulationThread(void *args)  
925 -{  
926 - T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();  
927 -  
928 - while(1)  
929 - {  
930 - //获取当前播放状态  
931 - int play_status = Megaphone_GetMegaphoneStatus();  
932 -  
933 - //生产一个随机数  
934 - U16_t randomNum;  
935 - OsalHandle->GetRandomNum(&randomNum); // 获取 0~65535 的随机数  
936 -  
937 - // 转换为 [0.5, 1.2) 范围  
938 - double normalized = 0.5 + ((double)randomNum / 65535.0) * 0.7;  
939 -  
940 - //获取音量百分比  
941 - int volume = g_Megaphone_Volume;  
942 - double _volume = (double)volume / 100;  
943 - if (_volume < 0.1)  
944 - {  
945 - _volume = 0.1;  
946 - }  
947 -  
948 - if (play_status == AUDIO_PLAY_STATUS_IDLE)  
949 - {  
950 - PowerSimulation = 25 * 0.1 * normalized;  
951 - }  
952 - else  
953 - {  
954 - PowerSimulation = 25* _volume * normalized;  
955 - }  
956 -  
957 - //printf("PowerSimulation:%0.1f\n",PowerSimulation);  
958 -  
959 - OsalHandle->TaskSleepMs(1000);  
960 - }  
961 -}  
962 -  
963 -//获取模拟功率  
964 -double JZsdk_GetMagaphonePowerSimulation()  
965 -{  
966 - return PowerSimulation;  
967 -}  
968 -  
969 -static T_JZsdkReturnCode PowerSimulation_Init()  
970 -{  
971 - T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();  
972 -  
973 - T_JZTaskHandle single_task = NULL;  
974 - OsalHandle->TaskCreate("PowerSimulation", JZsdk_PowerSimulationThread, 8192, NULL , &single_task);  
975 888
976 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
977 -}  
978 889
979 /********* 890 /*********
980 * 891 *
@@ -991,8 +902,8 @@ T_JZsdkReturnCode Megaphone_Init() @@ -991,8 +902,8 @@ T_JZsdkReturnCode Megaphone_Init()
991 902
992 JZsdk_Malloc((void **)&g_MegaphoneInfo, sizeof(struct MegaphoneInfo)); 903 JZsdk_Malloc((void **)&g_MegaphoneInfo, sizeof(struct MegaphoneInfo));
993 904
994 - //最大音量初始化  
995 - Megaphone_MaxVolume_Init(); 905 + //音量初始化
  906 + Megaphone_Volume_Init();
996 907
997 //TTS功能初始化 908 //TTS功能初始化
998 Megaphone_TTS_Init(); 909 Megaphone_TTS_Init();
@@ -1003,15 +914,12 @@ T_JZsdkReturnCode Megaphone_Init() @@ -1003,15 +914,12 @@ T_JZsdkReturnCode Megaphone_Init()
1003 //pcm列表初始化 914 //pcm列表初始化
1004 Megaphone_PcmFile_Init(); 915 Megaphone_PcmFile_Init();
1005 916
1006 - //设置音量  
1007 - Megaphone_SetVolume(30, 0);  
1008 -  
1009 //温控初始化 917 //温控初始化
1010 MegTempControl_Init(); 918 MegTempControl_Init();
1011 919
1012 - //根据属地设置默认语言  
1013 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
1014 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 920 + //根据语言信息设置默认语言
  921 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  922 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
1015 { 923 {
1016 int language = 0x01; 924 int language = 0x01;
1017 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language); 925 Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
@@ -1024,7 +932,7 @@ T_JZsdkReturnCode Megaphone_Init() @@ -1024,7 +932,7 @@ T_JZsdkReturnCode Megaphone_Init()
1024 932
1025 //设置一个模拟功率函数 933 //设置一个模拟功率函数
1026 //PowerSimulation_Init(); 934 //PowerSimulation_Init();
1027 - 935 +
1028 MegaphoneStatusFlag = JZ_FLAGCODE_ON; 936 MegaphoneStatusFlag = JZ_FLAGCODE_ON;
1029 } 937 }
1030 938
@@ -1044,7 +952,7 @@ T_JZsdkReturnCode Megaphone_param(int flagcode, enum MegaphoneParam paramflag, i @@ -1044,7 +952,7 @@ T_JZsdkReturnCode Megaphone_param(int flagcode, enum MegaphoneParam paramflag, i
1044 { 952 {
1045 case MEGAPHONE_VOLUME: 953 case MEGAPHONE_VOLUME:
1046 { 954 {
1047 - *value = g_Megaphone_Volume; 955 + *value = Megaphone_GetUiVolume();
1048 } 956 }
1049 break; 957 break;
1050 958
@@ -1088,7 +996,7 @@ T_JZsdkReturnCode Megaphone_param(int flagcode, enum MegaphoneParam paramflag, i @@ -1088,7 +996,7 @@ T_JZsdkReturnCode Megaphone_param(int flagcode, enum MegaphoneParam paramflag, i
1088 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 996 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
1089 } 997 }
1090 998
1091 - Megaphone_PrintVolume(*value, 0); 999 + Megaphone_SetVolume(*value, 0);
1092 } 1000 }
1093 break; 1001 break;
1094 1002
@@ -1174,26 +1082,23 @@ T_JZsdkReturnCode Megaphone_PlayContinue() @@ -1174,26 +1082,23 @@ T_JZsdkReturnCode Megaphone_PlayContinue()
1174 int ami =JZ_FLAGCODE_ON; 1082 int ami =JZ_FLAGCODE_ON;
1175 Megaphone_Amplifier_param(JZ_FLAGCODE_SET, &ami); 1083 Megaphone_Amplifier_param(JZ_FLAGCODE_SET, &ami);
1176 1084
1177 - //查看播放状态是否不处于停止  
1178 - if (g_Megaphone_Play_Status == AUDIO_PLAY_STATUS_IDLE)  
1179 - {  
1180 - //播放当前音频  
1181 - unsigned char CurrentName[128];  
1182 - memset(CurrentName,0,sizeof(CurrentName));  
1183 - unsigned int CurrentNameLen = 0;  
1184 - unsigned int CurrentNum = 0;  
1185 - AudioMange_Get_FilePlayName(CurrentName, &CurrentNameLen, &CurrentNum);  
1186 - UIcontrol_PlayAudioFile(NO_SPECIFIED ,CurrentName, CurrentNameLen);  
1187 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
1188 -  
1189 - }  
1190 - else if (g_Megaphone_Play_Status == AUDIO_PLAY_STATUS_MUSIC) 1085 + //如果正处于播放音频,则恢复播放
  1086 + if (g_Megaphone_Play_Status == AUDIO_PLAY_STATUS_MUSIC)
1191 { 1087 {
1192 AudioDeal_PauseAndContinuePlay(JZ_FLAGCODE_OFF); 1088 AudioDeal_PauseAndContinuePlay(JZ_FLAGCODE_OFF);
1193 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 1089 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
1194 } 1090 }
  1091 + //如果正处于其他播放状态,则改为播放当前音频
1195 else 1092 else
1196 { 1093 {
  1094 + //播放当前音频
  1095 + unsigned char CurrentName[128];
  1096 + memset(CurrentName,0,sizeof(CurrentName));
  1097 + unsigned int CurrentNameLen = 0;
  1098 + unsigned int CurrentNum = 0;
  1099 + AudioMange_Get_FilePlayName(CurrentName, &CurrentNameLen, &CurrentNum);
  1100 + UIcontrol_PlayAudioFile(NO_SPECIFIED ,CurrentName, CurrentNameLen);
  1101 +
1197 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 1102 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
1198 } 1103 }
1199 } 1104 }
@@ -1318,285 +1223,6 @@ T_JZsdkReturnCode Megaphone_GetMusicListMessage(unsigned char *message) @@ -1318,285 +1223,6 @@ T_JZsdkReturnCode Megaphone_GetMusicListMessage(unsigned char *message)
1318 1223
1319 1224
1320 1225
1321 -/****************************************************************************************************************************************************  
1322 -*  
1323 -* 音量调节  
1324 -*  
1325 -****************************************************************************************************************************************************/  
1326 -int now_volume=20;//默认音量10--》50+10/2==55  
1327 -static void *Meg_SetVolumeTask(void *arg);  
1328 -static T_JZsdkReturnCode Megaphone_SetTTSvolume();  
1329 -  
1330 -/*********************  
1331 - *  
1332 - * mode == 0 正常调音量  
1333 - * mode == 1 tts调音量  
1334 - *  
1335 - * ************************/  
1336 -T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode)//设置音量,音量0-100,默认音量value==10。  
1337 -{  
1338 - pthread_t SET_volume_task;  
1339 - pthread_attr_t task_attribute; //线程属性  
1340 - pthread_attr_init(&task_attribute); //初始化线程属性  
1341 - pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程属性  
1342 - printf("传入的值:%d\n",value);  
1343 -  
1344 -  
1345 - if (mode == 1)  
1346 - {  
1347 - return Megaphone_SetTTSvolume();  
1348 - }  
1349 -  
1350 - now_volume=value;//获取当前音量  
1351 -  
1352 - //v3s自设系统 要提高10初始音量  
1353 - if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)  
1354 - {  
1355 - if (value > 0)  
1356 - {  
1357 - value = 20 + value * 10/8;  
1358 - }  
1359 - }  
1360 -  
1361 - if(value<=0)  
1362 - {  
1363 - value=0;  
1364 - }  
1365 -  
1366 - else if(value>0&&value<100)  
1367 - {  
1368 - value=value*g_Max_volume/100 *255/100;  
1369 - }  
1370 -  
1371 - else if(value>=100)  
1372 - {  
1373 - value=100*g_Max_volume/100 *255/100;  
1374 - }  
1375 -  
1376 - int* set_volume_value_ptr = malloc(sizeof(int)); // 动态分配内存  
1377 - if (set_volume_value_ptr == NULL)  
1378 - {  
1379 - JZSDK_LOG_ERROR("设置音量失败");  
1380 - return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;  
1381 - }  
1382 -  
1383 - *set_volume_value_ptr = value;  
1384 -  
1385 - int volume_ret = pthread_create(&SET_volume_task,&task_attribute,Meg_SetVolumeTask,set_volume_value_ptr); //TTS线程  
1386 - if(volume_ret != 0)  
1387 - {  
1388 - JZSDK_LOG_ERROR("设置音量失败");  
1389 - free(set_volume_value_ptr);  
1390 - set_volume_value_ptr = NULL;  
1391 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
1392 - }  
1393 -}  
1394 -  
1395 -static T_JZsdkReturnCode Megaphone_SetTTSvolume()  
1396 -{  
1397 - pthread_t SET_volume_task;  
1398 - pthread_attr_t task_attribute; //线程属性  
1399 - pthread_attr_init(&task_attribute); //初始化线程属性  
1400 - pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程属性  
1401 -  
1402 - int value = now_volume;  
1403 - printf("TTS音量修改\n");  
1404 -  
1405 - //v3s自设系统 要提高10初始音量  
1406 - if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)  
1407 - {  
1408 - if (value > 0)  
1409 - {  
1410 - value = 20 + value * 10/8;  
1411 - }  
1412 - }  
1413 -  
1414 - if(value<=0)  
1415 - {  
1416 - value=0;  
1417 - }  
1418 -  
1419 - else if(value>0&&value<100)  
1420 - {  
1421 - value=value*g_TTS_Max_volume/100 *255/100;  
1422 - }  
1423 -  
1424 - else if(value>=100)  
1425 - {  
1426 - value=100*g_TTS_Max_volume/100 *255/100;  
1427 - }  
1428 -  
1429 - int* set_volume_value_ptr = malloc(sizeof(int)); // 动态分配内存  
1430 - if (set_volume_value_ptr == NULL)  
1431 - {  
1432 - JZSDK_LOG_ERROR("设置音量失败");  
1433 - return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;  
1434 - }  
1435 -  
1436 - *set_volume_value_ptr = value;  
1437 -  
1438 - int volume_ret = pthread_create(&SET_volume_task,&task_attribute,Meg_SetVolumeTask,set_volume_value_ptr); //TTS线程  
1439 - if(volume_ret != 0)  
1440 - {  
1441 - JZSDK_LOG_ERROR("设置音量失败");  
1442 - free(set_volume_value_ptr);  
1443 - set_volume_value_ptr = NULL;  
1444 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
1445 - }  
1446 -}  
1447 -  
1448 -T_JZsdkReturnCode Meg_SetVolumeFun(int volume)  
1449 -{  
1450 - char cmdBuffer[128];  
1451 -  
1452 - if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T || DEVICE_VERSION == JZ_H10)  
1453 - {  
1454 - snprintf(cmdBuffer,128, "amixer set -c 4 Master %d",volume);  
1455 - }  
1456 - else if (DEVICE_VERSION == JZ_H1E || DEVICE_VERSION == JZ_H1T || DEVICE_VERSION == TF_A1)  
1457 - {  
1458 - snprintf(cmdBuffer,128, "amixer set -c 0 Master %d",volume);  
1459 - }  
1460 - else if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)  
1461 - {  
1462 - snprintf(cmdBuffer,128, "amixer sset -c 0 'Headphone' %d unmute",volume);  
1463 - }  
1464 -  
1465 - g_Megaphone_RealSetVolue = volume;  
1466 - JZsdk_RunSystemCmd(cmdBuffer);  
1467 - printf("线程设置音量为:%d\n",volume);  
1468 -}  
1469 -  
1470 -static void *Meg_SetVolumeTask(void *arg)  
1471 -{  
1472 -  
1473 - int *volume_value = (int*)arg;  
1474 - g_Megaphone_RealTargetVolume = *volume_value; //记录一下实际设置的声音大小  
1475 -  
1476 - Meg_SetVolumeFun(*volume_value);  
1477 -  
1478 - free(volume_value);  
1479 -}  
1480 -  
1481 -/***  
1482 - *  
1483 - *  
1484 - * 获取当前音量值  
1485 - *  
1486 - * ***/  
1487 -int Megaphone_get_now_volume()  
1488 -{  
1489 - return now_volume;  
1490 -}  
1491 -  
1492 -/***  
1493 - *  
1494 - *  
1495 - * 获取实际设置音量值  
1496 - *  
1497 - * ***/  
1498 -int Megaphone_get_RealSetVolume()  
1499 -{  
1500 - return g_Megaphone_RealSetVolue;  
1501 -}  
1502 -  
1503 -/***  
1504 - *  
1505 - *  
1506 - * 获取实际目标音量值  
1507 - *  
1508 - * ***/  
1509 -int Megaphone_get_RealTargetVolume()  
1510 -{  
1511 - return g_Megaphone_RealTargetVolume;  
1512 -}  
1513 -  
1514 -  
1515 -/***  
1516 - *  
1517 - * 显示音量函数 范围0~100  
1518 - * 如果通过设置ui的音量 则flag = 0  
1519 - * 如果是温控调整音量,则flag = 1  
1520 - * ***/  
1521 -T_JZsdkReturnCode Megaphone_PrintVolume(int Value, int flag)  
1522 -{  
1523 -  
1524 - //正常设置音量  
1525 - if (flag == 0)  
1526 - {  
1527 - g_Megaphone_Volume = Value;  
1528 -  
1529 - Megaphone_SetVolume(g_Megaphone_Volume, 0);  
1530 - }  
1531 -  
1532 - //温控调整音量  
1533 - if (flag == 1)  
1534 - {  
1535 - //根据调整量反应到ui界面上  
1536 - //分为文本和歌曲  
1537 - int PlayStatus = Megaphone_GetMegaphoneStatus();  
1538 - int Ui_num = 0;  
1539 - int HundredMarkNum = 0;  
1540 -  
1541 -#if DEVICE_VERSION == JZ_H1T  
1542 - HundredMarkNum = (Value * 100 /255);  
1543 -#else  
1544 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
1545 -#endif  
1546 -  
1547 - //如果是文本  
1548 - if (PlayStatus == 0x20)  
1549 - {  
1550 - //计算出ui值  
1551 - Ui_num = HundredMarkNum * 100 / g_TTS_Max_volume;  
1552 - }  
1553 - else  
1554 - {  
1555 - //计算出ui值  
1556 - Ui_num = HundredMarkNum * 100 / g_Max_volume;  
1557 - }  
1558 -  
1559 - if (g_Megaphone_Volume > Ui_num)  
1560 - {  
1561 - g_Megaphone_Volume--;  
1562 - }  
1563 - else if (g_Megaphone_Volume < Ui_num)  
1564 - {  
1565 - g_Megaphone_Volume++;  
1566 - }  
1567 - else  
1568 - {  
1569 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
1570 - }  
1571 -  
1572 - //修改ui值  
1573 -  
1574 - //通知其他设备的ui界面变化  
1575 - //如果4G模块有启动  
1576 - if ( (JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON))  
1577 - {  
1578 - HalSend_type1Send_Reply_Volume(UART_4G, 0, g_Megaphone_Volume);  
1579 - }  
1580 - //如果设备1有启动  
1581 - if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) )  
1582 - {  
1583 - HalSend_type1Send_Reply_Volume(UART_DEV_1, 0, g_Megaphone_Volume);  
1584 - }  
1585 - //如果设备2有启动  
1586 - if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) )  
1587 - {  
1588 - HalSend_type1Send_Reply_Volume(UART_DEV_2, 0, g_Megaphone_Volume);  
1589 - }  
1590 - //如果psdk接口已经使用  
1591 - if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON))  
1592 - {  
1593 - JZsdk_Psdk_UI_io_Reply_Volume(g_Megaphone_Volume);  
1594 - }  
1595 - }  
1596 -  
1597 -}  
1598 -  
1599 -  
1600 1226
1601 /************************************************************************************************************************************************ 1227 /************************************************************************************************************************************************
1602 * 1228 *
@@ -1680,7 +1306,7 @@ T_JZsdkReturnCode Megaphone_PresetTask() @@ -1680,7 +1306,7 @@ T_JZsdkReturnCode Megaphone_PresetTask()
1680 int volume = 30; //初始音量 1306 int volume = 30; //初始音量
1681 while (PrsetTask_GetPrsetTaskFlag() == JZ_FLAGCODE_ON && volume <=100) 1307 while (PrsetTask_GetPrsetTaskFlag() == JZ_FLAGCODE_ON && volume <=100)
1682 { 1308 {
1683 - UIcontrol_SetVolume(NO_SPECIFIED, volume); 1309 + UIcontrol_SetVolume(NO_SPECIFIED, volume, JZ_FLAGCODE_ON);
1684 volume += 10; 1310 volume += 10;
1685 delayS(5); 1311 delayS(5);
1686 } 1312 }
@@ -92,7 +92,6 @@ T_JZsdkReturnCode Megaphone_PlayNextSong(); @@ -92,7 +92,6 @@ T_JZsdkReturnCode Megaphone_PlayNextSong();
92 T_JZsdkReturnCode Megaphone_PlayContinue(); 92 T_JZsdkReturnCode Megaphone_PlayContinue();
93 T_JZsdkReturnCode Megaphone_PlayPause(); 93 T_JZsdkReturnCode Megaphone_PlayPause();
94 int Megaphone_GetMegaphoneStatus(); 94 int Megaphone_GetMegaphoneStatus();
95 -int Megaphone_get_now_volume();  
96 T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode);//设置音量,音量0-100,默认音量value==10。 95 T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode);//设置音量,音量0-100,默认音量value==10。
97 96
98 97
@@ -142,7 +141,6 @@ T_JZsdkReturnCode Start_voice(); @@ -142,7 +141,6 @@ T_JZsdkReturnCode Start_voice();
142 T_JZsdkReturnCode Meg_SetVolumeFun(int volume); 141 T_JZsdkReturnCode Meg_SetVolumeFun(int volume);
143 int Megaphone_get_RealSetVolume(); 142 int Megaphone_get_RealSetVolume();
144 int Megaphone_get_RealTargetVolume(); 143 int Megaphone_get_RealTargetVolume();
145 -T_JZsdkReturnCode Megaphone_PrintVolume(int Value, int flag);  
146 144
147 145
148 T_JZsdkReturnCode Megaphone_PresetTask(); 146 T_JZsdkReturnCode Megaphone_PresetTask();
  1 +#include "JZsdkLib.h"
  2 +#include "Megaphone/Volume/volume.h"
  3 +#include "Megaphone/Megaphone.h"
  4 +
  5 +static double PowerSimulation = 0; //用于模拟喊话器功率状态
  6 +
  7 +static void *JZsdk_PowerSimulationThread(void *args)
  8 +{
  9 + T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();
  10 +
  11 + while(1)
  12 + {
  13 + //获取当前播放状态
  14 + int play_status = Megaphone_GetMegaphoneStatus();
  15 +
  16 + //生产一个随机数
  17 + U16_t randomNum;
  18 + OsalHandle->GetRandomNum(&randomNum); // 获取 0~65535 的随机数
  19 +
  20 + // 转换为 [0.5, 1.2) 范围
  21 + double normalized = 0.5 + ((double)randomNum / 65535.0) * 0.7;
  22 +
  23 + //获取音量百分比
  24 + int volume = Megaphone_GetUiVolume();
  25 + double _volume = (double)volume / 100;
  26 + if (_volume < 0.1)
  27 + {
  28 + _volume = 0.1;
  29 + }
  30 +
  31 + if (play_status == AUDIO_PLAY_STATUS_IDLE)
  32 + {
  33 + PowerSimulation = 25 * 0.1 * normalized;
  34 + }
  35 + else
  36 + {
  37 + PowerSimulation = 25* _volume * normalized;
  38 + }
  39 +
  40 + //printf("PowerSimulation:%0.1f\n",PowerSimulation);
  41 +
  42 + OsalHandle->TaskSleepMs(1000);
  43 + }
  44 +}
  45 +
  46 +//获取模拟功率
  47 +double JZsdk_GetMagaphonePowerSimulation()
  48 +{
  49 + return PowerSimulation;
  50 +}
  51 +
  52 +static T_JZsdkReturnCode PowerSimulation_Init()
  53 +{
  54 + T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();
  55 +
  56 + T_JZTaskHandle single_task = NULL;
  57 + OsalHandle->TaskCreate("PowerSimulation", JZsdk_PowerSimulationThread, 8192, NULL , &single_task);
  58 +
  59 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  60 +}
@@ -16,13 +16,11 @@ static int g_tts_add = JZ_FLAGCODE_OFF; //追加声音 @@ -16,13 +16,11 @@ static int g_tts_add = JZ_FLAGCODE_OFF; //追加声音
16 **********/ 16 **********/
17 T_JZsdkReturnCode Megaphone_TTS_Init() 17 T_JZsdkReturnCode Megaphone_TTS_Init()
18 { 18 {
19 - int OriginValue = FOMAT_Get_FirewareOriginRegion(); 19 + //讯飞初始化
20 Megaphone_cnTTS_Init(); 20 Megaphone_cnTTS_Init();
21 - if (OriginValue != ORIGIN_CN)  
22 - {  
23 - //海外固件,外语初始化  
24 - Espeak_init();  
25 - } 21 +
  22 + //海外固件,外语初始化
  23 + Espeak_init();
26 24
27 JZSDK_LOG_DEBUG("Megaphone_TTS_Init"); 25 JZSDK_LOG_DEBUG("Megaphone_TTS_Init");
28 } 26 }
@@ -203,6 +203,31 @@ static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, un @@ -203,6 +203,31 @@ static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, un
203 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 203 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
204 } 204 }
205 205
  206 +static void remove_letters(char *str)
  207 +{
  208 + if (str == NULL) return;
  209 +
  210 + int i = 0, j = 0;
  211 + while (str[i] != '\0') {
  212 + // 如果是多字节字符(如中文),直接保留(UTF-8 的高位为 1)
  213 + if ((str[i] & 0x80) != 0) {
  214 + // 复制完整的 UTF-8 字符(可能占 2~4 字节)
  215 + do {
  216 + str[j++] = str[i++];
  217 + } while ((str[i] & 0xC0) == 0x80); // 继续复制后续字节
  218 + }
  219 + // 如果是 ASCII 字符且不是字母,则保留
  220 + else if (!isalpha(str[i])) {
  221 + str[j++] = str[i++];
  222 + }
  223 + // 如果是字母,跳过
  224 + else {
  225 + i++;
  226 + }
  227 + }
  228 + str[j] = '\0'; // 终止字符串
  229 +}
  230 +
206 static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *Megaphone_tts_param) 231 static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *Megaphone_tts_param)
207 { 232 {
208 int tone = Megaphone_tts_param->tts_tone; 233 int tone = Megaphone_tts_param->tts_tone;
@@ -223,6 +248,12 @@ static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param * @@ -223,6 +248,12 @@ static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *
223 //获取音源,以及规则 248 //获取音源,以及规则
224 TTS_GetSoundSource(tone, name_tts, name_path, rule); 249 TTS_GetSoundSource(tone, name_tts, name_path, rule);
225 250
  251 + //如果是方言和男生,则去掉字母
  252 + if (tone == 0x31 || tone == 0x32 || tone == 0x33 || tone == 0x34 || tone == 0x35 || tone == 0x36 || tone == 0x02)
  253 + {
  254 + remove_letters(argv);
  255 + }
  256 +
226 //配置合成参数 257 //配置合成参数
227 snprintf(session_begin_params,512, 258 snprintf(session_begin_params,512,
228 "engine_type = local,voice_name=%s, text_encoding = UTF8, tts_res_path = %s;fo|%s, sample_rate = 16000, speed = %d, volume = %d, pitch = 50, rdn = 2" 259 "engine_type = local,voice_name=%s, text_encoding = UTF8, tts_res_path = %s;fo|%s, sample_rate = 16000, speed = %d, volume = %d, pitch = 50, rdn = 2"
@@ -307,7 +338,7 @@ static void *Play_cntts_pthread(void *arg) @@ -307,7 +338,7 @@ static void *Play_cntts_pthread(void *arg)
307 JZsdk_Free(Megaphone_tts_param); 338 JZsdk_Free(Megaphone_tts_param);
308 339
309 //恢复音量 340 //恢复音量
310 - int audio_volume = Megaphone_get_now_volume(); 341 + int audio_volume = Megaphone_GetUiVolume();
311 Megaphone_SetVolume(audio_volume,0); 342 Megaphone_SetVolume(audio_volume,0);
312 343
313 amplifier = JZ_FLAGCODE_OFF; 344 amplifier = JZ_FLAGCODE_OFF;
@@ -23,20 +23,29 @@ extern "C" { @@ -23,20 +23,29 @@ extern "C" {
23 /* 常亮定义*/ 23 /* 常亮定义*/
24 24
25 #if DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T 25 #if DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T
26 - #define MAX_VOLUME (61)  
27 - #define MAX_TTS_VOLUME (75) 26 + // #define MAX_VOLUME (61)
  27 + // #define MAX_TTS_VOLUME (75)
  28 +
  29 + //2025 4 10 改滤波 降低到90%
  30 + #define MAX_VOLUME (51)
  31 + #define MAX_TTS_VOLUME (60)
  32 +
28 #elif DEVICE_VERSION == JZ_H1E 33 #elif DEVICE_VERSION == JZ_H1E
29 - #define MAX_VOLUME (75)  
30 - #define MAX_TTS_VOLUME (82) 34 + // #define MAX_VOLUME (75)
  35 + // #define MAX_TTS_VOLUME (82)
  36 +
  37 + //2025 4 10 改滤波 降低到80%
  38 + #define MAX_VOLUME (61)
  39 + #define MAX_TTS_VOLUME (66)
  40 +
31 #elif DEVICE_VERSION == JZ_H1T 41 #elif DEVICE_VERSION == JZ_H1T
32 // #define MAX_VOLUME 75 42 // #define MAX_VOLUME 75
33 // #define MAX_TTS_VOLUME 84 43 // #define MAX_TTS_VOLUME 84
34 44
35 - //新班子 116.8  
36 - //95 115.7  
37 - //90  
38 - #define MAX_VOLUME 82  
39 - #define MAX_TTS_VOLUME 92 45 + //2025 4 10 改滤波 降低到u85%
  46 + #define MAX_VOLUME (61)
  47 + #define MAX_TTS_VOLUME (69)
  48 +
40 // #define MAX_VOLUME 100 49 // #define MAX_VOLUME 100
41 // #define MAX_TTS_VOLUME 100 50 // #define MAX_TTS_VOLUME 100
42 51
  1 +#include "JZsdkLib.h"
  2 +#include "Megaphone.h"
  3 +#include "./VolumeLimit.h"
  4 +
  5 +
  6 +//喊话器的ui音量
  7 +static int g_Megaphone_Volume = 30;
  8 +
  9 +//喊话器的设置目标音量
  10 +static int g_Megaphone_RealTargetVolume = 30;
  11 +
  12 +//喊话器的实际音量
  13 +static int g_Megaphone_RealSetVolume = 30;
  14 +
  15 +//用于存储tts最大音量限制
  16 +static int g_TTS_Max_volume = 0;
  17 +
  18 +//用于存储音频最大音量限制
  19 +static int g_Max_volume = 0;
  20 +
  21 +//系统音量值
  22 +static int system_volume = 0;
  23 +
  24 +T_JZsdkReturnCode Meg_SetVolumeFun(int volume)
  25 +{
  26 + char cmdBuffer[128];
  27 +
  28 + if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T || DEVICE_VERSION == JZ_H10)
  29 + {
  30 + snprintf(cmdBuffer,128, "amixer set -c 4 Master %d",volume);
  31 + }
  32 + else if (DEVICE_VERSION == JZ_H1E || DEVICE_VERSION == JZ_H1T || DEVICE_VERSION == TF_A1)
  33 + {
  34 + snprintf(cmdBuffer,128, "amixer set -c 0 Master %d",volume);
  35 + }
  36 + else if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)
  37 + {
  38 + snprintf(cmdBuffer,128, "amixer sset -c 0 'Headphone' %d unmute",volume);
  39 + }
  40 +
  41 + g_Megaphone_RealSetVolume = volume;
  42 + JZsdk_RunSystemCmd(cmdBuffer);
  43 + printf("线程设置音量为:%d\n",volume);
  44 +}
  45 +
  46 +// static void *Meg_VolumeSetThread(void *args)
  47 +// {
  48 +// T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();
  49 +// if (OsalHandle == NULL)
  50 +// {
  51 +// JZSDK_LOG_ERROR("获取OsalHandle失败");
  52 +// return NULL;
  53 +// }
  54 +
  55 +// int last_system_volume = 0;
  56 +
  57 +// while(1)
  58 +// {
  59 +// if (last_system_volume != system_volume)
  60 +// {
  61 +// Meg_SetVolumeFun(system_volume);
  62 +// last_system_volume = system_volume;
  63 +// }
  64 +
  65 +// //每毫秒检查一次音量
  66 +// OsalHandle->TaskSleepMs(1);
  67 +// }
  68 +// }
  69 +
  70 +static void *Meg_VolumeSetThread(void *args)
  71 +{
  72 + int *value = (int *)args;
  73 + Meg_SetVolumeFun(*value);
  74 + free(value);
  75 + value = NULL;
  76 +}
  77 +
  78 +static T_JZsdkReturnCode Megaphone_SetSystemVolume_byThread(int systemVolume)
  79 +{
  80 +
  81 + T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();
  82 + if (OsalHandle == NULL)
  83 + {
  84 + JZSDK_LOG_ERROR("获取OsalHandle失败");
  85 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  86 + }
  87 +
  88 + T_JZTaskHandle Meg_Volume_task = NULL;
  89 + int *value = (int *)malloc(sizeof(int));
  90 + *value = systemVolume;
  91 + OsalHandle->TaskCreate("Meg_Volume_task", Meg_VolumeSetThread, 8192, (void *)value , &Meg_Volume_task);
  92 +
  93 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  94 +
  95 +}
  96 +
  97 +/*************
  98 + *
  99 + *
  100 + * 音量线程的入口
  101 + *
  102 + * **********/
  103 +T_JZsdkReturnCode Megaphone_SetSystemVolume(int systemVolume)
  104 +{
  105 + //system_volume = systemVolume;
  106 + Meg_SetVolumeFun(systemVolume);
  107 +}
  108 +
  109 +/*****************
  110 + *
  111 + * 调节文本的音量,文本的音量和音乐的音量是不同的
  112 + *
  113 + * ******************/
  114 +static T_JZsdkReturnCode Megaphone_SetTTSvolume()
  115 +{
  116 + int value = g_Megaphone_Volume;
  117 + printf("TTS音量修改\n");
  118 +
  119 + //v3s自设系统 要提高10初始音量
  120 + if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)
  121 + {
  122 + if (value > 0)
  123 + {
  124 + value = 20 + value * 10/8;
  125 + }
  126 + }
  127 +
  128 + if(value<=0)
  129 + {
  130 + value=0;
  131 + }
  132 +
  133 + else if(value>0&&value<100)
  134 + {
  135 + value=value*g_TTS_Max_volume/100 *255/100;
  136 + }
  137 +
  138 + else if(value>=100)
  139 + {
  140 + value=100*g_TTS_Max_volume/100 *255/100;
  141 + }
  142 +
  143 + g_Megaphone_RealTargetVolume = value;
  144 + Megaphone_SetSystemVolume_byThread(value);
  145 +
  146 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  147 +}
  148 +
  149 +
  150 +/*********************
  151 + *
  152 + * mode == 0 正常调音量
  153 + * mode == 1 tts调音量
  154 + *
  155 + * ************************/
  156 +T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode)//设置音量,音量0-100,默认音量value==10。
  157 +{
  158 +
  159 + if (mode == 1)
  160 + {
  161 + printf("设置文本音量");
  162 +
  163 + return Megaphone_SetTTSvolume();
  164 + }
  165 +
  166 + printf("设置音量,传入的值:%d\n",value);
  167 +
  168 + g_Megaphone_Volume = value;//获取当前音量
  169 +
  170 + //v3s自设系统 要提高10初始音量
  171 + if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30)
  172 + {
  173 + if (value > 0)
  174 + {
  175 + value = 20 + value * 10/8;
  176 + }
  177 + }
  178 +
  179 + if(value<=0)
  180 + {
  181 + value=0;
  182 + }
  183 +
  184 + else if(value>0&&value<100)
  185 + {
  186 + value=value*g_Max_volume/100 *255/100;
  187 + }
  188 +
  189 + else if(value>=100)
  190 + {
  191 + value=100*g_Max_volume/100 *255/100;
  192 + }
  193 +
  194 + g_Megaphone_RealTargetVolume = value;
  195 + Megaphone_SetSystemVolume_byThread(value);
  196 +
  197 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  198 +}
  199 +
  200 +/*****************
  201 + *
  202 + * 温控控制音量 UI 变化
  203 + *
  204 + *
  205 + * *************/
  206 +T_JZsdkReturnCode Meg_TempControlVolumeUi(int value)
  207 +{
  208 + //根据调整量反应到ui界面上
  209 + //分为文本和歌曲
  210 + int PlayStatus = Megaphone_GetMegaphoneStatus();
  211 + int Ui_num = 0;
  212 + int HundredMarkNum = 0;
  213 +
  214 +#if DEVICE_VERSION == JZ_H1T
  215 + HundredMarkNum = (value * 100 /255);
  216 +#else
  217 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  218 +#endif
  219 +
  220 + //如果是文本
  221 + if (PlayStatus == 0x20)
  222 + {
  223 + //计算出ui值
  224 + Ui_num = HundredMarkNum * 100 / g_TTS_Max_volume;
  225 + }
  226 + else
  227 + {
  228 + //计算出ui值
  229 + Ui_num = HundredMarkNum * 100 / g_Max_volume;
  230 + }
  231 +
  232 + if (g_Megaphone_Volume > Ui_num)
  233 + {
  234 + g_Megaphone_Volume--;
  235 + }
  236 + else if (g_Megaphone_Volume < Ui_num)
  237 + {
  238 + g_Megaphone_Volume++;
  239 + }
  240 + else
  241 + {
  242 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  243 + }
  244 +
  245 + //修改ui值,
  246 + UIcontrol_SetVolume(NO_SPECIFIED, JZ_FLAGCODE_OFF, JZ_FLAGCODE_OFF);
  247 +}
  248 +
  249 +
  250 +
  251 +/*********************
  252 + *
  253 + * 最大音量加载
  254 + *
  255 + * ***********************/
  256 +static T_JZsdkReturnCode Megaphone_MaxVolume_Init()
  257 +{
  258 + g_Max_volume = MAX_VOLUME;
  259 + g_TTS_Max_volume = MAX_TTS_VOLUME;
  260 +
  261 + if (DEVICE_VERSION == JZ_H1T)
  262 + {
  263 + //检索版本号,从2板子改成1板子的h1t改动
  264 + if (HardwareInfo_GetVersion(0) == 0x01
  265 + && HardwareInfo_GetVersion(1) == 0x02
  266 + && HardwareInfo_GetVersion(2) == 0x00
  267 + && HardwareInfo_GetVersion(3) == 0x00
  268 + )
  269 + {
  270 + g_Max_volume = MAX_VOLUME;
  271 + g_TTS_Max_volume = MAX_TTS_VOLUME;
  272 + }
  273 +
  274 + //检索版本号,振膜更换版本
  275 + else if (HardwareInfo_GetVersion(0) == 25
  276 + && HardwareInfo_GetVersion(1) == 04
  277 + && HardwareInfo_GetVersion(2) == 21
  278 + && HardwareInfo_GetVersion(3) == 0x00
  279 + )
  280 + {
  281 + g_Max_volume = MAX_VOLUME * 100 / 94;
  282 + g_TTS_Max_volume = MAX_TTS_VOLUME * 100 / 94;
  283 + }
  284 +
  285 + //最初的h1t板子音量
  286 + else
  287 + {
  288 + g_Max_volume = 70;
  289 + g_TTS_Max_volume = 78;
  290 + }
  291 + }
  292 +
  293 + else if(DEVICE_VERSION == JZ_H1E)
  294 + {
  295 + //检索版本号,振膜更换版本
  296 + if (HardwareInfo_GetVersion(0) == 25
  297 + && HardwareInfo_GetVersion(1) == 04
  298 + && HardwareInfo_GetVersion(2) == 21
  299 + && HardwareInfo_GetVersion(3) == 0x00
  300 + )
  301 + {
  302 + g_Max_volume = MAX_VOLUME * 100 / 94;
  303 + g_TTS_Max_volume = MAX_TTS_VOLUME * 100 / 94;
  304 + }
  305 +
  306 + else
  307 + {
  308 + g_Max_volume = MAX_VOLUME;
  309 + g_TTS_Max_volume = MAX_TTS_VOLUME;
  310 + }
  311 + }
  312 +
  313 + else if (DEBUG_VERSION == JZ_H150S / JZ_H150T)
  314 + {
  315 + //检索版本号,振膜更换版本
  316 + if (HardwareInfo_GetVersion(0) == 25
  317 + && HardwareInfo_GetVersion(1) == 04
  318 + && HardwareInfo_GetVersion(2) == 21
  319 + && HardwareInfo_GetVersion(3) == 0x00
  320 + )
  321 + {
  322 + g_Max_volume = MAX_VOLUME * 100 / 94;
  323 + g_TTS_Max_volume = MAX_TTS_VOLUME * 100 / 94;
  324 + }
  325 +
  326 + else
  327 + {
  328 + g_Max_volume = MAX_VOLUME;
  329 + g_TTS_Max_volume = MAX_TTS_VOLUME;
  330 + }
  331 + }
  332 +
  333 + JZSDK_LOG_INFO("MaxV:%d MaxTTS_V:%d",g_Max_volume, g_TTS_Max_volume);
  334 +
  335 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  336 +}
  337 +
  338 +
  339 +
  340 +/*
  341 +
  342 + 函数功能:喊话器音量模块初始化
  343 +
  344 +*/
  345 +T_JZsdkReturnCode Megaphone_Volume_Init()
  346 +{
  347 + //加载音量限制
  348 + Megaphone_MaxVolume_Init();
  349 +
  350 + //加载音量设置线程
  351 + T_JZsdkOsalHandler *OsalHandle = JZsdk_Platform_GetOsalHandler();
  352 + if (OsalHandle == NULL)
  353 + {
  354 + JZSDK_LOG_ERROR("获取OsalHandle失败");
  355 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  356 + }
  357 +
  358 + // T_JZTaskHandle Meg_Volume_task = NULL;
  359 + // OsalHandle->TaskCreate("Meg_Volume_task", Meg_VolumeSetThread, 8192, NULL , &Meg_Volume_task);
  360 +
  361 + //设置喊话器默认音量
  362 + Megaphone_SetVolume(30, 0);
  363 +}
  364 +
  365 +
  366 +
  367 +
  368 +
  369 +
  370 +
  371 +/***************
  372 + *
  373 + * 获取ui音量
  374 + *
  375 + *
  376 + * ********************/
  377 +int Megaphone_GetUiVolume()
  378 +{
  379 + return g_Megaphone_Volume;
  380 +}
  381 +
  382 +/***
  383 + *
  384 + *
  385 + * 获取实际设置音量值,用于温控
  386 + *
  387 + * ***/
  388 +int Megaphone_get_RealSetVolume()
  389 +{
  390 + return g_Megaphone_RealSetVolume;
  391 +}
  392 +
  393 +/***
  394 + *
  395 + *
  396 + * 获取实际目标音量值,用于温控
  397 + *
  398 + * ***/
  399 +int Megaphone_get_RealTargetVolume()
  400 +{
  401 + return g_Megaphone_RealTargetVolume;
  402 +}
  403 +
  404 +
  1 +/**
  2 + ********************************************************************
  3 + * @file volume.h
  4 + * volume.c 的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef VOLUME_H
  11 +#define VOLUME_H
  12 +
  13 +/* Includes ------------------------------------------------------------------*/
  14 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  15 +
  16 +#ifdef __cplusplus
  17 +extern "C" {
  18 +#endif
  19 +
  20 +/* Exported constants --------------------------------------------------------*/
  21 +/* 常亮定义*/
  22 +
  23 +
  24 +/* Exported types ------------------------------------------------------------*/
  25 +
  26 +/* Exported functions --------------------------------------------------------*/
  27 +T_JZsdkReturnCode Megaphone_Volume_Init();
  28 +int Megaphone_GetUiVolume();
  29 +T_JZsdkReturnCode Megaphone_SetVolume(int value, int mode); //设置音量,音量0-100,默认音量value==10。
  30 +int Megaphone_GetUiVolume();
  31 +int Megaphone_get_RealSetVolume();
  32 +int Megaphone_get_RealTargetVolume();
  33 +T_JZsdkReturnCode Meg_TempControlVolumeUi(int value);
  34 +T_JZsdkReturnCode Megaphone_SetSystemVolume(int systemVolume);
  35 +
  36 +
  37 +#ifdef __cplusplus
  38 +}
  39 +#endif
  40 +
  41 +#endif
@@ -27,6 +27,7 @@ static int Opus_RealTimeVoice_Loop_Head = 0; //池数头 @@ -27,6 +27,7 @@ static int Opus_RealTimeVoice_Loop_Head = 0; //池数头
27 static int Opus_RealTimeVoice_Loop_End = 0; //池数尾 27 static int Opus_RealTimeVoice_Loop_End = 0; //池数尾
28 static int Opus_RealTimeVoice_LoopReadFlag=0;//读取标志位0为停止,1为开始 28 static int Opus_RealTimeVoice_LoopReadFlag=0;//读取标志位0为停止,1为开始
29 static int Opus_RealTimeVoice_LoopReadStopFlag = 0; 29 static int Opus_RealTimeVoice_LoopReadStopFlag = 0;
  30 +static int decode_error_count = 0; //解码错误计数
30 31
31 static T_JZsdkReturnCode Opus_RealTimeVoice_DecodeAndPlay_init(); 32 static T_JZsdkReturnCode Opus_RealTimeVoice_DecodeAndPlay_init();
32 static T_JZsdkReturnCode Opus_RealTimeVoice_ClearLoop(); 33 static T_JZsdkReturnCode Opus_RealTimeVoice_ClearLoop();
@@ -34,7 +35,8 @@ static void *Opus_RealTimeVoice_LoopPlay(void *arg); @@ -34,7 +35,8 @@ static void *Opus_RealTimeVoice_LoopPlay(void *arg);
34 static T_JZsdkReturnCode Opus_RealTimeVoice_PlayLoop_HeadReset(); 35 static T_JZsdkReturnCode Opus_RealTimeVoice_PlayLoop_HeadReset();
35 36
36 //写入数据部分 37 //写入数据部分
37 -static unsigned char Opus_RealTimeVoice_WriteDataLoop[ (15 + 1) ][80];//写入缓存池 最高同时存15组数据 用于写入缓冲 38 +#define WRTTE_MAX_DATA_GROUP 15
  39 +static unsigned char Opus_RealTimeVoice_WriteDataLoop[ (WRTTE_MAX_DATA_GROUP + 1) ][80];//写入缓存池 最高同时存WRTTE_MAX_DATA_GROUP组数据 用于写入缓冲
38 static int Opus_RealTimeVoice_WriteData_LoopHead = 0; //池数头 40 static int Opus_RealTimeVoice_WriteData_LoopHead = 0; //池数头
39 static int Opus_RealTimeVoice_WriteData_LoopEnd = 0; //池数尾 41 static int Opus_RealTimeVoice_WriteData_LoopEnd = 0; //池数尾
40 static int Opus_RealTimeVoice_WriteData_ResidueLenth; // 写入缓存池池子残余物长度 42 static int Opus_RealTimeVoice_WriteData_ResidueLenth; // 写入缓存池池子残余物长度
@@ -165,18 +167,53 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len @@ -165,18 +167,53 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len
165 int frame_size; 167 int frame_size;
166 opus_int16 out[WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE * WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS ]; 168 opus_int16 out[WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE * WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS ];
167 169
  170 + int decodeErrorFlag = JZ_FLAGCODE_OFF;
  171 +
168 //解码 172 //解码
169 frame_size = opus_decode(Opus_RealTimeVoice_decoder, (const unsigned char *)data, len, out, WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE, 0); 173 frame_size = opus_decode(Opus_RealTimeVoice_decoder, (const unsigned char *)data, len, out, WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE, 0);
170 - if (frame_size < 0) {  
171 - JZSDK_LOG_ERROR("decoder failed");  
172 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 174 + if (frame_size < 0)
  175 + {
  176 + decodeErrorFlag = JZ_FLAGCODE_ON;
  177 +
  178 + switch (frame_size)
  179 + {
  180 + case OPUS_BAD_ARG:
  181 + JZSDK_LOG_ERROR("decoder failed: OPUS_BAD_ARG 一个或多个参数无效");
  182 + break;
  183 +
  184 + case OPUS_BUFFER_TOO_SMALL:
  185 + JZSDK_LOG_ERROR("decoder failed: OPUS_BUFFER_TOO_SMALL 输出缓冲区不足");
  186 + break;
  187 +
  188 + case OPUS_INTERNAL_ERROR:
  189 + JZSDK_LOG_ERROR("decoder failed: OPUS_INTERNAL_ERROR Opus内部错误");
  190 + break;
  191 +
  192 + case OPUS_INVALID_PACKET:
  193 + JZSDK_LOG_ERROR("decoder failed: OPUS_INVALID_PACKET 压缩数据损坏或无效");
  194 + break;
  195 +
  196 + case OPUS_UNIMPLEMENTED:
  197 + JZSDK_LOG_ERROR("decoder failed: OPUS_UNIMPLEMENTED 不支持的特性/模式");
  198 + break;
  199 +
  200 + case OPUS_INVALID_STATE:
  201 + JZSDK_LOG_ERROR("decoder failed: OPUS_INVALID_STATE 解码器处于无效状态");
  202 + break;
  203 +
  204 + default:
  205 + JZSDK_LOG_ERROR("decoder failed");
  206 + break;
  207 + }
  208 +
  209 + // 解码失败时生成静音数据
  210 + memset(out, 0, sizeof(opus_int16) * WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE * WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS);
  211 + frame_size = WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE;
173 } 212 }
174 213
175 //转换 214 //转换
176 opus_int16 TempPcm[WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE * WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS]; 215 opus_int16 TempPcm[WIDGET_SPEAKER_AUDIO_OPUS_MAX_FRAME_SIZE * WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS];
177 216
178 -  
179 -  
180 for (i = 0; i < WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS * frame_size; i++) 217 for (i = 0; i < WIDGET_SPEAKER_AUDIO_OPUS_CHANNELS * frame_size; i++)
181 { 218 {
182 TempPcm[i] = out[i] & 0xFF | (out[i] >> 8) << 8; 219 TempPcm[i] = out[i] & 0xFF | (out[i] >> 8) << 8;
@@ -190,6 +227,11 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len @@ -190,6 +227,11 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len
190 227
191 AudioDeal_PcmDataInput(RealTimeDecodeRate, pcm_bytes, frame_size*2, 1); 228 AudioDeal_PcmDataInput(RealTimeDecodeRate, pcm_bytes, frame_size*2, 1);
192 229
  230 + if (decodeErrorFlag == JZ_FLAGCODE_ON)
  231 + {
  232 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  233 + }
  234 +
193 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 235 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
194 } 236 }
195 237
@@ -223,6 +265,15 @@ static void *Opus_RealTimeVoice_LoopPlay(void *arg) @@ -223,6 +265,15 @@ static void *Opus_RealTimeVoice_LoopPlay(void *arg)
223 Opus_RealTimeVoice_PlayLoop_HeadReset(); //池满判断 265 Opus_RealTimeVoice_PlayLoop_HeadReset(); //池满判断
224 if(ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 266 if(ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
225 { 267 {
  268 + // // 记录解码错误次数,超过阈值则重置解码器
  269 + // if (++decode_error_count > 10) {
  270 + // JZSDK_LOG_WARN("Too many decode errors, resetting decoder");
  271 + // decode_error_count = 0;
  272 + // }
  273 +
  274 +
  275 + // 后续改进建议,重新注册解码器的同时,不进行数据的清空
  276 +
226 break; 277 break;
227 } 278 }
228 } 279 }
@@ -350,7 +401,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataClear() @@ -350,7 +401,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataClear()
350 // 写入池子头部到底了,重置池头 401 // 写入池子头部到底了,重置池头
351 static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataHeadReset() 402 static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataHeadReset()
352 { 403 {
353 - if (Opus_RealTimeVoice_WriteData_LoopHead >= 15) 404 + if (Opus_RealTimeVoice_WriteData_LoopHead >= WRTTE_MAX_DATA_GROUP)
354 { 405 {
355 Opus_RealTimeVoice_WriteData_LoopHead = 0; 406 Opus_RealTimeVoice_WriteData_LoopHead = 0;
356 } 407 }
@@ -359,7 +410,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataHeadReset() @@ -359,7 +410,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataHeadReset()
359 // 写入池子尾部到底了,重置池尾 410 // 写入池子尾部到底了,重置池尾
360 static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataEndReset() 411 static T_JZsdkReturnCode Opus_RealTimeVoice_WriteDataEndReset()
361 { 412 {
362 - if (Opus_RealTimeVoice_WriteData_LoopEnd >= 15) 413 + if (Opus_RealTimeVoice_WriteData_LoopEnd >= WRTTE_MAX_DATA_GROUP)
363 { 414 {
364 Opus_RealTimeVoice_WriteData_LoopEnd = 0; 415 Opus_RealTimeVoice_WriteData_LoopEnd = 0;
365 } 416 }
@@ -409,6 +409,9 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_contr @@ -409,6 +409,9 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_contr
409 { 409 {
410 // 将控件界面的播放开关 转化为关闭 410 // 将控件界面的播放开关 转化为关闭
411 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1); 411 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1);
  412 +
  413 + // 将ttsSpeaker的开关关闭
  414 + UI_control_WidgetSet(PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS, 0);
412 415
413 // 如果有进行控制,不只是改控件 416 // 如果有进行控制,不只是改控件
414 if (wheather_control == 1) 417 if (wheather_control == 1)
@@ -488,7 +491,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetVolume(int wheather_control, int value) @@ -488,7 +491,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetVolume(int wheather_control, int value)
488 // 如果有进行控制,不只是改控件 491 // 如果有进行控制,不只是改控件
489 if (wheather_control == 1) 492 if (wheather_control == 1)
490 { 493 {
491 - ret = UIcontrol_SetVolume(DEVICE_PSDK, value); 494 + ret = UIcontrol_SetVolume(DEVICE_PSDK, value, JZ_FLAGCODE_ON);
492 return ret; 495 return ret;
493 } 496 }
494 } 497 }
@@ -553,8 +556,8 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_speed(int wheather_control, int speed @@ -553,8 +556,8 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_speed(int wheather_control, int speed
553 //psdk 变量获取tts音色 556 //psdk 变量获取tts音色
554 int JZsdk_Psdk_UI_io_GetTTSTone_ByValue(int value) 557 int JZsdk_Psdk_UI_io_GetTTSTone_ByValue(int value)
555 { 558 {
556 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
557 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 559 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  560 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
558 { 561 {
559 switch (value) 562 switch (value)
560 { 563 {
@@ -651,8 +654,8 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_tone(int wheather_control, int tone) @@ -651,8 +654,8 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_tone(int wheather_control, int tone)
651 654
652 T_JZsdkReturnCode ret; 655 T_JZsdkReturnCode ret;
653 int value; 656 int value;
654 - int OriginValue = FOMAT_Get_FirewareOriginRegion();  
655 - if (OriginValue == ORIGIN_DEFAULT || OriginValue == ORIGIN_CN) 657 + E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
  658 + if (LanguageInfo == LANGUAGE_INFO_CHINESE)
656 { 659 {
657 switch (tone) 660 switch (tone)
658 { 661 {
@@ -1093,6 +1096,9 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_Play(char *data, int len) @@ -1093,6 +1096,9 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_Play(char *data, int len)
1093 //关闭音乐控件 1096 //关闭音乐控件
1094 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1); 1097 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1);
1095 1098
  1099 + //关闭内ui的三角形 讲道理不能在这里关,不然就是明明在播,但是没有显示播放按键
  1100 + //UI_control_WidgetSet(PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS, 0);
  1101 +
1096 T_JZsdkReturnCode ret; 1102 T_JZsdkReturnCode ret;
1097 ret = UIcontrol_TTS_Play(DEVICE_PSDK, data, len); 1103 ret = UIcontrol_TTS_Play(DEVICE_PSDK, data, len);
1098 return ret; 1104 return ret;
@@ -96,23 +96,31 @@ T_JZsdkReturnCode UI_control_Set_DJI_SkyPort_SerialNumber(char *str) @@ -96,23 +96,31 @@ T_JZsdkReturnCode UI_control_Set_DJI_SkyPort_SerialNumber(char *str)
96 * 96 *
97 * ****************************************************************************************************************************************/ 97 * ****************************************************************************************************************************************/
98 //音量调节 98 //音量调节
99 -T_JZsdkReturnCode UIcontrol_SetVolume(int DeviceName,int value) 99 +T_JZsdkReturnCode UIcontrol_SetVolume(int DeviceName,int value, int flag)
100 { 100 {
101 #ifdef MEGAPHONE_CONFIG_STATUS_ON 101 #ifdef MEGAPHONE_CONFIG_STATUS_ON
102 - //调用喊话器的接口  
103 - T_JZsdkReturnCode ret = Megaphone_param(JZ_FLAGCODE_SET, MEGAPHONE_VOLUME, &value);  
104 - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)  
105 - {  
106 - printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret));  
107 - return ret;  
108 - }  
109 -  
110 - delayMs(1);  
111 102
112 //获取本地音量 103 //获取本地音量
113 int Volume; 104 int Volume;
114 - Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_VOLUME, &Volume);  
115 105
  106 + //如果开启控制
  107 + if (flag == JZ_FLAGCODE_ON)
  108 + {
  109 + //调用喊话器的接口
  110 + T_JZsdkReturnCode ret = Megaphone_param(JZ_FLAGCODE_SET, MEGAPHONE_VOLUME, &value);
  111 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  112 + {
  113 + printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret));
  114 + return ret;
  115 + }
  116 +
  117 + Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_VOLUME, &Volume);
  118 + }
  119 + else
  120 + {
  121 + Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_VOLUME, &Volume);
  122 + }
  123 +
116 //通知其他设备的ui界面变化 124 //通知其他设备的ui界面变化
117 //如果4G模块有启动 125 //如果4G模块有启动
118 if ( (JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) 126 if ( (JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) )
@@ -31,7 +31,7 @@ T_JZsdkReturnCode UI_control_Set_DJI_SkyPort_SerialNumber(char *str); @@ -31,7 +31,7 @@ T_JZsdkReturnCode UI_control_Set_DJI_SkyPort_SerialNumber(char *str);
31 31
32 //喊话器通用操作类 32 //喊话器通用操作类
33 T_JZsdkReturnCode UIcontrol_Set_AudioPlayLoop(int DeviceName, int value); 33 T_JZsdkReturnCode UIcontrol_Set_AudioPlayLoop(int DeviceName, int value);
34 -T_JZsdkReturnCode UIcontrol_SetVolume(int DeviceName, int value); 34 +T_JZsdkReturnCode UIcontrol_SetVolume(int DeviceName,int value, int flag);
35 T_JZsdkReturnCode UIcontrol_Set_AudioPlayLoopInterval(int DeviceName,int value); 35 T_JZsdkReturnCode UIcontrol_Set_AudioPlayLoopInterval(int DeviceName,int value);
36 36
37 //音频类 37 //音频类
1 # This is the CMakeCache file. 1 # This is the CMakeCache file.
2 # For build in directory: /mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序/build 2 # For build in directory: /mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序/build
3 -# It was generated by CMake: /usr/local/bin/cmake 3 +# It was generated by CMake: /usr/bin/cmake
4 # You can edit this file to change values found and used by cmake. 4 # You can edit this file to change values found and used by cmake.
5 # If you do not want to change any of the values, simply exit the editor. 5 # If you do not want to change any of the values, simply exit the editor.
6 # If you do want to change a value, simply edit, save, and exit the editor. 6 # If you do want to change a value, simply edit, save, and exit the editor.
@@ -18,19 +18,13 @@ @@ -18,19 +18,13 @@
18 ATTENTION_APP_BINARY_DIR:STATIC=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序/build 18 ATTENTION_APP_BINARY_DIR:STATIC=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序/build
19 19
20 //Value Computed by CMake 20 //Value Computed by CMake
21 -ATTENTION_APP_IS_TOP_LEVEL:STATIC=ON  
22 -  
23 -//Value Computed by CMake  
24 ATTENTION_APP_SOURCE_DIR:STATIC=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序 21 ATTENTION_APP_SOURCE_DIR:STATIC=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序
25 22
26 //Path to a program. 23 //Path to a program.
27 -CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line  
28 -  
29 -//Path to a program.  
30 CMAKE_AR:FILEPATH=/usr/bin/ar 24 CMAKE_AR:FILEPATH=/usr/bin/ar
31 25
32 -//Choose the type of build, options are: None Debug Release RelWithDebInfo  
33 -// MinSizeRel ... 26 +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
  27 +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
34 CMAKE_BUILD_TYPE:STRING= 28 CMAKE_BUILD_TYPE:STRING=
35 29
36 //Enable/Disable color output during build. 30 //Enable/Disable color output during build.
@@ -39,78 +33,58 @@ CMAKE_COLOR_MAKEFILE:BOOL=ON @@ -39,78 +33,58 @@ CMAKE_COLOR_MAKEFILE:BOOL=ON
39 //CXX compiler 33 //CXX compiler
40 CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ 34 CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
41 35
42 -//A wrapper around 'ar' adding the appropriate '--plugin' option  
43 -// for the GCC compiler  
44 -CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5  
45 -  
46 -//A wrapper around 'ranlib' adding the appropriate '--plugin' option  
47 -// for the GCC compiler  
48 -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5  
49 -  
50 -//Flags used by the CXX compiler during all build types. 36 +//Flags used by the compiler during all build types.
51 CMAKE_CXX_FLAGS:STRING= 37 CMAKE_CXX_FLAGS:STRING=
52 38
53 -//Flags used by the CXX compiler during DEBUG builds. 39 +//Flags used by the compiler during debug builds.
54 CMAKE_CXX_FLAGS_DEBUG:STRING=-g 40 CMAKE_CXX_FLAGS_DEBUG:STRING=-g
55 41
56 -//Flags used by the CXX compiler during MINSIZEREL builds. 42 +//Flags used by the compiler during release builds for minimum
  43 +// size.
57 CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 44 CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
58 45
59 -//Flags used by the CXX compiler during RELEASE builds. 46 +//Flags used by the compiler during release builds.
60 CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 47 CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
61 48
62 -//Flags used by the CXX compiler during RELWITHDEBINFO builds. 49 +//Flags used by the compiler during release builds with debug info.
63 CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 50 CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
64 51
65 //C compiler 52 //C compiler
66 CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc 53 CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
67 54
68 -//A wrapper around 'ar' adding the appropriate '--plugin' option  
69 -// for the GCC compiler  
70 -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5  
71 -  
72 -//A wrapper around 'ranlib' adding the appropriate '--plugin' option  
73 -// for the GCC compiler  
74 -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5  
75 -  
76 -//Flags used by the C compiler during all build types. 55 +//Flags used by the compiler during all build types.
77 CMAKE_C_FLAGS:STRING= 56 CMAKE_C_FLAGS:STRING=
78 57
79 -//Flags used by the C compiler during DEBUG builds. 58 +//Flags used by the compiler during debug builds.
80 CMAKE_C_FLAGS_DEBUG:STRING=-g 59 CMAKE_C_FLAGS_DEBUG:STRING=-g
81 60
82 -//Flags used by the C compiler during MINSIZEREL builds. 61 +//Flags used by the compiler during release builds for minimum
  62 +// size.
83 CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 63 CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
84 64
85 -//Flags used by the C compiler during RELEASE builds. 65 +//Flags used by the compiler during release builds.
86 CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 66 CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
87 67
88 -//Flags used by the C compiler during RELWITHDEBINFO builds. 68 +//Flags used by the compiler during release builds with debug info.
89 CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 69 CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
90 70
91 -//Path to a program.  
92 -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND  
93 -  
94 -//Flags used by the linker during all build types. 71 +//Flags used by the linker.
95 CMAKE_EXE_LINKER_FLAGS:STRING= 72 CMAKE_EXE_LINKER_FLAGS:STRING=
96 73
97 -//Flags used by the linker during DEBUG builds. 74 +//Flags used by the linker during debug builds.
98 CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= 75 CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
99 76
100 -//Flags used by the linker during MINSIZEREL builds. 77 +//Flags used by the linker during release minsize builds.
101 CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= 78 CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
102 79
103 -//Flags used by the linker during RELEASE builds. 80 +//Flags used by the linker during release builds.
104 CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= 81 CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
105 82
106 -//Flags used by the linker during RELWITHDEBINFO builds. 83 +//Flags used by the linker during Release with Debug Info builds.
107 CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 84 CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
108 85
109 //Enable/Disable output of compile commands during generation. 86 //Enable/Disable output of compile commands during generation.
110 -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=  
111 -  
112 -//Value Computed by CMake.  
113 -CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention_提示程序/build/CMakeFiles/pkgRedirects 87 +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
114 88
115 //Install path prefix, prepended onto install directories. 89 //Install path prefix, prepended onto install directories.
116 CMAKE_INSTALL_PREFIX:PATH=/usr/local 90 CMAKE_INSTALL_PREFIX:PATH=/usr/local
@@ -121,24 +95,19 @@ CMAKE_LINKER:FILEPATH=/usr/bin/ld @@ -121,24 +95,19 @@ CMAKE_LINKER:FILEPATH=/usr/bin/ld
121 //Path to a program. 95 //Path to a program.
122 CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make 96 CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
123 97
124 -//Flags used by the linker during the creation of modules during  
125 -// all build types. 98 +//Flags used by the linker during the creation of modules.
126 CMAKE_MODULE_LINKER_FLAGS:STRING= 99 CMAKE_MODULE_LINKER_FLAGS:STRING=
127 100
128 -//Flags used by the linker during the creation of modules during  
129 -// DEBUG builds. 101 +//Flags used by the linker during debug builds.
130 CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= 102 CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
131 103
132 -//Flags used by the linker during the creation of modules during  
133 -// MINSIZEREL builds. 104 +//Flags used by the linker during release minsize builds.
134 CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= 105 CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
135 106
136 -//Flags used by the linker during the creation of modules during  
137 -// RELEASE builds. 107 +//Flags used by the linker during release builds.
138 CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= 108 CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
139 109
140 -//Flags used by the linker during the creation of modules during  
141 -// RELWITHDEBINFO builds. 110 +//Flags used by the linker during Release with Debug Info builds.
142 CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 111 CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
143 112
144 //Path to a program. 113 //Path to a program.
@@ -151,38 +120,24 @@ CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy @@ -151,38 +120,24 @@ CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
151 CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump 120 CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
152 121
153 //Value Computed by CMake 122 //Value Computed by CMake
154 -CMAKE_PROJECT_DESCRIPTION:STATIC=  
155 -  
156 -//Value Computed by CMake  
157 -CMAKE_PROJECT_HOMEPAGE_URL:STATIC=  
158 -  
159 -//Value Computed by CMake  
160 CMAKE_PROJECT_NAME:STATIC=ATTENTION_APP 123 CMAKE_PROJECT_NAME:STATIC=ATTENTION_APP
161 124
162 //Path to a program. 125 //Path to a program.
163 CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib 126 CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
164 127
165 -//Path to a program.  
166 -CMAKE_READELF:FILEPATH=/usr/bin/readelf  
167 -  
168 -//Flags used by the linker during the creation of shared libraries  
169 -// during all build types. 128 +//Flags used by the linker during the creation of dll's.
170 CMAKE_SHARED_LINKER_FLAGS:STRING= 129 CMAKE_SHARED_LINKER_FLAGS:STRING=
171 130
172 -//Flags used by the linker during the creation of shared libraries  
173 -// during DEBUG builds. 131 +//Flags used by the linker during debug builds.
174 CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= 132 CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
175 133
176 -//Flags used by the linker during the creation of shared libraries  
177 -// during MINSIZEREL builds. 134 +//Flags used by the linker during release minsize builds.
178 CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= 135 CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
179 136
180 -//Flags used by the linker during the creation of shared libraries  
181 -// during RELEASE builds. 137 +//Flags used by the linker during release builds.
182 CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= 138 CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
183 139
184 -//Flags used by the linker during the creation of shared libraries  
185 -// during RELWITHDEBINFO builds. 140 +//Flags used by the linker during Release with Debug Info builds.
186 CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= 141 CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
187 142
188 //If set, runtime paths are not added when installing shared libraries, 143 //If set, runtime paths are not added when installing shared libraries,
@@ -192,24 +147,19 @@ CMAKE_SKIP_INSTALL_RPATH:BOOL=NO @@ -192,24 +147,19 @@ CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
192 //If set, runtime paths are not added when using shared libraries. 147 //If set, runtime paths are not added when using shared libraries.
193 CMAKE_SKIP_RPATH:BOOL=NO 148 CMAKE_SKIP_RPATH:BOOL=NO
194 149
195 -//Flags used by the linker during the creation of static libraries  
196 -// during all build types. 150 +//Flags used by the linker during the creation of static libraries.
197 CMAKE_STATIC_LINKER_FLAGS:STRING= 151 CMAKE_STATIC_LINKER_FLAGS:STRING=
198 152
199 -//Flags used by the linker during the creation of static libraries  
200 -// during DEBUG builds. 153 +//Flags used by the linker during debug builds.
201 CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= 154 CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
202 155
203 -//Flags used by the linker during the creation of static libraries  
204 -// during MINSIZEREL builds. 156 +//Flags used by the linker during release minsize builds.
205 CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= 157 CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
206 158
207 -//Flags used by the linker during the creation of static libraries  
208 -// during RELEASE builds. 159 +//Flags used by the linker during release builds.
209 CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= 160 CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
210 161
211 -//Flags used by the linker during the creation of static libraries  
212 -// during RELWITHDEBINFO builds. 162 +//Flags used by the linker during Release with Debug Info builds.
213 CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= 163 CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
214 164
215 //Path to a program. 165 //Path to a program.
@@ -226,8 +176,6 @@ CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE @@ -226,8 +176,6 @@ CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
226 # INTERNAL cache entries 176 # INTERNAL cache entries
227 ######################## 177 ########################
228 178
229 -//ADVANCED property for variable: CMAKE_ADDR2LINE  
230 -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1  
231 //ADVANCED property for variable: CMAKE_AR 179 //ADVANCED property for variable: CMAKE_AR
232 CMAKE_AR-ADVANCED:INTERNAL=1 180 CMAKE_AR-ADVANCED:INTERNAL=1
233 //This is the directory where this CMakeCache.txt was created 181 //This is the directory where this CMakeCache.txt was created
@@ -235,23 +183,19 @@ CMAKE_CACHEFILE_DIR:INTERNAL=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention @@ -235,23 +183,19 @@ CMAKE_CACHEFILE_DIR:INTERNAL=/mnt/hgfs/share/JZSDK_Linux/project_build/Attention
235 //Major version of cmake used to create the current loaded cache 183 //Major version of cmake used to create the current loaded cache
236 CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 184 CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
237 //Minor version of cmake used to create the current loaded cache 185 //Minor version of cmake used to create the current loaded cache
238 -CMAKE_CACHE_MINOR_VERSION:INTERNAL=24 186 +CMAKE_CACHE_MINOR_VERSION:INTERNAL=5
239 //Patch version of cmake used to create the current loaded cache 187 //Patch version of cmake used to create the current loaded cache
240 CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 188 CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
241 //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE 189 //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
242 CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 190 CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
243 //Path to CMake executable. 191 //Path to CMake executable.
244 -CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake 192 +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
245 //Path to cpack program executable. 193 //Path to cpack program executable.
246 -CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack 194 +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
247 //Path to ctest program executable. 195 //Path to ctest program executable.
248 -CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest 196 +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
249 //ADVANCED property for variable: CMAKE_CXX_COMPILER 197 //ADVANCED property for variable: CMAKE_CXX_COMPILER
250 CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 198 CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
251 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR  
252 -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1  
253 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB  
254 -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1  
255 //ADVANCED property for variable: CMAKE_CXX_FLAGS 199 //ADVANCED property for variable: CMAKE_CXX_FLAGS
256 CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 200 CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
257 //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG 201 //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
@@ -264,10 +208,6 @@ CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 @@ -264,10 +208,6 @@ CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
264 CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 208 CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
265 //ADVANCED property for variable: CMAKE_C_COMPILER 209 //ADVANCED property for variable: CMAKE_C_COMPILER
266 CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 210 CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
267 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR  
268 -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1  
269 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB  
270 -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1  
271 //ADVANCED property for variable: CMAKE_C_FLAGS 211 //ADVANCED property for variable: CMAKE_C_FLAGS
272 CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 212 CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
273 //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG 213 //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
@@ -278,8 +218,6 @@ CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 @@ -278,8 +218,6 @@ CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
278 CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 218 CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
279 //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO 219 //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
280 CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 220 CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
281 -//ADVANCED property for variable: CMAKE_DLLTOOL  
282 -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1  
283 //Executable file format 221 //Executable file format
284 CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF 222 CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
285 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS 223 //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
@@ -298,8 +236,6 @@ CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 @@ -298,8 +236,6 @@ CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
298 CMAKE_EXTRA_GENERATOR:INTERNAL= 236 CMAKE_EXTRA_GENERATOR:INTERNAL=
299 //Name of generator. 237 //Name of generator.
300 CMAKE_GENERATOR:INTERNAL=Unix Makefiles 238 CMAKE_GENERATOR:INTERNAL=Unix Makefiles
301 -//Generator instance identifier.  
302 -CMAKE_GENERATOR_INSTANCE:INTERNAL=  
303 //Name of generator platform. 239 //Name of generator platform.
304 CMAKE_GENERATOR_PLATFORM:INTERNAL= 240 CMAKE_GENERATOR_PLATFORM:INTERNAL=
305 //Name of generator toolset. 241 //Name of generator toolset.
@@ -331,14 +267,10 @@ CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 @@ -331,14 +267,10 @@ CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
331 CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 267 CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
332 //ADVANCED property for variable: CMAKE_OBJDUMP 268 //ADVANCED property for variable: CMAKE_OBJDUMP
333 CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 269 CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
334 -//Platform information initialized  
335 -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1  
336 //ADVANCED property for variable: CMAKE_RANLIB 270 //ADVANCED property for variable: CMAKE_RANLIB
337 CMAKE_RANLIB-ADVANCED:INTERNAL=1 271 CMAKE_RANLIB-ADVANCED:INTERNAL=1
338 -//ADVANCED property for variable: CMAKE_READELF  
339 -CMAKE_READELF-ADVANCED:INTERNAL=1  
340 //Path to CMake installation. 272 //Path to CMake installation.
341 -CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.24 273 +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.5
342 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS 274 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
343 CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 275 CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
344 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG 276 //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
@@ -369,6 +301,4 @@ CMAKE_STRIP-ADVANCED:INTERNAL=1 @@ -369,6 +301,4 @@ CMAKE_STRIP-ADVANCED:INTERNAL=1
369 CMAKE_UNAME:INTERNAL=/bin/uname 301 CMAKE_UNAME:INTERNAL=/bin/uname
370 //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE 302 //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
371 CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 303 CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
372 -//linker supports push/pop state  
373 -_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE  
374 304
1 -set(CMAKE_C_COMPILER "/usr/bin/cc")  
2 -set(CMAKE_C_COMPILER_ARG1 "")  
3 -set(CMAKE_C_COMPILER_ID "GNU")  
4 -set(CMAKE_C_COMPILER_VERSION "5.4.0")  
5 -set(CMAKE_C_COMPILER_VERSION_INTERNAL "")  
6 -set(CMAKE_C_COMPILER_WRAPPER "")  
7 -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")  
8 -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")  
9 -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")  
10 -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")  
11 -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")  
12 -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")  
13 -set(CMAKE_C17_COMPILE_FEATURES "")  
14 -set(CMAKE_C23_COMPILE_FEATURES "")  
15 -  
16 -set(CMAKE_C_PLATFORM_ID "Linux")  
17 -set(CMAKE_C_SIMULATE_ID "")  
18 -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")  
19 -set(CMAKE_C_SIMULATE_VERSION "")  
20 -  
21 -  
22 -  
23 -  
24 -set(CMAKE_AR "/usr/bin/ar")  
25 -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5")  
26 -set(CMAKE_RANLIB "/usr/bin/ranlib")  
27 -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5")  
28 -set(CMAKE_LINKER "/usr/bin/ld")  
29 -set(CMAKE_MT "")  
30 -set(CMAKE_COMPILER_IS_GNUCC 1)  
31 -set(CMAKE_C_COMPILER_LOADED 1)  
32 -set(CMAKE_C_COMPILER_WORKS TRUE)  
33 -set(CMAKE_C_ABI_COMPILED TRUE)  
34 -  
35 -set(CMAKE_C_COMPILER_ENV_VAR "CC")  
36 -  
37 -set(CMAKE_C_COMPILER_ID_RUN 1)  
38 -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)  
39 -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)  
40 -set(CMAKE_C_LINKER_PREFERENCE 10)  
41 -  
42 -# Save compiler ABI information.  
43 -set(CMAKE_C_SIZEOF_DATA_PTR "8")  
44 -set(CMAKE_C_COMPILER_ABI "ELF")  
45 -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")  
46 -set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")  
47 -  
48 -if(CMAKE_C_SIZEOF_DATA_PTR)  
49 - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")  
50 -endif()  
51 -  
52 -if(CMAKE_C_COMPILER_ABI)  
53 - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")  
54 -endif()  
55 -  
56 -if(CMAKE_C_LIBRARY_ARCHITECTURE)  
57 - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")  
58 -endif()  
59 -  
60 -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")  
61 -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)  
62 - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")  
63 -endif()  
64 -  
65 -  
66 -  
67 -  
68 -  
69 -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include")  
70 -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")  
71 -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")  
72 -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")  
1 -set(CMAKE_CXX_COMPILER "/usr/bin/c++")  
2 -set(CMAKE_CXX_COMPILER_ARG1 "")  
3 -set(CMAKE_CXX_COMPILER_ID "GNU")  
4 -set(CMAKE_CXX_COMPILER_VERSION "5.4.0")  
5 -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")  
6 -set(CMAKE_CXX_COMPILER_WRAPPER "")  
7 -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98")  
8 -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")  
9 -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")  
10 -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")  
11 -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")  
12 -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")  
13 -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")  
14 -set(CMAKE_CXX20_COMPILE_FEATURES "")  
15 -set(CMAKE_CXX23_COMPILE_FEATURES "")  
16 -  
17 -set(CMAKE_CXX_PLATFORM_ID "Linux")  
18 -set(CMAKE_CXX_SIMULATE_ID "")  
19 -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")  
20 -set(CMAKE_CXX_SIMULATE_VERSION "")  
21 -  
22 -  
23 -  
24 -  
25 -set(CMAKE_AR "/usr/bin/ar")  
26 -set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5")  
27 -set(CMAKE_RANLIB "/usr/bin/ranlib")  
28 -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5")  
29 -set(CMAKE_LINKER "/usr/bin/ld")  
30 -set(CMAKE_MT "")  
31 -set(CMAKE_COMPILER_IS_GNUCXX 1)  
32 -set(CMAKE_CXX_COMPILER_LOADED 1)  
33 -set(CMAKE_CXX_COMPILER_WORKS TRUE)  
34 -set(CMAKE_CXX_ABI_COMPILED TRUE)  
35 -  
36 -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")  
37 -  
38 -set(CMAKE_CXX_COMPILER_ID_RUN 1)  
39 -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)  
40 -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)  
41 -  
42 -foreach (lang C OBJC OBJCXX)  
43 - if (CMAKE_${lang}_COMPILER_ID_RUN)  
44 - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)  
45 - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})  
46 - endforeach()  
47 - endif()  
48 -endforeach()  
49 -  
50 -set(CMAKE_CXX_LINKER_PREFERENCE 30)  
51 -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)  
52 -  
53 -# Save compiler ABI information.  
54 -set(CMAKE_CXX_SIZEOF_DATA_PTR "8")  
55 -set(CMAKE_CXX_COMPILER_ABI "ELF")  
56 -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")  
57 -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")  
58 -  
59 -if(CMAKE_CXX_SIZEOF_DATA_PTR)  
60 - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")  
61 -endif()  
62 -  
63 -if(CMAKE_CXX_COMPILER_ABI)  
64 - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")  
65 -endif()  
66 -  
67 -if(CMAKE_CXX_LIBRARY_ARCHITECTURE)  
68 - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")  
69 -endif()  
70 -  
71 -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")  
72 -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)  
73 - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")  
74 -endif()  
75 -  
76 -  
77 -  
78 -  
79 -  
80 -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include")  
81 -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")  
82 -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")  
83 -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")  
1 -set(CMAKE_HOST_SYSTEM "Linux-4.15.0-142-generic")  
2 -set(CMAKE_HOST_SYSTEM_NAME "Linux")  
3 -set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-142-generic")  
4 -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")  
5 -  
6 -  
7 -  
8 -set(CMAKE_SYSTEM "Linux-4.15.0-142-generic")  
9 -set(CMAKE_SYSTEM_NAME "Linux")  
10 -set(CMAKE_SYSTEM_VERSION "4.15.0-142-generic")  
11 -set(CMAKE_SYSTEM_PROCESSOR "x86_64")  
12 -  
13 -set(CMAKE_CROSSCOMPILING "FALSE")  
14 -  
15 -set(CMAKE_SYSTEM_LOADED 1)  
1 -#ifdef __cplusplus  
2 -# error "A C++ compiler has been selected for C."  
3 -#endif  
4 -  
5 -#if defined(__18CXX)  
6 -# define ID_VOID_MAIN  
7 -#endif  
8 -#if defined(__CLASSIC_C__)  
9 -/* cv-qualifiers did not exist in K&R C */  
10 -# define const  
11 -# define volatile  
12 -#endif  
13 -  
14 -#if !defined(__has_include)  
15 -/* If the compiler does not have __has_include, pretend the answer is  
16 - always no. */  
17 -# define __has_include(x) 0  
18 -#endif  
19 -  
20 -  
21 -/* Version number components: V=Version, R=Revision, P=Patch  
22 - Version date components: YYYY=Year, MM=Month, DD=Day */  
23 -  
24 -#if defined(__INTEL_COMPILER) || defined(__ICC)  
25 -# define COMPILER_ID "Intel"  
26 -# if defined(_MSC_VER)  
27 -# define SIMULATE_ID "MSVC"  
28 -# endif  
29 -# if defined(__GNUC__)  
30 -# define SIMULATE_ID "GNU"  
31 -# endif  
32 - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,  
33 - except that a few beta releases use the old format with V=2021. */  
34 -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111  
35 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)  
36 -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)  
37 -# if defined(__INTEL_COMPILER_UPDATE)  
38 -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)  
39 -# else  
40 -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)  
41 -# endif  
42 -# else  
43 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)  
44 -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)  
45 - /* The third version component from --version is an update index,  
46 - but no macro is provided for it. */  
47 -# define COMPILER_VERSION_PATCH DEC(0)  
48 -# endif  
49 -# if defined(__INTEL_COMPILER_BUILD_DATE)  
50 - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */  
51 -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)  
52 -# endif  
53 -# if defined(_MSC_VER)  
54 - /* _MSC_VER = VVRR */  
55 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
56 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
57 -# endif  
58 -# if defined(__GNUC__)  
59 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
60 -# elif defined(__GNUG__)  
61 -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)  
62 -# endif  
63 -# if defined(__GNUC_MINOR__)  
64 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
65 -# endif  
66 -# if defined(__GNUC_PATCHLEVEL__)  
67 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
68 -# endif  
69 -  
70 -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)  
71 -# define COMPILER_ID "IntelLLVM"  
72 -#if defined(_MSC_VER)  
73 -# define SIMULATE_ID "MSVC"  
74 -#endif  
75 -#if defined(__GNUC__)  
76 -# define SIMULATE_ID "GNU"  
77 -#endif  
78 -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and  
79 - * later. Look for 6 digit vs. 8 digit version number to decide encoding.  
80 - * VVVV is no smaller than the current year when a version is released.  
81 - */  
82 -#if __INTEL_LLVM_COMPILER < 1000000L  
83 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)  
84 -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)  
85 -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)  
86 -#else  
87 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)  
88 -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)  
89 -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)  
90 -#endif  
91 -#if defined(_MSC_VER)  
92 - /* _MSC_VER = VVRR */  
93 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
94 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
95 -#endif  
96 -#if defined(__GNUC__)  
97 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
98 -#elif defined(__GNUG__)  
99 -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)  
100 -#endif  
101 -#if defined(__GNUC_MINOR__)  
102 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
103 -#endif  
104 -#if defined(__GNUC_PATCHLEVEL__)  
105 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
106 -#endif  
107 -  
108 -#elif defined(__PATHCC__)  
109 -# define COMPILER_ID "PathScale"  
110 -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)  
111 -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)  
112 -# if defined(__PATHCC_PATCHLEVEL__)  
113 -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)  
114 -# endif  
115 -  
116 -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)  
117 -# define COMPILER_ID "Embarcadero"  
118 -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)  
119 -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)  
120 -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)  
121 -  
122 -#elif defined(__BORLANDC__)  
123 -# define COMPILER_ID "Borland"  
124 - /* __BORLANDC__ = 0xVRR */  
125 -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)  
126 -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)  
127 -  
128 -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200  
129 -# define COMPILER_ID "Watcom"  
130 - /* __WATCOMC__ = VVRR */  
131 -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)  
132 -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)  
133 -# if (__WATCOMC__ % 10) > 0  
134 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)  
135 -# endif  
136 -  
137 -#elif defined(__WATCOMC__)  
138 -# define COMPILER_ID "OpenWatcom"  
139 - /* __WATCOMC__ = VVRP + 1100 */  
140 -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)  
141 -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)  
142 -# if (__WATCOMC__ % 10) > 0  
143 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)  
144 -# endif  
145 -  
146 -#elif defined(__SUNPRO_C)  
147 -# define COMPILER_ID "SunPro"  
148 -# if __SUNPRO_C >= 0x5100  
149 - /* __SUNPRO_C = 0xVRRP */  
150 -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)  
151 -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)  
152 -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)  
153 -# else  
154 - /* __SUNPRO_CC = 0xVRP */  
155 -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)  
156 -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)  
157 -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)  
158 -# endif  
159 -  
160 -#elif defined(__HP_cc)  
161 -# define COMPILER_ID "HP"  
162 - /* __HP_cc = VVRRPP */  
163 -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)  
164 -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)  
165 -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)  
166 -  
167 -#elif defined(__DECC)  
168 -# define COMPILER_ID "Compaq"  
169 - /* __DECC_VER = VVRRTPPPP */  
170 -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)  
171 -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)  
172 -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)  
173 -  
174 -#elif defined(__IBMC__) && defined(__COMPILER_VER__)  
175 -# define COMPILER_ID "zOS"  
176 - /* __IBMC__ = VRP */  
177 -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)  
178 -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)  
179 -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)  
180 -  
181 -#elif defined(__open_xl__) && defined(__clang__)  
182 -# define COMPILER_ID "IBMClang"  
183 -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)  
184 -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)  
185 -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)  
186 -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)  
187 -  
188 -  
189 -#elif defined(__ibmxl__) && defined(__clang__)  
190 -# define COMPILER_ID "XLClang"  
191 -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)  
192 -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)  
193 -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)  
194 -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)  
195 -  
196 -  
197 -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800  
198 -# define COMPILER_ID "XL"  
199 - /* __IBMC__ = VRP */  
200 -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)  
201 -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)  
202 -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)  
203 -  
204 -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800  
205 -# define COMPILER_ID "VisualAge"  
206 - /* __IBMC__ = VRP */  
207 -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)  
208 -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)  
209 -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)  
210 -  
211 -#elif defined(__NVCOMPILER)  
212 -# define COMPILER_ID "NVHPC"  
213 -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)  
214 -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)  
215 -# if defined(__NVCOMPILER_PATCHLEVEL__)  
216 -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)  
217 -# endif  
218 -  
219 -#elif defined(__PGI)  
220 -# define COMPILER_ID "PGI"  
221 -# define COMPILER_VERSION_MAJOR DEC(__PGIC__)  
222 -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)  
223 -# if defined(__PGIC_PATCHLEVEL__)  
224 -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)  
225 -# endif  
226 -  
227 -#elif defined(_CRAYC)  
228 -# define COMPILER_ID "Cray"  
229 -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)  
230 -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)  
231 -  
232 -#elif defined(__TI_COMPILER_VERSION__)  
233 -# define COMPILER_ID "TI"  
234 - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */  
235 -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)  
236 -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)  
237 -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)  
238 -  
239 -#elif defined(__CLANG_FUJITSU)  
240 -# define COMPILER_ID "FujitsuClang"  
241 -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)  
242 -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)  
243 -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)  
244 -# define COMPILER_VERSION_INTERNAL_STR __clang_version__  
245 -  
246 -  
247 -#elif defined(__FUJITSU)  
248 -# define COMPILER_ID "Fujitsu"  
249 -# if defined(__FCC_version__)  
250 -# define COMPILER_VERSION __FCC_version__  
251 -# elif defined(__FCC_major__)  
252 -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)  
253 -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)  
254 -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)  
255 -# endif  
256 -# if defined(__fcc_version)  
257 -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)  
258 -# elif defined(__FCC_VERSION)  
259 -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)  
260 -# endif  
261 -  
262 -  
263 -#elif defined(__ghs__)  
264 -# define COMPILER_ID "GHS"  
265 -/* __GHS_VERSION_NUMBER = VVVVRP */  
266 -# ifdef __GHS_VERSION_NUMBER  
267 -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)  
268 -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)  
269 -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)  
270 -# endif  
271 -  
272 -#elif defined(__TINYC__)  
273 -# define COMPILER_ID "TinyCC"  
274 -  
275 -#elif defined(__BCC__)  
276 -# define COMPILER_ID "Bruce"  
277 -  
278 -#elif defined(__SCO_VERSION__)  
279 -# define COMPILER_ID "SCO"  
280 -  
281 -#elif defined(__ARMCC_VERSION) && !defined(__clang__)  
282 -# define COMPILER_ID "ARMCC"  
283 -#if __ARMCC_VERSION >= 1000000  
284 - /* __ARMCC_VERSION = VRRPPPP */  
285 - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)  
286 - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)  
287 - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)  
288 -#else  
289 - /* __ARMCC_VERSION = VRPPPP */  
290 - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)  
291 - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)  
292 - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)  
293 -#endif  
294 -  
295 -  
296 -#elif defined(__clang__) && defined(__apple_build_version__)  
297 -# define COMPILER_ID "AppleClang"  
298 -# if defined(_MSC_VER)  
299 -# define SIMULATE_ID "MSVC"  
300 -# endif  
301 -# define COMPILER_VERSION_MAJOR DEC(__clang_major__)  
302 -# define COMPILER_VERSION_MINOR DEC(__clang_minor__)  
303 -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)  
304 -# if defined(_MSC_VER)  
305 - /* _MSC_VER = VVRR */  
306 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
307 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
308 -# endif  
309 -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)  
310 -  
311 -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)  
312 -# define COMPILER_ID "ARMClang"  
313 - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)  
314 - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)  
315 - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)  
316 -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)  
317 -  
318 -#elif defined(__clang__)  
319 -# define COMPILER_ID "Clang"  
320 -# if defined(_MSC_VER)  
321 -# define SIMULATE_ID "MSVC"  
322 -# endif  
323 -# define COMPILER_VERSION_MAJOR DEC(__clang_major__)  
324 -# define COMPILER_VERSION_MINOR DEC(__clang_minor__)  
325 -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)  
326 -# if defined(_MSC_VER)  
327 - /* _MSC_VER = VVRR */  
328 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
329 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
330 -# endif  
331 -  
332 -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))  
333 -# define COMPILER_ID "LCC"  
334 -# define COMPILER_VERSION_MAJOR DEC(1)  
335 -# if defined(__LCC__)  
336 -# define COMPILER_VERSION_MINOR DEC(__LCC__- 100)  
337 -# endif  
338 -# if defined(__LCC_MINOR__)  
339 -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)  
340 -# endif  
341 -# if defined(__GNUC__) && defined(__GNUC_MINOR__)  
342 -# define SIMULATE_ID "GNU"  
343 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
344 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
345 -# if defined(__GNUC_PATCHLEVEL__)  
346 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
347 -# endif  
348 -# endif  
349 -  
350 -#elif defined(__GNUC__)  
351 -# define COMPILER_ID "GNU"  
352 -# define COMPILER_VERSION_MAJOR DEC(__GNUC__)  
353 -# if defined(__GNUC_MINOR__)  
354 -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)  
355 -# endif  
356 -# if defined(__GNUC_PATCHLEVEL__)  
357 -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
358 -# endif  
359 -  
360 -#elif defined(_MSC_VER)  
361 -# define COMPILER_ID "MSVC"  
362 - /* _MSC_VER = VVRR */  
363 -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)  
364 -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)  
365 -# if defined(_MSC_FULL_VER)  
366 -# if _MSC_VER >= 1400  
367 - /* _MSC_FULL_VER = VVRRPPPPP */  
368 -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)  
369 -# else  
370 - /* _MSC_FULL_VER = VVRRPPPP */  
371 -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)  
372 -# endif  
373 -# endif  
374 -# if defined(_MSC_BUILD)  
375 -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)  
376 -# endif  
377 -  
378 -#elif defined(_ADI_COMPILER)  
379 -# define COMPILER_ID "ADSP"  
380 -#if defined(__VERSIONNUM__)  
381 - /* __VERSIONNUM__ = 0xVVRRPPTT */  
382 -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)  
383 -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)  
384 -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)  
385 -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)  
386 -#endif  
387 -  
388 -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)  
389 -# define COMPILER_ID "IAR"  
390 -# if defined(__VER__) && defined(__ICCARM__)  
391 -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)  
392 -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)  
393 -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)  
394 -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)  
395 -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))  
396 -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)  
397 -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))  
398 -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)  
399 -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)  
400 -# endif  
401 -  
402 -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)  
403 -# define COMPILER_ID "SDCC"  
404 -# if defined(__SDCC_VERSION_MAJOR)  
405 -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)  
406 -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)  
407 -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)  
408 -# else  
409 - /* SDCC = VRP */  
410 -# define COMPILER_VERSION_MAJOR DEC(SDCC/100)  
411 -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)  
412 -# define COMPILER_VERSION_PATCH DEC(SDCC % 10)  
413 -# endif  
414 -  
415 -  
416 -/* These compilers are either not known or too old to define an  
417 - identification macro. Try to identify the platform and guess that  
418 - it is the native compiler. */  
419 -#elif defined(__hpux) || defined(__hpua)  
420 -# define COMPILER_ID "HP"  
421 -  
422 -#else /* unknown compiler */  
423 -# define COMPILER_ID ""  
424 -#endif  
425 -  
426 -/* Construct the string literal in pieces to prevent the source from  
427 - getting matched. Store it in a pointer rather than an array  
428 - because some compilers will just produce instructions to fill the  
429 - array rather than assigning a pointer to a static array. */  
430 -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";  
431 -#ifdef SIMULATE_ID  
432 -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";  
433 -#endif  
434 -  
435 -#ifdef __QNXNTO__  
436 -char const* qnxnto = "INFO" ":" "qnxnto[]";  
437 -#endif  
438 -  
439 -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)  
440 -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";  
441 -#endif  
442 -  
443 -#define STRINGIFY_HELPER(X) #X  
444 -#define STRINGIFY(X) STRINGIFY_HELPER(X)  
445 -  
446 -/* Identify known platforms by name. */  
447 -#if defined(__linux) || defined(__linux__) || defined(linux)  
448 -# define PLATFORM_ID "Linux"  
449 -  
450 -#elif defined(__MSYS__)  
451 -# define PLATFORM_ID "MSYS"  
452 -  
453 -#elif defined(__CYGWIN__)  
454 -# define PLATFORM_ID "Cygwin"  
455 -  
456 -#elif defined(__MINGW32__)  
457 -# define PLATFORM_ID "MinGW"  
458 -  
459 -#elif defined(__APPLE__)  
460 -# define PLATFORM_ID "Darwin"  
461 -  
462 -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)  
463 -# define PLATFORM_ID "Windows"  
464 -  
465 -#elif defined(__FreeBSD__) || defined(__FreeBSD)  
466 -# define PLATFORM_ID "FreeBSD"  
467 -  
468 -#elif defined(__NetBSD__) || defined(__NetBSD)  
469 -# define PLATFORM_ID "NetBSD"  
470 -  
471 -#elif defined(__OpenBSD__) || defined(__OPENBSD)  
472 -# define PLATFORM_ID "OpenBSD"  
473 -  
474 -#elif defined(__sun) || defined(sun)  
475 -# define PLATFORM_ID "SunOS"  
476 -  
477 -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)  
478 -# define PLATFORM_ID "AIX"  
479 -  
480 -#elif defined(__hpux) || defined(__hpux__)  
481 -# define PLATFORM_ID "HP-UX"  
482 -  
483 -#elif defined(__HAIKU__)  
484 -# define PLATFORM_ID "Haiku"  
485 -  
486 -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)  
487 -# define PLATFORM_ID "BeOS"  
488 -  
489 -#elif defined(__QNX__) || defined(__QNXNTO__)  
490 -# define PLATFORM_ID "QNX"  
491 -  
492 -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)  
493 -# define PLATFORM_ID "Tru64"  
494 -  
495 -#elif defined(__riscos) || defined(__riscos__)  
496 -# define PLATFORM_ID "RISCos"  
497 -  
498 -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)  
499 -# define PLATFORM_ID "SINIX"  
500 -  
501 -#elif defined(__UNIX_SV__)  
502 -# define PLATFORM_ID "UNIX_SV"  
503 -  
504 -#elif defined(__bsdos__)  
505 -# define PLATFORM_ID "BSDOS"  
506 -  
507 -#elif defined(_MPRAS) || defined(MPRAS)  
508 -# define PLATFORM_ID "MP-RAS"  
509 -  
510 -#elif defined(__osf) || defined(__osf__)  
511 -# define PLATFORM_ID "OSF1"  
512 -  
513 -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)  
514 -# define PLATFORM_ID "SCO_SV"  
515 -  
516 -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)  
517 -# define PLATFORM_ID "ULTRIX"  
518 -  
519 -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)  
520 -# define PLATFORM_ID "Xenix"  
521 -  
522 -#elif defined(__WATCOMC__)  
523 -# if defined(__LINUX__)  
524 -# define PLATFORM_ID "Linux"  
525 -  
526 -# elif defined(__DOS__)  
527 -# define PLATFORM_ID "DOS"  
528 -  
529 -# elif defined(__OS2__)  
530 -# define PLATFORM_ID "OS2"  
531 -  
532 -# elif defined(__WINDOWS__)  
533 -# define PLATFORM_ID "Windows3x"  
534 -  
535 -# elif defined(__VXWORKS__)  
536 -# define PLATFORM_ID "VxWorks"  
537 -  
538 -# else /* unknown platform */  
539 -# define PLATFORM_ID  
540 -# endif  
541 -  
542 -#elif defined(__INTEGRITY)  
543 -# if defined(INT_178B)  
544 -# define PLATFORM_ID "Integrity178"  
545 -  
546 -# else /* regular Integrity */  
547 -# define PLATFORM_ID "Integrity"  
548 -# endif  
549 -  
550 -# elif defined(_ADI_COMPILER)  
551 -# define PLATFORM_ID "ADSP"  
552 -  
553 -#else /* unknown platform */  
554 -# define PLATFORM_ID  
555 -  
556 -#endif  
557 -  
558 -/* For windows compilers MSVC and Intel we can determine  
559 - the architecture of the compiler being used. This is because  
560 - the compilers do not have flags that can change the architecture,  
561 - but rather depend on which compiler is being used  
562 -*/  
563 -#if defined(_WIN32) && defined(_MSC_VER)  
564 -# if defined(_M_IA64)  
565 -# define ARCHITECTURE_ID "IA64"  
566 -  
567 -# elif defined(_M_ARM64EC)  
568 -# define ARCHITECTURE_ID "ARM64EC"  
569 -  
570 -# elif defined(_M_X64) || defined(_M_AMD64)  
571 -# define ARCHITECTURE_ID "x64"  
572 -  
573 -# elif defined(_M_IX86)  
574 -# define ARCHITECTURE_ID "X86"  
575 -  
576 -# elif defined(_M_ARM64)  
577 -# define ARCHITECTURE_ID "ARM64"  
578 -  
579 -# elif defined(_M_ARM)  
580 -# if _M_ARM == 4  
581 -# define ARCHITECTURE_ID "ARMV4I"  
582 -# elif _M_ARM == 5  
583 -# define ARCHITECTURE_ID "ARMV5I"  
584 -# else  
585 -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)  
586 -# endif  
587 -  
588 -# elif defined(_M_MIPS)  
589 -# define ARCHITECTURE_ID "MIPS"  
590 -  
591 -# elif defined(_M_SH)  
592 -# define ARCHITECTURE_ID "SHx"  
593 -  
594 -# else /* unknown architecture */  
595 -# define ARCHITECTURE_ID ""  
596 -# endif  
597 -  
598 -#elif defined(__WATCOMC__)  
599 -# if defined(_M_I86)  
600 -# define ARCHITECTURE_ID "I86"  
601 -  
602 -# elif defined(_M_IX86)  
603 -# define ARCHITECTURE_ID "X86"  
604 -  
605 -# else /* unknown architecture */  
606 -# define ARCHITECTURE_ID ""  
607 -# endif  
608 -  
609 -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)  
610 -# if defined(__ICCARM__)  
611 -# define ARCHITECTURE_ID "ARM"  
612 -  
613 -# elif defined(__ICCRX__)  
614 -# define ARCHITECTURE_ID "RX"  
615 -  
616 -# elif defined(__ICCRH850__)  
617 -# define ARCHITECTURE_ID "RH850"  
618 -  
619 -# elif defined(__ICCRL78__)  
620 -# define ARCHITECTURE_ID "RL78"  
621 -  
622 -# elif defined(__ICCRISCV__)  
623 -# define ARCHITECTURE_ID "RISCV"  
624 -  
625 -# elif defined(__ICCAVR__)  
626 -# define ARCHITECTURE_ID "AVR"  
627 -  
628 -# elif defined(__ICC430__)  
629 -# define ARCHITECTURE_ID "MSP430"  
630 -  
631 -# elif defined(__ICCV850__)  
632 -# define ARCHITECTURE_ID "V850"  
633 -  
634 -# elif defined(__ICC8051__)  
635 -# define ARCHITECTURE_ID "8051"  
636 -  
637 -# elif defined(__ICCSTM8__)  
638 -# define ARCHITECTURE_ID "STM8"  
639 -  
640 -# else /* unknown architecture */  
641 -# define ARCHITECTURE_ID ""  
642 -# endif  
643 -  
644 -#elif defined(__ghs__)  
645 -# if defined(__PPC64__)  
646 -# define ARCHITECTURE_ID "PPC64"  
647 -  
648 -# elif defined(__ppc__)  
649 -# define ARCHITECTURE_ID "PPC"  
650 -  
651 -# elif defined(__ARM__)  
652 -# define ARCHITECTURE_ID "ARM"  
653 -  
654 -# elif defined(__x86_64__)  
655 -# define ARCHITECTURE_ID "x64"  
656 -  
657 -# elif defined(__i386__)  
658 -# define ARCHITECTURE_ID "X86"  
659 -  
660 -# else /* unknown architecture */  
661 -# define ARCHITECTURE_ID ""  
662 -# endif  
663 -  
664 -#elif defined(__TI_COMPILER_VERSION__)  
665 -# if defined(__TI_ARM__)  
666 -# define ARCHITECTURE_ID "ARM"  
667 -  
668 -# elif defined(__MSP430__)  
669 -# define ARCHITECTURE_ID "MSP430"  
670 -  
671 -# elif defined(__TMS320C28XX__)  
672 -# define ARCHITECTURE_ID "TMS320C28x"  
673 -  
674 -# elif defined(__TMS320C6X__) || defined(_TMS320C6X)  
675 -# define ARCHITECTURE_ID "TMS320C6x"  
676 -  
677 -# else /* unknown architecture */  
678 -# define ARCHITECTURE_ID ""  
679 -# endif  
680 -  
681 -# elif defined(__ADSPSHARC__)  
682 -# define ARCHITECTURE_ID "SHARC"  
683 -  
684 -# elif defined(__ADSPBLACKFIN__)  
685 -# define ARCHITECTURE_ID "Blackfin"  
686 -  
687 -#else  
688 -# define ARCHITECTURE_ID  
689 -#endif  
690 -  
691 -/* Convert integer to decimal digit literals. */  
692 -#define DEC(n) \  
693 - ('0' + (((n) / 10000000)%10)), \  
694 - ('0' + (((n) / 1000000)%10)), \  
695 - ('0' + (((n) / 100000)%10)), \  
696 - ('0' + (((n) / 10000)%10)), \  
697 - ('0' + (((n) / 1000)%10)), \  
698 - ('0' + (((n) / 100)%10)), \  
699 - ('0' + (((n) / 10)%10)), \  
700 - ('0' + ((n) % 10))  
701 -  
702 -/* Convert integer to hex digit literals. */  
703 -#define HEX(n) \  
704 - ('0' + ((n)>>28 & 0xF)), \  
705 - ('0' + ((n)>>24 & 0xF)), \  
706 - ('0' + ((n)>>20 & 0xF)), \  
707 - ('0' + ((n)>>16 & 0xF)), \  
708 - ('0' + ((n)>>12 & 0xF)), \  
709 - ('0' + ((n)>>8 & 0xF)), \  
710 - ('0' + ((n)>>4 & 0xF)), \  
711 - ('0' + ((n) & 0xF))  
712 -  
713 -/* Construct a string literal encoding the version number. */  
714 -#ifdef COMPILER_VERSION  
715 -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";  
716 -  
717 -/* Construct a string literal encoding the version number components. */  
718 -#elif defined(COMPILER_VERSION_MAJOR)  
719 -char const info_version[] = {  
720 - 'I', 'N', 'F', 'O', ':',  
721 - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',  
722 - COMPILER_VERSION_MAJOR,  
723 -# ifdef COMPILER_VERSION_MINOR  
724 - '.', COMPILER_VERSION_MINOR,  
725 -# ifdef COMPILER_VERSION_PATCH  
726 - '.', COMPILER_VERSION_PATCH,  
727 -# ifdef COMPILER_VERSION_TWEAK  
728 - '.', COMPILER_VERSION_TWEAK,  
729 -# endif  
730 -# endif  
731 -# endif  
732 - ']','\0'};  
733 -#endif  
734 -  
735 -/* Construct a string literal encoding the internal version number. */  
736 -#ifdef COMPILER_VERSION_INTERNAL  
737 -char const info_version_internal[] = {  
738 - 'I', 'N', 'F', 'O', ':',  
739 - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',  
740 - 'i','n','t','e','r','n','a','l','[',  
741 - COMPILER_VERSION_INTERNAL,']','\0'};  
742 -#elif defined(COMPILER_VERSION_INTERNAL_STR)  
743 -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";  
744 -#endif  
745 -  
746 -/* Construct a string literal encoding the version number components. */  
747 -#ifdef SIMULATE_VERSION_MAJOR  
748 -char const info_simulate_version[] = {  
749 - 'I', 'N', 'F', 'O', ':',  
750 - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',  
751 - SIMULATE_VERSION_MAJOR,  
752 -# ifdef SIMULATE_VERSION_MINOR  
753 - '.', SIMULATE_VERSION_MINOR,  
754 -# ifdef SIMULATE_VERSION_PATCH  
755 - '.', SIMULATE_VERSION_PATCH,  
756 -# ifdef SIMULATE_VERSION_TWEAK  
757 - '.', SIMULATE_VERSION_TWEAK,  
758 -# endif  
759 -# endif  
760 -# endif  
761 - ']','\0'};  
762 -#endif  
763 -  
764 -/* Construct the string literal in pieces to prevent the source from  
765 - getting matched. Store it in a pointer rather than an array  
766 - because some compilers will just produce instructions to fill the  
767 - array rather than assigning a pointer to a static array. */  
768 -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";  
769 -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";  
770 -  
771 -  
772 -  
773 -#if !defined(__STDC__) && !defined(__clang__)  
774 -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)  
775 -# define C_VERSION "90"  
776 -# else  
777 -# define C_VERSION  
778 -# endif  
779 -#elif __STDC_VERSION__ > 201710L  
780 -# define C_VERSION "23"  
781 -#elif __STDC_VERSION__ >= 201710L  
782 -# define C_VERSION "17"  
783 -#elif __STDC_VERSION__ >= 201000L  
784 -# define C_VERSION "11"  
785 -#elif __STDC_VERSION__ >= 199901L  
786 -# define C_VERSION "99"  
787 -#else  
788 -# define C_VERSION "90"  
789 -#endif  
790 -const char* info_language_standard_default =  
791 - "INFO" ":" "standard_default[" C_VERSION "]";  
792 -  
793 -const char* info_language_extensions_default = "INFO" ":" "extensions_default["  
794 -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \  
795 - defined(__TI_COMPILER_VERSION__)) && \  
796 - !defined(__STRICT_ANSI__)  
797 - "ON"  
798 -#else  
799 - "OFF"  
800 -#endif  
801 -"]";  
802 -  
803 -/*--------------------------------------------------------------------------*/  
804 -  
805 -#ifdef ID_VOID_MAIN  
806 -void main() {}  
807 -#else  
808 -# if defined(__CLASSIC_C__)  
809 -int main(argc, argv) int argc; char *argv[];  
810 -# else  
811 -int main(int argc, char* argv[])  
812 -# endif  
813 -{  
814 - int require = 0;  
815 - require += info_compiler[argc];  
816 - require += info_platform[argc];  
817 - require += info_arch[argc];  
818 -#ifdef COMPILER_VERSION_MAJOR  
819 - require += info_version[argc];  
820 -#endif  
821 -#ifdef COMPILER_VERSION_INTERNAL  
822 - require += info_version_internal[argc];  
823 -#endif  
824 -#ifdef SIMULATE_ID  
825 - require += info_simulate[argc];  
826 -#endif  
827 -#ifdef SIMULATE_VERSION_MAJOR  
828 - require += info_simulate_version[argc];  
829 -#endif  
830 -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)  
831 - require += info_cray[argc];  
832 -#endif  
833 - require += info_language_standard_default[argc];  
834 - require += info_language_extensions_default[argc];  
835 - (void)argv;  
836 - return require;  
837 -}  
838 -#endif  
1 -/* This source file must have a .cpp extension so that all C++ compilers  
2 - recognize the extension without flags. Borland does not know .cxx for  
3 - example. */  
4 -#ifndef __cplusplus  
5 -# error "A C compiler has been selected for C++."  
6 -#endif  
7 -  
8 -#if !defined(__has_include)  
9 -/* If the compiler does not have __has_include, pretend the answer is  
10 - always no. */  
11 -# define __has_include(x) 0  
12 -#endif  
13 -  
14 -  
15 -/* Version number components: V=Version, R=Revision, P=Patch  
16 - Version date components: YYYY=Year, MM=Month, DD=Day */  
17 -  
18 -#if defined(__COMO__)  
19 -# define COMPILER_ID "Comeau"  
20 - /* __COMO_VERSION__ = VRR */  
21 -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)  
22 -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)  
23 -  
24 -#elif defined(__INTEL_COMPILER) || defined(__ICC)  
25 -# define COMPILER_ID "Intel"  
26 -# if defined(_MSC_VER)  
27 -# define SIMULATE_ID "MSVC"  
28 -# endif  
29 -# if defined(__GNUC__)  
30 -# define SIMULATE_ID "GNU"  
31 -# endif  
32 - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,  
33 - except that a few beta releases use the old format with V=2021. */  
34 -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111  
35 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)  
36 -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)  
37 -# if defined(__INTEL_COMPILER_UPDATE)  
38 -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)  
39 -# else  
40 -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)  
41 -# endif  
42 -# else  
43 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)  
44 -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)  
45 - /* The third version component from --version is an update index,  
46 - but no macro is provided for it. */  
47 -# define COMPILER_VERSION_PATCH DEC(0)  
48 -# endif  
49 -# if defined(__INTEL_COMPILER_BUILD_DATE)  
50 - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */  
51 -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)  
52 -# endif  
53 -# if defined(_MSC_VER)  
54 - /* _MSC_VER = VVRR */  
55 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
56 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
57 -# endif  
58 -# if defined(__GNUC__)  
59 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
60 -# elif defined(__GNUG__)  
61 -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)  
62 -# endif  
63 -# if defined(__GNUC_MINOR__)  
64 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
65 -# endif  
66 -# if defined(__GNUC_PATCHLEVEL__)  
67 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
68 -# endif  
69 -  
70 -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)  
71 -# define COMPILER_ID "IntelLLVM"  
72 -#if defined(_MSC_VER)  
73 -# define SIMULATE_ID "MSVC"  
74 -#endif  
75 -#if defined(__GNUC__)  
76 -# define SIMULATE_ID "GNU"  
77 -#endif  
78 -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and  
79 - * later. Look for 6 digit vs. 8 digit version number to decide encoding.  
80 - * VVVV is no smaller than the current year when a version is released.  
81 - */  
82 -#if __INTEL_LLVM_COMPILER < 1000000L  
83 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)  
84 -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)  
85 -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)  
86 -#else  
87 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)  
88 -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)  
89 -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)  
90 -#endif  
91 -#if defined(_MSC_VER)  
92 - /* _MSC_VER = VVRR */  
93 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
94 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
95 -#endif  
96 -#if defined(__GNUC__)  
97 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
98 -#elif defined(__GNUG__)  
99 -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)  
100 -#endif  
101 -#if defined(__GNUC_MINOR__)  
102 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
103 -#endif  
104 -#if defined(__GNUC_PATCHLEVEL__)  
105 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
106 -#endif  
107 -  
108 -#elif defined(__PATHCC__)  
109 -# define COMPILER_ID "PathScale"  
110 -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)  
111 -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)  
112 -# if defined(__PATHCC_PATCHLEVEL__)  
113 -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)  
114 -# endif  
115 -  
116 -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)  
117 -# define COMPILER_ID "Embarcadero"  
118 -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)  
119 -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)  
120 -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)  
121 -  
122 -#elif defined(__BORLANDC__)  
123 -# define COMPILER_ID "Borland"  
124 - /* __BORLANDC__ = 0xVRR */  
125 -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)  
126 -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)  
127 -  
128 -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200  
129 -# define COMPILER_ID "Watcom"  
130 - /* __WATCOMC__ = VVRR */  
131 -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)  
132 -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)  
133 -# if (__WATCOMC__ % 10) > 0  
134 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)  
135 -# endif  
136 -  
137 -#elif defined(__WATCOMC__)  
138 -# define COMPILER_ID "OpenWatcom"  
139 - /* __WATCOMC__ = VVRP + 1100 */  
140 -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)  
141 -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)  
142 -# if (__WATCOMC__ % 10) > 0  
143 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)  
144 -# endif  
145 -  
146 -#elif defined(__SUNPRO_CC)  
147 -# define COMPILER_ID "SunPro"  
148 -# if __SUNPRO_CC >= 0x5100  
149 - /* __SUNPRO_CC = 0xVRRP */  
150 -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)  
151 -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)  
152 -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)  
153 -# else  
154 - /* __SUNPRO_CC = 0xVRP */  
155 -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)  
156 -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)  
157 -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)  
158 -# endif  
159 -  
160 -#elif defined(__HP_aCC)  
161 -# define COMPILER_ID "HP"  
162 - /* __HP_aCC = VVRRPP */  
163 -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)  
164 -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)  
165 -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)  
166 -  
167 -#elif defined(__DECCXX)  
168 -# define COMPILER_ID "Compaq"  
169 - /* __DECCXX_VER = VVRRTPPPP */  
170 -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)  
171 -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)  
172 -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)  
173 -  
174 -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)  
175 -# define COMPILER_ID "zOS"  
176 - /* __IBMCPP__ = VRP */  
177 -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)  
178 -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)  
179 -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)  
180 -  
181 -#elif defined(__open_xl__) && defined(__clang__)  
182 -# define COMPILER_ID "IBMClang"  
183 -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)  
184 -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)  
185 -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)  
186 -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)  
187 -  
188 -  
189 -#elif defined(__ibmxl__) && defined(__clang__)  
190 -# define COMPILER_ID "XLClang"  
191 -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)  
192 -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)  
193 -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)  
194 -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)  
195 -  
196 -  
197 -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800  
198 -# define COMPILER_ID "XL"  
199 - /* __IBMCPP__ = VRP */  
200 -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)  
201 -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)  
202 -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)  
203 -  
204 -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800  
205 -# define COMPILER_ID "VisualAge"  
206 - /* __IBMCPP__ = VRP */  
207 -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)  
208 -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)  
209 -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)  
210 -  
211 -#elif defined(__NVCOMPILER)  
212 -# define COMPILER_ID "NVHPC"  
213 -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)  
214 -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)  
215 -# if defined(__NVCOMPILER_PATCHLEVEL__)  
216 -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)  
217 -# endif  
218 -  
219 -#elif defined(__PGI)  
220 -# define COMPILER_ID "PGI"  
221 -# define COMPILER_VERSION_MAJOR DEC(__PGIC__)  
222 -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)  
223 -# if defined(__PGIC_PATCHLEVEL__)  
224 -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)  
225 -# endif  
226 -  
227 -#elif defined(_CRAYC)  
228 -# define COMPILER_ID "Cray"  
229 -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)  
230 -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)  
231 -  
232 -#elif defined(__TI_COMPILER_VERSION__)  
233 -# define COMPILER_ID "TI"  
234 - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */  
235 -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)  
236 -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)  
237 -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)  
238 -  
239 -#elif defined(__CLANG_FUJITSU)  
240 -# define COMPILER_ID "FujitsuClang"  
241 -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)  
242 -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)  
243 -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)  
244 -# define COMPILER_VERSION_INTERNAL_STR __clang_version__  
245 -  
246 -  
247 -#elif defined(__FUJITSU)  
248 -# define COMPILER_ID "Fujitsu"  
249 -# if defined(__FCC_version__)  
250 -# define COMPILER_VERSION __FCC_version__  
251 -# elif defined(__FCC_major__)  
252 -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)  
253 -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)  
254 -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)  
255 -# endif  
256 -# if defined(__fcc_version)  
257 -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)  
258 -# elif defined(__FCC_VERSION)  
259 -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)  
260 -# endif  
261 -  
262 -  
263 -#elif defined(__ghs__)  
264 -# define COMPILER_ID "GHS"  
265 -/* __GHS_VERSION_NUMBER = VVVVRP */  
266 -# ifdef __GHS_VERSION_NUMBER  
267 -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)  
268 -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)  
269 -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)  
270 -# endif  
271 -  
272 -#elif defined(__SCO_VERSION__)  
273 -# define COMPILER_ID "SCO"  
274 -  
275 -#elif defined(__ARMCC_VERSION) && !defined(__clang__)  
276 -# define COMPILER_ID "ARMCC"  
277 -#if __ARMCC_VERSION >= 1000000  
278 - /* __ARMCC_VERSION = VRRPPPP */  
279 - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)  
280 - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)  
281 - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)  
282 -#else  
283 - /* __ARMCC_VERSION = VRPPPP */  
284 - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)  
285 - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)  
286 - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)  
287 -#endif  
288 -  
289 -  
290 -#elif defined(__clang__) && defined(__apple_build_version__)  
291 -# define COMPILER_ID "AppleClang"  
292 -# if defined(_MSC_VER)  
293 -# define SIMULATE_ID "MSVC"  
294 -# endif  
295 -# define COMPILER_VERSION_MAJOR DEC(__clang_major__)  
296 -# define COMPILER_VERSION_MINOR DEC(__clang_minor__)  
297 -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)  
298 -# if defined(_MSC_VER)  
299 - /* _MSC_VER = VVRR */  
300 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
301 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
302 -# endif  
303 -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)  
304 -  
305 -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)  
306 -# define COMPILER_ID "ARMClang"  
307 - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)  
308 - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)  
309 - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)  
310 -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)  
311 -  
312 -#elif defined(__clang__)  
313 -# define COMPILER_ID "Clang"  
314 -# if defined(_MSC_VER)  
315 -# define SIMULATE_ID "MSVC"  
316 -# endif  
317 -# define COMPILER_VERSION_MAJOR DEC(__clang_major__)  
318 -# define COMPILER_VERSION_MINOR DEC(__clang_minor__)  
319 -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)  
320 -# if defined(_MSC_VER)  
321 - /* _MSC_VER = VVRR */  
322 -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)  
323 -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)  
324 -# endif  
325 -  
326 -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))  
327 -# define COMPILER_ID "LCC"  
328 -# define COMPILER_VERSION_MAJOR DEC(1)  
329 -# if defined(__LCC__)  
330 -# define COMPILER_VERSION_MINOR DEC(__LCC__- 100)  
331 -# endif  
332 -# if defined(__LCC_MINOR__)  
333 -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)  
334 -# endif  
335 -# if defined(__GNUC__) && defined(__GNUC_MINOR__)  
336 -# define SIMULATE_ID "GNU"  
337 -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)  
338 -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)  
339 -# if defined(__GNUC_PATCHLEVEL__)  
340 -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
341 -# endif  
342 -# endif  
343 -  
344 -#elif defined(__GNUC__) || defined(__GNUG__)  
345 -# define COMPILER_ID "GNU"  
346 -# if defined(__GNUC__)  
347 -# define COMPILER_VERSION_MAJOR DEC(__GNUC__)  
348 -# else  
349 -# define COMPILER_VERSION_MAJOR DEC(__GNUG__)  
350 -# endif  
351 -# if defined(__GNUC_MINOR__)  
352 -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)  
353 -# endif  
354 -# if defined(__GNUC_PATCHLEVEL__)  
355 -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)  
356 -# endif  
357 -  
358 -#elif defined(_MSC_VER)  
359 -# define COMPILER_ID "MSVC"  
360 - /* _MSC_VER = VVRR */  
361 -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)  
362 -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)  
363 -# if defined(_MSC_FULL_VER)  
364 -# if _MSC_VER >= 1400  
365 - /* _MSC_FULL_VER = VVRRPPPPP */  
366 -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)  
367 -# else  
368 - /* _MSC_FULL_VER = VVRRPPPP */  
369 -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)  
370 -# endif  
371 -# endif  
372 -# if defined(_MSC_BUILD)  
373 -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)  
374 -# endif  
375 -  
376 -#elif defined(_ADI_COMPILER)  
377 -# define COMPILER_ID "ADSP"  
378 -#if defined(__VERSIONNUM__)  
379 - /* __VERSIONNUM__ = 0xVVRRPPTT */  
380 -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)  
381 -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)  
382 -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)  
383 -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)  
384 -#endif  
385 -  
386 -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)  
387 -# define COMPILER_ID "IAR"  
388 -# if defined(__VER__) && defined(__ICCARM__)  
389 -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)  
390 -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)  
391 -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)  
392 -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)  
393 -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))  
394 -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)  
395 -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))  
396 -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)  
397 -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)  
398 -# endif  
399 -  
400 -  
401 -/* These compilers are either not known or too old to define an  
402 - identification macro. Try to identify the platform and guess that  
403 - it is the native compiler. */  
404 -#elif defined(__hpux) || defined(__hpua)  
405 -# define COMPILER_ID "HP"  
406 -  
407 -#else /* unknown compiler */  
408 -# define COMPILER_ID ""  
409 -#endif  
410 -  
411 -/* Construct the string literal in pieces to prevent the source from  
412 - getting matched. Store it in a pointer rather than an array  
413 - because some compilers will just produce instructions to fill the  
414 - array rather than assigning a pointer to a static array. */  
415 -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";  
416 -#ifdef SIMULATE_ID  
417 -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";  
418 -#endif  
419 -  
420 -#ifdef __QNXNTO__  
421 -char const* qnxnto = "INFO" ":" "qnxnto[]";  
422 -#endif  
423 -  
424 -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)  
425 -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";  
426 -#endif  
427 -  
428 -#define STRINGIFY_HELPER(X) #X  
429 -#define STRINGIFY(X) STRINGIFY_HELPER(X)  
430 -  
431 -/* Identify known platforms by name. */  
432 -#if defined(__linux) || defined(__linux__) || defined(linux)  
433 -# define PLATFORM_ID "Linux"  
434 -  
435 -#elif defined(__MSYS__)  
436 -# define PLATFORM_ID "MSYS"  
437 -  
438 -#elif defined(__CYGWIN__)  
439 -# define PLATFORM_ID "Cygwin"  
440 -  
441 -#elif defined(__MINGW32__)  
442 -# define PLATFORM_ID "MinGW"  
443 -  
444 -#elif defined(__APPLE__)  
445 -# define PLATFORM_ID "Darwin"  
446 -  
447 -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)  
448 -# define PLATFORM_ID "Windows"  
449 -  
450 -#elif defined(__FreeBSD__) || defined(__FreeBSD)  
451 -# define PLATFORM_ID "FreeBSD"  
452 -  
453 -#elif defined(__NetBSD__) || defined(__NetBSD)  
454 -# define PLATFORM_ID "NetBSD"  
455 -  
456 -#elif defined(__OpenBSD__) || defined(__OPENBSD)  
457 -# define PLATFORM_ID "OpenBSD"  
458 -  
459 -#elif defined(__sun) || defined(sun)  
460 -# define PLATFORM_ID "SunOS"  
461 -  
462 -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)  
463 -# define PLATFORM_ID "AIX"  
464 -  
465 -#elif defined(__hpux) || defined(__hpux__)  
466 -# define PLATFORM_ID "HP-UX"  
467 -  
468 -#elif defined(__HAIKU__)  
469 -# define PLATFORM_ID "Haiku"  
470 -  
471 -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)  
472 -# define PLATFORM_ID "BeOS"  
473 -  
474 -#elif defined(__QNX__) || defined(__QNXNTO__)  
475 -# define PLATFORM_ID "QNX"  
476 -  
477 -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)  
478 -# define PLATFORM_ID "Tru64"  
479 -  
480 -#elif defined(__riscos) || defined(__riscos__)  
481 -# define PLATFORM_ID "RISCos"  
482 -  
483 -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)  
484 -# define PLATFORM_ID "SINIX"  
485 -  
486 -#elif defined(__UNIX_SV__)  
487 -# define PLATFORM_ID "UNIX_SV"  
488 -  
489 -#elif defined(__bsdos__)  
490 -# define PLATFORM_ID "BSDOS"  
491 -  
492 -#elif defined(_MPRAS) || defined(MPRAS)  
493 -# define PLATFORM_ID "MP-RAS"  
494 -  
495 -#elif defined(__osf) || defined(__osf__)  
496 -# define PLATFORM_ID "OSF1"  
497 -  
498 -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)  
499 -# define PLATFORM_ID "SCO_SV"  
500 -  
501 -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)  
502 -# define PLATFORM_ID "ULTRIX"  
503 -  
504 -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)  
505 -# define PLATFORM_ID "Xenix"  
506 -  
507 -#elif defined(__WATCOMC__)  
508 -# if defined(__LINUX__)  
509 -# define PLATFORM_ID "Linux"  
510 -  
511 -# elif defined(__DOS__)  
512 -# define PLATFORM_ID "DOS"  
513 -  
514 -# elif defined(__OS2__)  
515 -# define PLATFORM_ID "OS2"  
516 -  
517 -# elif defined(__WINDOWS__)  
518 -# define PLATFORM_ID "Windows3x"  
519 -  
520 -# elif defined(__VXWORKS__)  
521 -# define PLATFORM_ID "VxWorks"  
522 -  
523 -# else /* unknown platform */  
524 -# define PLATFORM_ID  
525 -# endif  
526 -  
527 -#elif defined(__INTEGRITY)  
528 -# if defined(INT_178B)  
529 -# define PLATFORM_ID "Integrity178"  
530 -  
531 -# else /* regular Integrity */  
532 -# define PLATFORM_ID "Integrity"  
533 -# endif  
534 -  
535 -# elif defined(_ADI_COMPILER)  
536 -# define PLATFORM_ID "ADSP"  
537 -  
538 -#else /* unknown platform */  
539 -# define PLATFORM_ID  
540 -  
541 -#endif  
542 -  
543 -/* For windows compilers MSVC and Intel we can determine  
544 - the architecture of the compiler being used. This is because  
545 - the compilers do not have flags that can change the architecture,  
546 - but rather depend on which compiler is being used  
547 -*/  
548 -#if defined(_WIN32) && defined(_MSC_VER)  
549 -# if defined(_M_IA64)  
550 -# define ARCHITECTURE_ID "IA64"  
551 -  
552 -# elif defined(_M_ARM64EC)  
553 -# define ARCHITECTURE_ID "ARM64EC"  
554 -  
555 -# elif defined(_M_X64) || defined(_M_AMD64)  
556 -# define ARCHITECTURE_ID "x64"  
557 -  
558 -# elif defined(_M_IX86)  
559 -# define ARCHITECTURE_ID "X86"  
560 -  
561 -# elif defined(_M_ARM64)  
562 -# define ARCHITECTURE_ID "ARM64"  
563 -  
564 -# elif defined(_M_ARM)  
565 -# if _M_ARM == 4  
566 -# define ARCHITECTURE_ID "ARMV4I"  
567 -# elif _M_ARM == 5  
568 -# define ARCHITECTURE_ID "ARMV5I"  
569 -# else  
570 -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)  
571 -# endif  
572 -  
573 -# elif defined(_M_MIPS)  
574 -# define ARCHITECTURE_ID "MIPS"  
575 -  
576 -# elif defined(_M_SH)  
577 -# define ARCHITECTURE_ID "SHx"  
578 -  
579 -# else /* unknown architecture */  
580 -# define ARCHITECTURE_ID ""  
581 -# endif  
582 -  
583 -#elif defined(__WATCOMC__)  
584 -# if defined(_M_I86)  
585 -# define ARCHITECTURE_ID "I86"  
586 -  
587 -# elif defined(_M_IX86)  
588 -# define ARCHITECTURE_ID "X86"  
589 -  
590 -# else /* unknown architecture */  
591 -# define ARCHITECTURE_ID ""  
592 -# endif  
593 -  
594 -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)  
595 -# if defined(__ICCARM__)  
596 -# define ARCHITECTURE_ID "ARM"  
597 -  
598 -# elif defined(__ICCRX__)  
599 -# define ARCHITECTURE_ID "RX"  
600 -  
601 -# elif defined(__ICCRH850__)  
602 -# define ARCHITECTURE_ID "RH850"  
603 -  
604 -# elif defined(__ICCRL78__)  
605 -# define ARCHITECTURE_ID "RL78"  
606 -  
607 -# elif defined(__ICCRISCV__)  
608 -# define ARCHITECTURE_ID "RISCV"  
609 -  
610 -# elif defined(__ICCAVR__)  
611 -# define ARCHITECTURE_ID "AVR"  
612 -  
613 -# elif defined(__ICC430__)  
614 -# define ARCHITECTURE_ID "MSP430"  
615 -  
616 -# elif defined(__ICCV850__)  
617 -# define ARCHITECTURE_ID "V850"  
618 -  
619 -# elif defined(__ICC8051__)  
620 -# define ARCHITECTURE_ID "8051"  
621 -  
622 -# elif defined(__ICCSTM8__)  
623 -# define ARCHITECTURE_ID "STM8"  
624 -  
625 -# else /* unknown architecture */  
626 -# define ARCHITECTURE_ID ""  
627 -# endif  
628 -  
629 -#elif defined(__ghs__)  
630 -# if defined(__PPC64__)  
631 -# define ARCHITECTURE_ID "PPC64"  
632 -  
633 -# elif defined(__ppc__)  
634 -# define ARCHITECTURE_ID "PPC"  
635 -  
636 -# elif defined(__ARM__)  
637 -# define ARCHITECTURE_ID "ARM"  
638 -  
639 -# elif defined(__x86_64__)  
640 -# define ARCHITECTURE_ID "x64"  
641 -  
642 -# elif defined(__i386__)  
643 -# define ARCHITECTURE_ID "X86"  
644 -  
645 -# else /* unknown architecture */  
646 -# define ARCHITECTURE_ID ""  
647 -# endif  
648 -  
649 -#elif defined(__TI_COMPILER_VERSION__)  
650 -# if defined(__TI_ARM__)  
651 -# define ARCHITECTURE_ID "ARM"  
652 -  
653 -# elif defined(__MSP430__)  
654 -# define ARCHITECTURE_ID "MSP430"  
655 -  
656 -# elif defined(__TMS320C28XX__)  
657 -# define ARCHITECTURE_ID "TMS320C28x"  
658 -  
659 -# elif defined(__TMS320C6X__) || defined(_TMS320C6X)  
660 -# define ARCHITECTURE_ID "TMS320C6x"  
661 -  
662 -# else /* unknown architecture */  
663 -# define ARCHITECTURE_ID ""  
664 -# endif  
665 -  
666 -# elif defined(__ADSPSHARC__)  
667 -# define ARCHITECTURE_ID "SHARC"  
668 -  
669 -# elif defined(__ADSPBLACKFIN__)  
670 -# define ARCHITECTURE_ID "Blackfin"  
671 -  
672 -#else  
673 -# define ARCHITECTURE_ID  
674 -#endif  
675 -  
676 -/* Convert integer to decimal digit literals. */  
677 -#define DEC(n) \  
678 - ('0' + (((n) / 10000000)%10)), \  
679 - ('0' + (((n) / 1000000)%10)), \  
680 - ('0' + (((n) / 100000)%10)), \  
681 - ('0' + (((n) / 10000)%10)), \  
682 - ('0' + (((n) / 1000)%10)), \  
683 - ('0' + (((n) / 100)%10)), \  
684 - ('0' + (((n) / 10)%10)), \  
685 - ('0' + ((n) % 10))  
686 -  
687 -/* Convert integer to hex digit literals. */  
688 -#define HEX(n) \  
689 - ('0' + ((n)>>28 & 0xF)), \  
690 - ('0' + ((n)>>24 & 0xF)), \  
691 - ('0' + ((n)>>20 & 0xF)), \  
692 - ('0' + ((n)>>16 & 0xF)), \  
693 - ('0' + ((n)>>12 & 0xF)), \  
694 - ('0' + ((n)>>8 & 0xF)), \  
695 - ('0' + ((n)>>4 & 0xF)), \  
696 - ('0' + ((n) & 0xF))  
697 -  
698 -/* Construct a string literal encoding the version number. */  
699 -#ifdef COMPILER_VERSION  
700 -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";  
701 -  
702 -/* Construct a string literal encoding the version number components. */  
703 -#elif defined(COMPILER_VERSION_MAJOR)  
704 -char const info_version[] = {  
705 - 'I', 'N', 'F', 'O', ':',  
706 - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',  
707 - COMPILER_VERSION_MAJOR,  
708 -# ifdef COMPILER_VERSION_MINOR  
709 - '.', COMPILER_VERSION_MINOR,  
710 -# ifdef COMPILER_VERSION_PATCH  
711 - '.', COMPILER_VERSION_PATCH,  
712 -# ifdef COMPILER_VERSION_TWEAK  
713 - '.', COMPILER_VERSION_TWEAK,  
714 -# endif  
715 -# endif  
716 -# endif  
717 - ']','\0'};  
718 -#endif  
719 -  
720 -/* Construct a string literal encoding the internal version number. */  
721 -#ifdef COMPILER_VERSION_INTERNAL  
722 -char const info_version_internal[] = {  
723 - 'I', 'N', 'F', 'O', ':',  
724 - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',  
725 - 'i','n','t','e','r','n','a','l','[',  
726 - COMPILER_VERSION_INTERNAL,']','\0'};  
727 -#elif defined(COMPILER_VERSION_INTERNAL_STR)  
728 -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";  
729 -#endif  
730 -  
731 -/* Construct a string literal encoding the version number components. */  
732 -#ifdef SIMULATE_VERSION_MAJOR  
733 -char const info_simulate_version[] = {  
734 - 'I', 'N', 'F', 'O', ':',  
735 - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',  
736 - SIMULATE_VERSION_MAJOR,  
737 -# ifdef SIMULATE_VERSION_MINOR  
738 - '.', SIMULATE_VERSION_MINOR,  
739 -# ifdef SIMULATE_VERSION_PATCH  
740 - '.', SIMULATE_VERSION_PATCH,  
741 -# ifdef SIMULATE_VERSION_TWEAK  
742 - '.', SIMULATE_VERSION_TWEAK,  
743 -# endif  
744 -# endif  
745 -# endif  
746 - ']','\0'};  
747 -#endif  
748 -  
749 -/* Construct the string literal in pieces to prevent the source from  
750 - getting matched. Store it in a pointer rather than an array  
751 - because some compilers will just produce instructions to fill the  
752 - array rather than assigning a pointer to a static array. */  
753 -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";  
754 -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";  
755 -  
756 -  
757 -  
758 -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L  
759 -# if defined(__INTEL_CXX11_MODE__)  
760 -# if defined(__cpp_aggregate_nsdmi)  
761 -# define CXX_STD 201402L  
762 -# else  
763 -# define CXX_STD 201103L  
764 -# endif  
765 -# else  
766 -# define CXX_STD 199711L  
767 -# endif  
768 -#elif defined(_MSC_VER) && defined(_MSVC_LANG)  
769 -# define CXX_STD _MSVC_LANG  
770 -#else  
771 -# define CXX_STD __cplusplus  
772 -#endif  
773 -  
774 -const char* info_language_standard_default = "INFO" ":" "standard_default["  
775 -#if CXX_STD > 202002L  
776 - "23"  
777 -#elif CXX_STD > 201703L  
778 - "20"  
779 -#elif CXX_STD >= 201703L  
780 - "17"  
781 -#elif CXX_STD >= 201402L  
782 - "14"  
783 -#elif CXX_STD >= 201103L  
784 - "11"  
785 -#else  
786 - "98"  
787 -#endif  
788 -"]";  
789 -  
790 -const char* info_language_extensions_default = "INFO" ":" "extensions_default["  
791 -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \  
792 - defined(__TI_COMPILER_VERSION__)) && \  
793 - !defined(__STRICT_ANSI__)  
794 - "ON"  
795 -#else  
796 - "OFF"  
797 -#endif  
798 -"]";  
799 -  
800 -/*--------------------------------------------------------------------------*/  
801 -  
802 -int main(int argc, char* argv[])  
803 -{  
804 - int require = 0;  
805 - require += info_compiler[argc];  
806 - require += info_platform[argc];  
807 -#ifdef COMPILER_VERSION_MAJOR  
808 - require += info_version[argc];  
809 -#endif  
810 -#ifdef COMPILER_VERSION_INTERNAL  
811 - require += info_version_internal[argc];  
812 -#endif  
813 -#ifdef SIMULATE_ID  
814 - require += info_simulate[argc];  
815 -#endif  
816 -#ifdef SIMULATE_VERSION_MAJOR  
817 - require += info_simulate_version[argc];  
818 -#endif  
819 -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)  
820 - require += info_cray[argc];  
821 -#endif  
822 - require += info_language_standard_default[argc];  
823 - require += info_language_extensions_default[argc];  
824 - (void)argv;  
825 - return require;  
826 -}