mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
* mISDN >= 1.2 provides a dsp pipeline for i.e. echo cancellation modules, make chan_misdn use it.
* add a check for linux/mISDNdsp.h to configure.ac and update the autogenerated files: 'configure', 'autoconfig.h.in' (the 'configure' script was not in sync with the latest configure.ac, so the diff is a bit bigger than expected). git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@59202 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -590,14 +590,13 @@ static void empty_bc(struct misdn_bchannel *bc)
|
||||
|
||||
bc->early_bconnect = 1;
|
||||
|
||||
#ifdef MISDN_1_2
|
||||
*bc->pipeline = 0;
|
||||
#else
|
||||
bc->ec_enable = 0;
|
||||
bc->ec_deftaps = 128;
|
||||
bc->ec_whenbridged = 0;
|
||||
|
||||
#ifdef EC_TRAIN
|
||||
bc->ec_training = 1;
|
||||
#endif
|
||||
|
||||
|
||||
bc->orig=0;
|
||||
|
||||
bc->cause=16;
|
||||
@@ -4101,7 +4100,11 @@ void isdn_lib_update_txgain (struct misdn_bchannel *bc)
|
||||
|
||||
void isdn_lib_update_ec (struct misdn_bchannel *bc)
|
||||
{
|
||||
#ifdef MISDN_1_2
|
||||
if (*bc->pipeline)
|
||||
#else
|
||||
if (bc->ec_enable)
|
||||
#endif
|
||||
manager_ec_enable(bc);
|
||||
else
|
||||
manager_ec_disable(bc);
|
||||
@@ -4280,19 +4283,24 @@ void misdn_lib_send_tone(struct misdn_bchannel *bc, enum tone_e tone)
|
||||
|
||||
void manager_ec_enable(struct misdn_bchannel *bc)
|
||||
{
|
||||
int ec_arr[2];
|
||||
|
||||
struct misdn_stack *stack=get_stack_by_bc(bc);
|
||||
|
||||
cb_log(4, stack?stack->port:0,"ec_enable\n");
|
||||
|
||||
if (!misdn_cap_is_speech(bc->capability)) {
|
||||
cb_log(1, stack?stack->port:0, " --> no speech? cannot enable EC\n");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
|
||||
#ifdef MISDN_1_2
|
||||
if (*bc->pipeline) {
|
||||
cb_log(3, stack?stack->port:0,"Sending Control PIPELINE_CFG %s\n",bc->pipeline);
|
||||
manager_ph_control_block(bc, PIPELINE_CFG, bc->pipeline, strlen(bc->pipeline) + 1);
|
||||
}
|
||||
#else
|
||||
int ec_arr[2];
|
||||
|
||||
if (bc->ec_enable) {
|
||||
cb_log(3, stack?stack->port:0,"Sending Control ECHOCAN_ON taps:%d training:%d\n",bc->ec_deftaps, bc->ec_training);
|
||||
cb_log(3, stack?stack->port:0,"Sending Control ECHOCAN_ON taps:%d\n",bc->ec_deftaps);
|
||||
|
||||
switch (bc->ec_deftaps) {
|
||||
case 4:
|
||||
@@ -4312,14 +4320,12 @@ void manager_ec_enable(struct misdn_bchannel *bc)
|
||||
}
|
||||
|
||||
ec_arr[0]=bc->ec_deftaps;
|
||||
#ifdef EC_TRAIN
|
||||
ec_arr[1]=bc->ec_training;
|
||||
#else
|
||||
ec_arr[1]=0;
|
||||
#endif
|
||||
|
||||
manager_ph_control_block(bc, ECHOCAN_ON, ec_arr, sizeof(ec_arr));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4335,10 +4341,14 @@ void manager_ec_disable(struct misdn_bchannel *bc)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef MISDN_1_2
|
||||
manager_ph_control_block(bc, PIPELINE_CFG, "", 0);
|
||||
#else
|
||||
if ( ! bc->ec_enable) {
|
||||
cb_log(3, stack?stack->port:0, "Sending Control ECHOCAN_OFF\n");
|
||||
manager_ph_control(bc, ECHOCAN_OFF, 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
struct misdn_stack* get_misdn_stack() {
|
||||
|
Reference in New Issue
Block a user