/* * messageproc.h * * Created on: 2021Äê11ÔÂ1ÈÕ * Author: graydon */ #ifndef MESSAGEPROC_H_ #define MESSAGEPROC_H_ #include #include #include "protocol.h" #include "typedefs.h" #include "queue.h" #include "dsp_report.h" #include "../drv/memory.h" #define LEVELS_MAX_LEN 1688 class Message{ private: Queue* txQueue; ReportStatus dsp_status_q; s16* Levels; u32 levels_max_len; s32 PresetProcess(MSG* pmsg); s32 ParamCtrl(MSG* pmsg); s32 HandshakeMessageProcess(MSG* pmsg); s32 RxMessageHandler(MSG* pmsg); void param_init(ptag_device_config pDevCfg); public: Message(u32 num) { levels_max_len = LEVELS_MAX_LEN; txQueue = new Queue(num); Levels = new s16[levels_max_len]; } ~Message() { delete []Levels; delete []txQueue; } inline uvoid DspStatusPush(DSPStatusID ID , s16* value, s32 num) { dsp_status_q.device_status_push(ID, value, num); } s32 Send(MSG* pmsg ); s32 Send(MsgType msg_type, uvoidptr buffer, u32 len); uvoid Proc(); uvoid ReportDspStatus(MSG* pmsg); uvoid ReportLevel(MSG* pmsg); }; #endif /* MESSAGEPROC_H_ */