/* * hw_base_adapter.h * * Created on: 2025Äê7ÔÂ19ÈÕ * Author: 86189 */ #ifndef HW_ADAPTER_H_ #define HW_ADAPTER_H_ #include "typedefs.h" #include "../drv/board.h" #define AddRoute(s, d) \ conf->routes[conf->mRouteNum].source = s; \ conf->routes[conf->mRouteNum].dest = d; \ conf->mRouteNum++ //n: 0<->sport0a,1<->sport0b,2<->sport1a,3<->sport1b,... #define intr_sport_no(n) (37+2*n) #define intr_lp0 81 #define intr_lp1 83 class hw_adapter_t{ protected: s8 dual_dsp ; s8 dsp_index ; s8 pad1 =0,pad2=0; s8 ana_input_num ; s8 ana_output_num ; s8 usb_input_num; s8 usb_output_num; s8 dante_input_num ; s8 dante_output_num ; public: virtual ~hw_adapter_t(){} hw_adapter_t(s8 dual_dsp,s8 dsp_index,s8 ana_input_num,s8 ana_output_num,s8 dante_input_num,s8 dante_output_num) { this->dual_dsp = dual_dsp; this->dsp_index = dsp_index ; this->ana_input_num = ana_input_num; this->ana_output_num = ana_output_num; this->dante_input_num = dante_input_num; this->dante_output_num = dante_output_num; this->usb_input_num = 2; this->usb_output_num = 2; } uvoid get_channel_num(s8* ana_rx_num,s8* ana_tx_num,s8* dante_rx_num,s8* dante_tx_num) { *ana_rx_num = ana_input_num; *ana_tx_num = ana_output_num; *dante_rx_num = dante_input_num; *dante_tx_num = dante_output_num; } uvoid get_channel_num(u16* input_num ,u16* output_num) { *input_num = ana_input_num+dante_input_num; *output_num = ana_output_num+dante_output_num; } s32 get_dsp_index() {return dsp_index ;} s32 get_system_is_dual_dsp() { return dual_dsp ;} //dai,sportÅäÖÃ˳Ðò¾ÍÒѾ­¾ö¶¨ÁËÎïÀíbuffer. virtual uvoid config_board(struct DSPConfig * conf) =0; //¸ù¾ÝÂß¼­Í¨µÀºÅ»ñÈ¡ÎïÀíͨµÀºÅ£¬´Ó0¿ªÊ¼. //Âß¼­Í¨µÀºÅ¾ÍÊÇÊäÈëÊä³öÄ£¿éͨµÀ£¨¶Ë¿Ú£©Ë÷Òý; ÎïÀíͨµÀºÅÊÇsportÅäÖõÄbuffer. virtual s32 get_physical_channel(s32 input , s32 logic_channel) = 0; }; #endif /* HW_ADAPTER_H_ */