/*
|
* ctrl.h
|
*
|
* Created on: 2025Äê7ÔÂ23ÈÕ
|
* Author: 86189
|
*/
|
|
#ifndef PARAM_CTRL_H_
|
#define PARAM_CTRL_H_
|
|
#include <map>
|
#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<u32, ParamEntry> 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_ */
|