#ifndef _GLOBALVARIABLE_H_ #define _GLOBALVARIABLE_H_ #include #include #include class QString; /* ========================================================================================= * 枚举 * =========================================================================================*/ /** * @brief 录音通道枚举 * */ enum class ERoadID { RoadID_None = 0, /* 无通道 */ RoadID_1 = 1, /* 通道1 */ RoadID_2, /* 通道2 */ RoadID_3, /* 通道3 */ RoadID_4, /* 通道4 */ RoadID_5, /* 通道5 */ RoadID_6, /* 通道6 */ RoadID_7, /* 通道7 */ RoadID_8, /* 通道8 */ RoadID_9, /* 通道9 */ RoadID_10, /* 通道10 */ RoadID_11, /* 通道11 */ RoadID_12, /* 通道12 */ RoadID_13, /* 通道13 */ RoadID_14, /* 通道14 */ RoadID_15, /* 通道15 */ RoadID_16, /* 通道16 */ RoadID_17, /* 通道17 */ RoadID_18, /* 通道18 */ RoadID_19, /* 通道19 */ RoadID_20, /* 通道20 */ RoadID_21, /* 通道21 */ RoadID_22, /* 通道22 */ RoadID_23, /* 通道23 */ RoadID_24, /* 通道24 */ RoadID_25, /* 通道25 */ RoadID_26, /* 通道26 */ RoadID_27, /* 通道27 */ RoadID_28, /* 通道28 */ RoadID_29, /* 通道29 */ RoadID_30, /* 通道30 */ RoadID_31, /* 通道31 */ RoadID_32, /* 通道32 */ RoadID_33, /* 通道33 */ RoadID_34, /* 通道34 */ RoadID_35, /* 通道35 */ RoadID_36, /* 通道36 */ RoadID_37, /* 通道37 */ RoadID_38, /* 通道38 */ RoadID_39, /* 通道39 */ RoadID_40, /* 通道40 */ RoadID_41, /* 通道41 */ RoadID_42, /* 通道42 */ RoadID_43, /* 通道43 */ RoadID_44, /* 通道44 */ RoadID_45, /* 通道45 */ RoadID_46, /* 通道46 */ RoadID_47, /* 通道47 */ RoadID_48, /* 通道48 */ RoadID_49, /* 通道49 */ RoadID_50, /* 通道50 */ RoadID_51, /* 通道51 */ RoadID_52, /* 通道52 */ RoadID_53, /* 通道53 */ RoadID_54, /* 通道54 */ RoadID_55, /* 通道55 */ RoadID_56, /* 通道56 */ RoadID_57, /* 通道57 */ RoadID_58, /* 通道58 */ RoadID_59, /* 通道59 */ RoadID_60, /* 通道60 */ RoadID_61, /* 通道61 */ RoadID_62, /* 通道62 */ RoadID_63, /* 通道63 */ RoadID_64, /* 通道64 */ RoadID_MAX = RoadID_64, /* 最大通道数 */ }; /* ========================================================================================= * 线程信息相关枚举和结构体 * =========================================================================================*/ /** * @brief 线程状态枚举 * */ enum class EThreadState { State_None = 0, /* 无状态 */ State_Inited, /* 已初始化 */ State_Running, /* 运行中 */ State_Stopped, /* 已停止 */ State_Error /* 错误状态 */ }; /** * @brief 线程类型枚举 * */ enum class EThreadType { Type_None = 0, /* 无类型 */ Type_RecordSrc, /* 录音源线程 */ Type_AssignSrcData, /* 分派数据线程 */ Type_CreateWAV, /* 生成WAV文件线程 */ Type_CalculateDBAndPhase, /* 计算音量和反相线程 */ // Type_CreateNoise, /* 生成噪音数据线程 */ Type_CreateLongWAV, /* 生成长文件线程 */ Type_RtpSend, /* RTP发送线程 */ Type_ConsistencyCheck, /* 一致性检查线程 */ Type_CheckDBAndPhase /* 检查音量和反相线程 */ }; /** * @brief 录音通道信息 * */ struct RoadNumberInfo_t { ERoadID roadID; /* 录音通道编号 */ std::string strRoadName; /* 录音通道名称 */ int roadNum; /* 录音通道编号,在对比项里的编号 */ RoadNumberInfo_t() = default; RoadNumberInfo_t(const RoadNumberInfo_t& info) : roadID(info.roadID), strRoadName(info.strRoadName), roadNum(info.roadNum) {} RoadNumberInfo_t& operator=(const RoadNumberInfo_t& info) { if (this == &info) return *this; // 防止自赋值 roadID = info.roadID; strRoadName = info.strRoadName; roadNum = info.roadNum; return *this; } }; class BaseRecordThread; /* 录音线程基类 */ /** * @brief 录音线程信息结构体 */ struct RecordThreadInfo_t { RoadNumberInfo_t RoadInfo; /* 录音通道信息 */ EThreadType threadType; /* 线程类型 */ EThreadState threadState; /* 线程状态 */ // BaseRecordThread* pThread = nullptr; /* 线程对象 */ }; class BaseCalculateThread; /** * @brief 计算线程信息结构体 * */ struct CalculateThreadInfo_t { int CompareItemID; /* 对比项ID */ std::string strCompareItemName; /* 对比项名称 */ std::vector vecRoad; /* 其他对比项录音通道编号列表 */ EThreadType threadType; /* 线程类型 */ EThreadState threadState; /* 线程状态 */ BaseCalculateThread* pThread = nullptr; /* 计算线程对象 */ CalculateThreadInfo_t() = default; CalculateThreadInfo_t(const CalculateThreadInfo_t& info); CalculateThreadInfo_t& operator=(const CalculateThreadInfo_t& info); }; #endif // _GLOBALVARIABLE_H_