/*
|
* 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 ;
|
s8 local_input_num;
|
s8 local_output_num;
|
public:
|
virtual ~hw_adapter_t(){}
|
hw_adapter_t(s8 dual_dsp, s8 dsp_index, s8 local_input_num, s8 local_output_num, s8 dante_input_num, s8 dante_output_num)
|
{
|
this->dual_dsp = dual_dsp;
|
this->dsp_index = dsp_index ;
|
this->local_input_num = local_input_num;
|
this->local_output_num = local_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;
|
this->ana_input_num = local_input_num - usb_input_num;
|
this->ana_output_num = local_output_num - usb_output_num;
|
}
|
uvoid get_channel_num(s8* loc_rx_num,s8* loc_tx_num,s8* dante_rx_num,s8* dante_tx_num,s8* usb_rx_num,s8* usb_tx_num)
|
{
|
*loc_rx_num = local_input_num;
|
*loc_tx_num = local_output_num;
|
*dante_rx_num = dante_input_num;
|
*dante_tx_num = dante_output_num;
|
*usb_rx_num = usb_input_num;
|
*usb_tx_num = usb_output_num;
|
}
|
|
uvoid get_channel_num(u16* input_num ,u16* output_num)
|
{
|
*input_num = local_input_num+dante_input_num;
|
*output_num = local_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;
|
|
//¸ù¾ÝÂ߼ͨµÀºÅ»ñÈ¡ÎïÀíͨµÀºÅ
|
//Â߼ͨµÀºÅ¾ÍÊÇÊäÈëÊä³öÄ£¿éͨµÀ£¨¶Ë¿Ú£©Ë÷Òý; ÎïÀíͨµÀºÅÊÇsportÅäÖõÄbuffer.
|
virtual s32 get_physical_channel(s32 input , s32 logic_channel) = 0;
|
};
|
|
|
#endif /* HW_ADAPTER_H_ */
|