/* * ctrl.h * * Created on: 2025Äê7ÔÂ23ÈÕ * Author: 86189 */ #ifndef PARAM_CTRL_H_ #define PARAM_CTRL_H_ #include #include "IModule.h" //Ô¤Éè²ÎÊý½âÎöÓà typedef u32 (*ParamCtrl_fn)(IModule* m, void* handle, int &plen); //²ÎÊý¿ØÖÆÓà typedef u32 (*Ctrl_fn)(IModule* m, u32 pID, s16* val_c); class ParamEntry { private: //u16 module_type; ParamCtrl_fn param; Ctrl_fn ctrl; public: ParamCtrl_fn GetParamEntry(){ return param; } Ctrl_fn GetCtrlEntry(){ return ctrl; } ParamEntry() : param(nullptr), ctrl(nullptr) {} ParamEntry(ParamCtrl_fn fparam, Ctrl_fn fctrl){ //module_type = type; param = fparam; ctrl = fctrl; } }; class param_ctrl_t{ protected: std::map mctrl_list; public: ParamCtrl_fn GetParamEntry(u32 mtype) { if(mctrl_list.count(mtype)) return mctrl_list[mtype].GetParamEntry(); else return NULL; } Ctrl_fn GetCtrlEntry(u32 mtype) { if(mctrl_list.count(mtype)) return mctrl_list[mtype].GetCtrlEntry(); else return NULL; } }; #endif /* PARAM_CTRL_H_ */