| | |
| | | ModuleProcessLibInit(); |
| | | |
| | | if (modules.empty()) { |
| | | <<<<<<< HEAD |
| | | modules.push_back(ModuleEntry("Input", ModuleType::PROC_INPUT, SignalSourceCreate, ufalse)); //SignalSource |
| | | ======= |
| | | modules.push_back(ModuleEntry("SignalSource", ModuleType::PROC_INPUT, SignalSourceCreate, ufalse)); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | // modules.push_back(ModuleEntry("Input",ModuleType::PROC_INPUT, InputCreate, ufalse)); |
| | | modules.push_back(ModuleEntry("Output",ModuleType::PROC_OUTPUT, OutputCreate, ufalse)); |
| | | |
| | |
| | | PROC_SHELF, // 高低架 |
| | | PROC_SELECTOR, //混音器 |
| | | PROC_GATING_AUTOMIXER, //门限自动混音 20 |
| | | <<<<<<< HEAD |
| | | PROC_CONTINUNOUS_SPL, //连续型SPL(噪声增益补偿) |
| | | ======= |
| | | PROC_CONTINUNOUS_SPL, //连续型SPL |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | PROC_GATING, //噪声门 |
| | | PROC_DUCKER, //闪避器 |
| | | PROC_REVERB, //混响 |
| | |
| | | this->dante_output_num = dante_output_num; |
| | | this->usb_input_num = 2; |
| | | this->usb_output_num = 2; |
| | | <<<<<<< HEAD |
| | | this->ana_input_num = local_input_num - usb_input_num; |
| | | this->ana_output_num = local_output_num - usb_output_num; |
| | | ======= |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | 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) |
| | | { |
| | |
| | | //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; |
| | | }; |
| | |
| | | tob->toProc(); |
| | | |
| | | UpdateOutput(iid, DMACount[iid]&0x1); |
| | | <<<<<<< HEAD |
| | | // LP_transmit(); |
| | | ModulesAsynSetInterval(proc_secs); |
| | | fir_acc_startup(); |
| | | ======= |
| | | //LP_transmit(); |
| | | // ModulesAsynSetInterval(proc_secs); |
| | | // fir_acc_startup(); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | clock_stop = clock(); |
| | | proc_secs = ((ufloat) (clock_stop - clock_start))/ CLOCKS_PER_SEC; |
| | | } |
| | |
| | | UpdateOutput(iid, DMACount[iid]&0x1); |
| | | } |
| | | |
| | | <<<<<<< HEAD |
| | | ++DMACount[iid]; |
| | | ======= |
| | | DMACount[iid]++; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | int main(int argc, char *argv[]) |
| | |
| | | GPIO_SetOutPut(GPIOA, GPIO_Pin12, GPIO_HIGH); |
| | | GPIO_SetOutPut(GPIOB, GPIO_Pin5, GPIO_HIGH); |
| | | |
| | | <<<<<<< HEAD |
| | | //第一次启动上报特别是仿真的时候需要arm'重新发握手. |
| | | spiMsg->DspStatusPush(DSP_EMULATE_DEBUG, 0, 0); |
| | | spiMsg->ReportDspStatus(&msg); |
| | | |
| | | printf("free sram %d, L2 %d\n", sram_free_space(SRAM_DDR, mem_any), sram_free_space(SRAM_L2, mem_any)); |
| | | ======= |
| | | // u32 ddrspace = sram_free_space(SRAM_DDR, mem_any); |
| | | // printf("ddrspace:%d\n", ddrspace); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | while(1) { |
| | | asyn_proc_secs = ModulesAsynProcess(); |
| | |
| | | if(++loop_cnt > 5e+6){ |
| | | if (var.clock_ok && clock_check_count == DMACount[var.master_intr]) { |
| | | var.dsp_status = dsp_no_clock; |
| | | <<<<<<< HEAD |
| | | spiMsg->DspStatusPush(DSP_RUNNING_STATUS, &var.dsp_status ,1); |
| | | ======= |
| | | spiMsg->DspStatusPush(DSP_CLOCK_STATUS, &var.dsp_status ,1); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | spiMsg->ReportDspStatus(&msg); |
| | | printf("clk0 ok\n"); |
| | | } |
| | |
| | | spiMsg->DspStatusPush(DSP_CLOCK_STATUS, &var.dsp_status, 1); |
| | | request_topo_count = DMACount[var.master_intr] ; |
| | | var.clock_ok = utrue; |
| | | <<<<<<< HEAD |
| | | spiMsg->ReportDspStatus(&msg); |
| | | printf("clk2 ok\n"); |
| | | ======= |
| | | // printf("clk2 ok\n"); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | |
| | |
| | | int data_len; |
| | | |
| | | ToB* tob = ToB::GetInstance(); |
| | | <<<<<<< HEAD |
| | | u16 LevelCnt = tob->GetLevels(Levels); //918 levels |
| | | ======= |
| | | u16 LevelCnt = tob->GetLevels(Levels); //864 levels |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | u32 msgLen = LevelCnt * sizeof(*Levels); |
| | | int Packegs = (msgLen+MSG_DATA_LEN-1)/MSG_DATA_LEN; |
| | | |
| | |
| | | |
| | | data_num = (data_num - sizeof(struct ParamCtrl))/sizeof(s16); |
| | | // ptr->mid = var.pscene->get_module_id(ptr->mid, type, ptr->cmd) ; |
| | | <<<<<<< HEAD |
| | | // printf("mID:%d pID:%d val[0]:%d val[1]:%d\n",ptr->mid, ptr->cmd, data[0], data[1]); |
| | | ======= |
| | | |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | tob->toCtrl(ptr->mid, ptr->cmd, data, data_num); |
| | | } |
| | | |
| | |
| | | var.TopoStatus = PRESET_STA::PRESET_ERR; |
| | | } |
| | | else if(tob){ |
| | | <<<<<<< HEAD |
| | | int preset_size = sizeof(tag_parameters); // 45128 + sizeof(tag_fir) * MAX_OUTPUT_NUM; // size + FIR |
| | | u8* content = (u8*)sram_malloc(SRAM_DDR, mem_any, preset_size); |
| | | ======= |
| | | u8* content = (u8*)sram_malloc(SRAM_DDR, mem_any, 45128);//45*1024); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | s32 size ; |
| | | |
| | | tob->toClear(); |
| | | |
| | | var.pscene->update_module(); |
| | | size = var.pscene->convert_to_bin(content); |
| | | <<<<<<< HEAD |
| | | ======= |
| | | |
| | | tob->toClear(); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | tob->toAnalysis(content, size); |
| | | |
| | | sram_free(SRAM_DDR, content); |
| | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | /*void Message::param_init(ptag_device_config pDevCfg) |
| | | { |
| | | pDevCfg->dual_dsp = 0; |
| | | pDevCfg->dsp_index = 0; |
| | | pDevCfg->local_rx_num = 16; |
| | | pDevCfg->local_tx_num = 16; |
| | | pDevCfg->dante_rx_num = 16; |
| | | pDevCfg->dante_tx_num = 16; |
| | | pDevCfg->external_clock = 1; |
| | | pDevCfg->scene_size = 1000; |
| | | pDevCfg->level_num = 10; |
| | | pDevCfg->modulelist = 9; |
| | | pDevCfg->hardware_type = 1; |
| | | |
| | | }*/ |
| | | |
| | | s32 Message::HandshakeMessageProcess(MSG* pmsg) |
| | | { |
| | |
| | | } |
| | | |
| | | // param_init(device_config); |
| | | <<<<<<< HEAD |
| | | hw_adapter_t* _adapter = new tg_hw_adapter_t(device_config->dual_dsp, device_config->dsp_index |
| | | ,device_config->local_rx_num, device_config->local_tx_num |
| | | ,device_config->dante_rx_num, device_config->dante_tx_num); |
| | | ======= |
| | | hw_adapter_t* _adapter = new tg_hw_adapter_t(device_config->dual_dsp,device_config->dsp_index |
| | | ,device_config->local_rx_num,device_config->local_tx_num |
| | | ,device_config->dante_rx_num,device_config->dante_tx_num); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | var.pscene = new(SRAM_DDR) tgScene(_adapter); |
| | | |
| | | _adapter->config_board(&dspconfig); |
| | |
| | | Message(u32 num) |
| | | { |
| | | txQueue = new Queue<MSG>(num); |
| | | <<<<<<< HEAD |
| | | Levels = new s16[1000]; |
| | | ======= |
| | | Levels = new s16[868]; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | ~Message() |
| | | { |
| | |
| | | for(j = 0 ; j< ninports ;j ++, phy_id++) { |
| | | phy_id->mIntType = 0; |
| | | phy_id->mPhyID = hw_adapter->get_physical_channel(1, rxBufID[j]-1); |
| | | <<<<<<< HEAD |
| | | // printf("PhyID:%d\n", phy_id->mPhyID); |
| | | ======= |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | size += ninports*sizeof(PhyPort); |
| | | } |
| | |
| | | #include "tg_config.h" |
| | | #include "tg_adapter.h" |
| | | |
| | | //参数logic_channel逻辑通道从0开始. |
| | | s32 tg_hw_adapter_t::get_physical_channel(s32 input , s32 logic_channel) |
| | | { |
| | | <<<<<<< HEAD |
| | | if(input) { |
| | | s32 input_num = ana_input_num + dante_input_num ; |
| | | if(logic_channel < ana_input_num) { |
| | |
| | | return (logic_channel > output_num) ? 17 : 18; |
| | | } |
| | | } |
| | | ======= |
| | | //s32 phy_channel[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19}; |
| | | if(input) { |
| | | s32 input_num = ana_input_num + dante_input_num ; |
| | | // s32 local_ch = ana_input_num + usb_input_num; // C H G 18 |
| | | if(logic_channel < ana_input_num) { |
| | | //analog |
| | | return logic_channel+1; |
| | | } |
| | | else if(logic_channel < input_num) { |
| | | //dante |
| | | return 19 + (logic_channel - ana_input_num); |
| | | } |
| | | else { |
| | | //usb |
| | | return 17 + (logic_channel - input_num); |
| | | } |
| | | } |
| | | else { //output |
| | | s32 output_num = ana_output_num + dante_output_num ; |
| | | // s32 local_ch = ana_output_num + usb_output_num; // C H G 18 |
| | | //analog |
| | | if(logic_channel < ana_output_num) { |
| | | return logic_channel; |
| | | } |
| | | else if(logic_channel < output_num) { |
| | | //dante |
| | | return 19 + (logic_channel - ana_output_num); |
| | | } |
| | | else { |
| | | //usb |
| | | return 17 + (logic_channel - output_num); |
| | | } |
| | | } |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | //物理buffer定义顺序是16通道模拟+2通道USB+32通道Dante. |
| | |
| | | conf->sports[i].clke = utrue; |
| | | conf->sports[i].enable = utrue; |
| | | conf->sports[i].enable_sec = ufalse; |
| | | <<<<<<< HEAD |
| | | conf->sports[i].lfs = ufalse; // The USB left and right channels can be swapped. |
| | | conf->sports[i].mfd = 0; |
| | | ======= |
| | | conf->sports[i].lfs = ufalse; |
| | | conf->sports[i].mfd = 1; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | conf->sports[i].opmode = 1 ; //i2s |
| | | conf->sports[i].rx = ufalse; |
| | | conf->sports[i].slots = 2; |
| | |
| | | conf->sports[4].rx = utrue; |
| | | |
| | | //USB pcg. |
| | | <<<<<<< HEAD |
| | | conf->pcgs[1].enable = utrue; |
| | | conf->pcgs[1].opmode = 0; |
| | | conf->pcgs[1].fs_div = mclk / conf->mSampleRate ; |
| | |
| | | AddRoute(SourceSignal::PCG_FSB_O, DestSignal::SPT2_BFS_I); |
| | | AddRoute(SourceSignal::PCG_CLKB_O, DestSignal::SPT2_ACLK_I); |
| | | AddRoute(SourceSignal::PCG_CLKB_O, DestSignal::SPT2_BCLK_I); |
| | | ======= |
| | | // conf->pcgs[1].enable = utrue; |
| | | // conf->pcgs[1].opmode = 0; |
| | | // conf->pcgs[1].fs_div = mclk / conf->mSampleRate ; |
| | | // conf->pcgs[1].sclk_div = mclk / (conf->mSampleRate * 2 * 32); |
| | | // AddRoute(SourceSignal::DAI0_PB02_O, DestSignal::PCG_EXTB_I); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | // AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN09_I);//fs |
| | | // AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN08_I);//sclk |
| | |
| | | conf->sports[i].mfd = 1; |
| | | conf->sports[i].opmode = 0 ; //tdm |
| | | conf->sports[i].rx = ufalse; |
| | | <<<<<<< HEAD |
| | | conf->sports[i].slots = 8; |
| | | conf->sports[i].vld = 8; |
| | | ======= |
| | | conf->sports[i].slots = 16; |
| | | conf->sports[i].vld = 16; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | conf->sports[i].follow_intr_no = intr_sport_no(8); |
| | | } |
| | | conf->sports[8].interrupt = utrue; |
| | |
| | | #include "config.h" |
| | | |
| | | //项目定制化宏定义. |
| | | <<<<<<< HEAD |
| | | #define MAX_INPUT_NUM 34 // ana:16, dante:16, usb:2 |
| | | ======= |
| | | #define MAX_INPUT_NUM 34 |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | #define MAX_OUTPUT_NUM 34 |
| | | |
| | | #define FEEDBACK_FILTERS_NUM 16 //NHS滤波器组数目 |
| | |
| | | tgScene::tgScene(hw_adapter_t* adapter):Scene(adapter) |
| | | { |
| | | s8 inport_str[16],outport_str[16]; |
| | | <<<<<<< HEAD |
| | | s8 ana_input_num, ana_output_num, loc_input_num, loc_output_num, dante_input_num, dante_output_num ; |
| | | s8 usb_input_num, usb_output_num; |
| | | s16 input_num, output_num ; |
| | | s32 n, new_idx = 300; //ID of the USB channel starts from 300. |
| | | ======= |
| | | s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num ; |
| | | s8 usb_input_num = 2, usb_output_num = 2; |
| | | s16 input_num, output_num ; |
| | | s32 n, new_idx = 300; //usb 新增模块ID从300开始(与arm/pc协商一致),使用new_idx递增. |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | s16 dual_dsp = adapter->get_system_is_dual_dsp(); |
| | | s16 dsp_index = adapter->get_dsp_index(); |
| | | |
| | | <<<<<<< HEAD |
| | | adapter->get_channel_num(&loc_input_num, &loc_output_num, &dante_input_num, &dante_output_num, &usb_input_num, &usb_output_num); |
| | | ana_input_num = loc_input_num - usb_input_num; |
| | | ana_output_num = loc_output_num - usb_output_num; |
| | | |
| | | //物理输入共16+16+2 |
| | | ======= |
| | | adapter->get_channel_num(&ana_input_num, &ana_output_num, &dante_input_num, &dante_output_num); |
| | | |
| | | //新增加的2x2 usb是带处理的和输入,输出平级 |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | input_num = ana_input_num + dante_input_num + usb_input_num; //2 USB |
| | | output_num = ana_output_num + dante_output_num + usb_output_num; |
| | | |
| | | tgScene_param_default(¶meters); |
| | | |
| | | <<<<<<< HEAD |
| | | ======= |
| | | |
| | | //只有physic_type 为PHY_INPUT和PHY_OUTPUT的 才会调用XX_adapter.cpp下的get_physical_channel函数. |
| | | //所以这2两个模块类型 port_str 对应的是逻辑通道应该覆盖到所有物理通道包括模拟、dante、usb. |
| | | //逻辑通道也就是PC软件看到的通道顺序(ana+dante+usbL+usbR+am+aec+ans). |
| | | //物理通道是DMA配置的顺序,get_physical_channel就是做逻辑通道到物理通道的映射. |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | sprintf(inport_str, "1-%d", input_num); |
| | | __MADD(299,PROC_INPUT,inport_str,inport_str,0, 1 ,¶meters.input, 0, ModuleInterfaceType::PHY_INPUT); |
| | | |
| | |
| | | //am |
| | | sprintf(inport_str, "1-%d", input_num); |
| | | sprintf(outport_str, "1-%d", input_num+1); |
| | | <<<<<<< HEAD |
| | | __MADD(161,PROC_AUTOMIXER,inport_str, outport_str, 0, 0, ¶meters.automixer, 0, ModuleInterfaceType::SOFT_MODULE); //¿ÉÌæ»» |
| | | ======= |
| | | __MADD(161,PROC_AUTOMIXER,inport_str, outport_str, 0, 0, ¶meters.automixer, 0, ModuleInterfaceType::SOFT_MODULE); //可替换 |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | //aec selector |
| | | sprintf(inport_str, "1-%d", input_num+ 1); |
| | |
| | | //mixer |
| | | sprintf(inport_str, "1-%d", input_num+ 3); |
| | | sprintf(outport_str, "%d-%d",input_num+4, input_num+output_num+4); |
| | | <<<<<<< HEAD |
| | | __MADD(166,PROC_MIXER,inport_str,outport_str,1, 1 ,¶meters.mixer, 0, ModuleInterfaceType::SOFT_MODULE); // .begin()+48 |
| | | ======= |
| | | __MADD(166,PROC_MIXER,inport_str,outport_str,1, 1 ,¶meters.mixer, 0, ModuleInterfaceType::SOFT_MODULE); // .begin()+48 |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | //crossover |
| | | for(s32 i =0 ;i < output_num ; i++) { |
| | |
| | | |
| | | //eq |
| | | for(s32 i =0 ;i < output_num ; i++) { |
| | | <<<<<<< HEAD |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(199+i,PROC_EQ,outport_str, outport_str,1, 0, ¶meters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx++,PROC_EQ,outport_str, outport_str,1, 0, ¶meters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE); |
| | | ======= |
| | | sprintf(inport_str, "%d|", i+input_num+4); |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(199+i,PROC_EQ,inport_str, outport_str,1, 0, ¶meters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx++,PROC_EQ,inport_str, outport_str,1, 0, ¶meters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | //delay |
| | | for(s32 i =0 ;i < output_num ; i++) { |
| | | <<<<<<< HEAD |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(231+i,PROC_DELAY,outport_str, outport_str,1, 0, ¶meters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx++,PROC_DELAY,outport_str, outport_str,1, 0, ¶meters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE); |
| | | ======= |
| | | sprintf(inport_str, "%d|", i+input_num+4); |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(231+i,PROC_DELAY,inport_str, outport_str,1, 0, ¶meters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx++,PROC_DELAY,inport_str, outport_str,1, 0, ¶meters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | //limit |
| | | for(s32 i =0 ;i < output_num ; i++) { |
| | | <<<<<<< HEAD |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(263+i,PROC_LIMIT,outport_str, outport_str,1, 0, ¶meters.out4[i],0, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx++,PROC_LIMIT,outport_str, outport_str,1, 0, ¶meters.out4[i],0, ModuleInterfaceType::SOFT_MODULE); |
| | | ======= |
| | | sprintf(inport_str, "%d|", i+input_num+4); |
| | | sprintf(outport_str, "%d|", i+1); |
| | | if(i < output_num - usb_output_num) |
| | | __MADD(263+i,PROC_LIMIT,inport_str, outport_str,1, 0, ¶meters.out4[i],0, ModuleInterfaceType::SOFT_MODULE); |
| | | else |
| | | __MADD(new_idx,PROC_LIMIT,inport_str, outport_str,1, 0, ¶meters.out4[i],0, ModuleInterfaceType::SOFT_MODULE); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | |
| | | //output |
| | |
| | | break; |
| | | |
| | | case PROC_FIR: |
| | | <<<<<<< HEAD |
| | | ptag_fir pfir = (ptag_fir)param_ptr; |
| | | pfir->bypass = allbypass; |
| | | pfir->taps = 1024; |
| | | memset((void*)pfir->coeffs, 0, sizeof(pfir->coeffs)); |
| | | pfir->coeffs[0] = 1; |
| | | ======= |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | break; |
| | | |
| | | default: |
| | |
| | | s32 tgScene::set_parameters_content(uvoid* param, s32 size) |
| | | { |
| | | tag_parameters* pp = (tag_parameters*)param; |
| | | <<<<<<< HEAD |
| | | int L[24] = {0}; |
| | | if(pp->magic != 0xbcba || size != sizeof(tag_parameters)) { |
| | | printf("preset param error!\n"); |
| | |
| | | printf("tag_group:%d, %d\n", sizeof(tag_group), L[18]=sizeof(tag_group)+L[17]);*/ |
| | | |
| | | printf("Len parameters:%d, Len recv:%d\n", L[19]=sizeof(tag_parameters), size); |
| | | ======= |
| | | if(pp->magic != 0xbcba || size != sizeof(tag_parameters)) { |
| | | printf("preset param error!\n"); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | return -1; |
| | | } |
| | | memcpy(¶meters, param, sizeof(tag_parameters)); |
| | |
| | | |
| | | s32 tgScene::update_module() |
| | | { |
| | | <<<<<<< HEAD |
| | | s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num, usb_input_num, usb_output_num ; |
| | | ======= |
| | | s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num ; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | s16 input_num, output_num ; |
| | | s16 dual_dsp = hw_adapter->get_system_is_dual_dsp(); |
| | | s16 dsp_index = hw_adapter->get_dsp_index(); |
| | |
| | | #include "../protocol.h" |
| | | #include "module_def.h" |
| | | |
| | | <<<<<<< HEAD |
| | | #pragma pack (1) |
| | | ======= |
| | | |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | typedef struct { |
| | | unsigned short magic; |
| | | unsigned short nmds; |
| | |
| | | |
| | | tag_input input; //1362 |
| | | |
| | | <<<<<<< HEAD |
| | | tag_module in1[MAX_INPUT_NUM]; //4352 |
| | | ======= |
| | | tag_input input;//1282 |
| | | |
| | | tag_module in1[MAX_INPUT_NUM]; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | tag_module in2[MAX_INPUT_NUM]; |
| | | tag_module in3[MAX_INPUT_NUM]; |
| | | tag_module in4[MAX_INPUT_NUM]; |
| | |
| | | ToB::~ToB() |
| | | { |
| | | toClear(); |
| | | <<<<<<< HEAD |
| | | // tob = NULL; |
| | | ======= |
| | | tob = NULL; |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | delete paramset; |
| | | } |
| | | |
| | |
| | | |
| | | return ErrStatus::SUCCESS; |
| | | } |
| | | <<<<<<< HEAD |
| | | #define DEBUG 0 |
| | | ======= |
| | | |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | #if 1//DEBUG |
| | | const s8* type_string[ModuleType::PROC_COUNT] = { |
| | | "none" |
| | |
| | | |
| | | if (pmod->mDsp != dsp_index) continue; |
| | | |
| | | <<<<<<< HEAD |
| | | #if DEBUG |
| | | //if (PROC_FIR == pmod->mType) |
| | | printf("Module ID %d type %d %s rxnum %d txnum %d tag %d. \n",pmod->mID ,pmod->mType, type_string[pmod->mType], pmod->mRxNum,pmod->mTxNum,pmod->mTag); |
| | | ======= |
| | | #ifdef DEBUG |
| | | printf("Module ID %d type %d %s rxnum %d txnum %d tag %d. \n",pmod->mID ,pmod->mType, type_string[pmod->mType], pmod->mRxNum,pmod->mTxNum,pmod->mTag); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | #endif |
| | | |
| | | IModule* m = CreateBaseModule(pmod->mType, pmod->mTag, mRxNum, mTxNum); |
| | |
| | | continue; |
| | | } |
| | | |
| | | <<<<<<< HEAD |
| | | ======= |
| | | // int ddr = sram_free_space(SRAM_DDR,mem_any); |
| | | // int ccm = sram_free_space(SRAM_L2,mem_any); |
| | | // int l1 = sram_free_space(SRAM_L1,mem_heap); |
| | | // printf("ddr %d ccm %d l1 %d.\n",ddr, ccm ,l1); |
| | | |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | m->SetModuleInfo(pmod->mID ,pmod->mType, pmod->mTag); |
| | | mList.push_back(m); |
| | | |
| | |
| | | |
| | | // printf("Module id:%d, Tx buffer id:", pmod->mID); |
| | | for (size_t i = 0; i < mTxNum && !bOutput; i++){ |
| | | <<<<<<< HEAD |
| | | // printf("bid %d, ", mTxbufID[i]); |
| | | ======= |
| | | printf("bid %d, ", mTxbufID[i]); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | if (mTxbufID[i] > 0) { |
| | | Frame* pcm = frames->GetFrame(mTxbufID[i]-1); |
| | | m->SetOutputChannelDataPtr(i, pcm); |
| | |
| | | nPhyInput[mPhyID[i].mIntType] = mPhyID[i].mPhyID; |
| | | m->SetInputChannelDataPtr(i, pcm); |
| | | SetRxChannelPtr(static_cast<IntDataType>(mPhyID[i].mIntType), mPhyID[i].mPhyID-1, pcm->Data()); |
| | | <<<<<<< HEAD |
| | | // printf("phy_id %d\n", mPhyID[i].mPhyID); |
| | | ======= |
| | | printf("phy_id %d\n", mPhyID[i].mPhyID); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | } |
| | | else { |
| | |
| | | } |
| | | // printf(";Rx buffer id:"); |
| | | for (size_t i = 0; i < mRxNum && !bInput; i++) { |
| | | <<<<<<< HEAD |
| | | // printf("mID %d,bid %d\n", pmod->mID, mRxbufID[i]); |
| | | ======= |
| | | // printf("bid %d", mRxbufID[i]); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | if (mRxbufID[i] > 0) { |
| | | Frame* pcm = frames->GetFrame(mRxbufID[i]-1 ); |
| | | m->SetInputChannelDataPtr(i, pcm); |
| | |
| | | //pcm = frames->AllocFrame(); // It is not necessary to be compatible with the AXE1208 series here, because the TOP architecture is different. |
| | | m->SetOutputChannelDataPtr(i, pcm); |
| | | SetTxChannelPtr(static_cast<IntDataType>(mPhyID[i].mIntType), mPhyID[i].mPhyID-1, pcm->Data()); |
| | | <<<<<<< HEAD |
| | | // printf("mID %d,bid %d\n", pmod->mID, mPhyID[i].mPhyID-1); |
| | | // printf("phy_type %d, _id %d\n", mPhyID[i].mIntType, mPhyID[i].mPhyID); |
| | | ======= |
| | | // printf("phy_id %d", mPhyID[i].mPhyID); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | } |
| | | else { |
| | |
| | | // printf("\n"); |
| | | |
| | | m->Init(); |
| | | <<<<<<< HEAD |
| | | |
| | | // 从 paramset 中获取对应的参数控制函数指针 |
| | | ParamCtrl_fn paramEntry = paramset->GetParamEntry( m->GetModuleType()); |
| | |
| | | } |
| | | // 调用参数控制函数 |
| | | u32 result = paramEntry(m, (uvoid*)pmod->mParamaddr, len); |
| | | ======= |
| | | // paramset->GetParamEntry(m->GetModuleType())(m, (uvoid*)pmod->mParamaddr, len); |
| | | // 获取模块类型 |
| | | u32 moduleType = m->GetModuleType(); |
| | | // 从 paramset 中获取对应的参数控制函数指针 |
| | | ParamCtrl_fn paramEntry = paramset->GetParamEntry(moduleType); |
| | | // 获取模块参数地址 |
| | | void* paramAddr = (uvoid*)pmod->mParamaddr; |
| | | // 调用参数控制函数 |
| | | u32 result = paramEntry(m, paramAddr, len); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | |
| | | } while (size < nbytes); |
| | | |
| | |
| | | { |
| | | if(processed) { |
| | | for (auto iter = mList.begin(); iter < mList.end(); iter++) { |
| | | <<<<<<< HEAD |
| | | // if(((*iter)->GetModuleType() >= 6) && ((*iter)->GetModuleType() <= 6)) { |
| | | ======= |
| | | // if(((*iter)->GetModuleType() >= 9) && ((*iter)->GetModuleType() <= 9)) { |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | // printf("%d ", (*iter)->GetModuleID()); |
| | | (*iter)->Proc(); |
| | | // } |
| | |
| | | |
| | | IModule* m = mList[mModuleIndex[mID]-1]; |
| | | if( m != NULL) { |
| | | <<<<<<< HEAD |
| | | // m->Ctrl(pID, val, num); |
| | | paramset->GetCtrlEntry(m->GetModuleType())(m, pID, (s16*)val, num); |
| | | ======= |
| | | //m->Ctrl(pID, val, num); |
| | | paramset->GetCtrlEntry(m->GetModuleType())(m, pID, (s16*)val); |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | } |
| | | // printf("mID:%d pID:%d val[0]:%d val[1]:%d\n",mID, pID, val[0], val[1]); |
| | | return ErrStatus::SUCCESS; |
| | |
| | | /* |
| | | <<<<<<< HEAD |
| | | ** ADSP-21569 linker description file generated on Sep 05, 2025 at 15:48:19. |
| | | ======= |
| | | ** ADSP-21569 linker description file generated on Jul 24, 2025 at 14:17:30. |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | */ |
| | | /* |
| | | ** Copyright (C) 2000-2023 Analog Devices Inc., All Rights Reserved. |
| | |
| | | /* |
| | | <<<<<<< HEAD |
| | | ** ADSP-21569 app_IVT.s generated on Sep 05, 2025 at 15:48:19 |
| | | ======= |
| | | ** ADSP-21569 app_IVT.s generated on Jul 24, 2025 at 14:17:29 |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | */ |
| | | /* |
| | | ** Copyright (C) 2000-2023 Analog Devices Inc., All Rights Reserved. |
| | |
| | | /* |
| | | <<<<<<< HEAD |
| | | ** ADSP-21569 user heap source file generated on Sep 05, 2025 at 15:48:19. |
| | | ======= |
| | | ** ADSP-21569 user heap source file generated on Jul 24, 2025 at 14:17:30. |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | */ |
| | | /* |
| | | ** Copyright (C) 2000-2023 Analog Devices Inc., All Rights Reserved. |
| | |
| | | /* |
| | | <<<<<<< HEAD |
| | | ** ADSP-21569 startup code generated on Sep 05, 2025 at 15:48:19. |
| | | ======= |
| | | ** ADSP-21569 startup code generated on Jul 24, 2025 at 14:17:29. |
| | | >>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 |
| | | */ |
| | | /* |
| | | ** Copyright (C) 2000-2023 Analog Devices Inc., All Rights Reserved. |