s32 valuetemp;
s32* value_ptr_s32;
s16* value_ptr_s16;
if(i == 0){ // 混响通路,单声道处理
while (remain_points–) {
valuetemp = 0;
value_ptr_s32 = rptr;
value_ptr_s16 = rptr;
if(point_size == 4){
for(u8 j = 0;j < adc_mode_hdl->ch[i].ch_num;j++){ //所有通带数据累加
valuetemp += *(value_ptr_s32+j);
}
if (valuetemp < PCM_24BIT_SAT_MIN) { //限幅后输出
valuetemp = PCM_24BIT_SAT_MIN;
} else if (valuetemp > PCM_24BIT_SAT_MAX) {
valuetemp = PCM_24BIT_SAT_MAX;
}
}else{
u8 j = 0;
for(j = 0;j < adc_mode_hdl->ch[i].ch_num;j++){ //所有通带数据累加
valuetemp += *(value_ptr_s16+j);
}
if (valuetemp < -32768) { //限幅后输出
valuetemp = -32768;
} else if (valuetemp > 32767) {
valuetemp = 32767;
}
}
memcpy(wptr, &valuetemp, point_size); rptr += adc_mode_hdl->total_ch_num * (point_size / 2); wptr += (point_size / 2); }}else{
while (remain_points–) {
memcpy(wptr, rptr, adc_mode_hdl->ch[i].ch_num * point_size);
rptr += adc_mode_hdl->total_ch_num * (point_size / 2);
wptr += adc_mode_hdl->ch[i].ch_num * (point_size / 2);
}
}