| | |
| | | #include "../protocol.h" |
| | | #include "module_def.h" |
| | | |
| | | |
| | | #pragma pack (1) |
| | | typedef struct { |
| | | unsigned short magic; |
| | | unsigned short nmds; |
| | | |
| | | unsigned short pad1; |
| | | unsigned short pad2; |
| | | |
| | | unsigned short crc[2]; |
| | | |
| | | tag_input input; //1362 |
| | | |
| | | tag_input input;//1282 |
| | | |
| | | tag_module in1[MAX_INPUT_NUM]; |
| | | tag_module in1[MAX_INPUT_NUM]; //4352 |
| | | tag_module in2[MAX_INPUT_NUM]; |
| | | tag_module in3[MAX_INPUT_NUM]; |
| | | tag_module in4[MAX_INPUT_NUM]; |
| | | tag_module in5[MAX_INPUT_NUM]; |
| | | |
| | | tag_automixer automixer;//138 |
| | | tag_selector aec_selector; //68 |
| | | tag_aec aec; //4 |
| | | tag_selector ans_selector; //68 |
| | | tag_3a afc_ns;//4 |
| | | tag_mixer mixer; //728 -4 |
| | | tag_automixer automixer; //366 |
| | | tag_selector aec_selector; //208 |
| | | tag_aec aec; //4 |
| | | tag_selector ans_selector; //208 |
| | | tag_3a afc_ns; //36 |
| | | tag_mixer mixer; //5242 |
| | | |
| | | tag_module out1[MAX_OUTPUT_NUM]; |
| | | tag_module out2[MAX_OUTPUT_NUM]; |
| | | tag_module out3[MAX_OUTPUT_NUM]; |
| | | tag_module out4[MAX_OUTPUT_NUM]; |
| | | tag_output output; |
| | | tag_sysctl sysctl; |
| | | tag_group group; |
| | | tag_module out1[MAX_OUTPUT_NUM]; //4352 |
| | | // tag_module out2[MAX_OUTPUT_NUM]; |
| | | tag_module_fir out2[MAX_OUTPUT_NUM]; //140080 |
| | | tag_module out3[MAX_OUTPUT_NUM]; |
| | | tag_module out4[MAX_OUTPUT_NUM]; |
| | | tag_output output; //1158 |
| | | tag_sysctl sysctl; //6 |
| | | tag_group group; //272 |
| | | } tag_parameters, *ptag_parameters; |
| | | |
| | | #pragma pack () |
| | | |
| | | class tgScene: public Scene |
| | | { |
| | | private: |
| | | tag_parameters parameters; //预设参数由ARM下发 |
| | | s32 **chin_mid, **chout_mid; //chin_mid[i][0]、chout_mid[i][0]为输入输出ID,算法模块ID第二维从1开始; i表示通道,从0开始 |
| | | std::vector<void *> paramPtr; |
| | | s32 input_num, output_num; |
| | | |
| | | //更新动态模块level_num和tag. 非动态模块已经静态固定. |
| | | s32 update_dynmodule_tag(s32 proc_type,struct proc_field* proc); |
| | | public: |
| | | tgScene(hw_adapter_t* adapter); |
| | | ~tgScene(); |
| | | void module_def(s32 proc_type, void* param_ptr); |
| | | void tgScene_param_default(ptag_parameters p); |
| | | |
| | |
| | | |
| | | virtual s32 set_parameters_content(uvoid* param, s32 size) override; |
| | | |
| | | virtual uvoid* get_module_param_ptr(uvoid *param, s32 fixed) override; |
| | | virtual uvoid* get_module_param_ptr(s32 mType, uvoid *param, s32 fixed) override; |
| | | |
| | | virtual u32 get_module_id(u32 mid, s32 mtype ,u32 pid) override; |
| | | virtual void* get_parameters() override { return ¶meters; } |
| | | |
| | | virtual s32** get_chin_mid() override { return chin_mid; } |
| | | virtual s32** get_chout_mid() override { return chout_mid; } |
| | | virtual s32 get_input_num() override { return input_num; } |
| | | virtual s32 get_output_num() override { return output_num; } |
| | | // virtual u32 get_module_id(u32 mid, s32 mtype ,u32 pid) override; |
| | | }; |
| | | |
| | | |