mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-02 05:43:09 +00:00
gsmopen: cleaning write-read frame
This commit is contained in:
parent
15ca630149
commit
599f7c3a45
@ -712,12 +712,12 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||||||
|
|
||||||
switch_core_timer_next(&tech_pvt->timer_read);
|
switch_core_timer_next(&tech_pvt->timer_read);
|
||||||
|
|
||||||
if (tech_pvt->no_sound == 1) {
|
if (tech_pvt->no_sound) {
|
||||||
goto cng;
|
goto cng;
|
||||||
}
|
}
|
||||||
// if ((samples = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0)
|
samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640);
|
||||||
|
|
||||||
if ((samples = tech_pvt->serialPort_serial_audio->Read(buffer2, 640)) >= 320) {
|
if (samples >= 320) {
|
||||||
tech_pvt->buffer2_full = 0;
|
tech_pvt->buffer2_full = 0;
|
||||||
|
|
||||||
if (samples >= 640) {
|
if (samples >= 640) {
|
||||||
@ -726,20 +726,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||||||
tech_pvt->buffer2_full = 1;
|
tech_pvt->buffer2_full = 1;
|
||||||
}
|
}
|
||||||
samples = 320;
|
samples = 320;
|
||||||
|
|
||||||
memcpy(tech_pvt->read_frame.data, buffer2, 320);
|
memcpy(tech_pvt->read_frame.data, buffer2, 320);
|
||||||
tech_pvt->read_frame.datalen = samples;
|
|
||||||
tech_pvt->read_frame.samples = samples / 2;
|
|
||||||
|
|
||||||
tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount;
|
|
||||||
|
|
||||||
*frame = &tech_pvt->read_frame;
|
|
||||||
|
|
||||||
//if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){
|
|
||||||
// WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2);
|
|
||||||
//}
|
|
||||||
//status = SWITCH_STATUS_SUCCESS;
|
|
||||||
switch_set_flag(tech_pvt, TFLAG_VOICE);
|
|
||||||
} else {
|
} else {
|
||||||
DEBUGA_GSMOPEN("MINGA samples=%d\n", GSMOPEN_P_LOG, samples);
|
DEBUGA_GSMOPEN("MINGA samples=%d\n", GSMOPEN_P_LOG, samples);
|
||||||
if (tech_pvt->buffer2_full) {
|
if (tech_pvt->buffer2_full) {
|
||||||
@ -747,35 +734,24 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||||||
tech_pvt->buffer2_full = 0;
|
tech_pvt->buffer2_full = 0;
|
||||||
samples = 320;
|
samples = 320;
|
||||||
DEBUGA_GSMOPEN("samples=%d FROM BUFFER\n", GSMOPEN_P_LOG, samples);
|
DEBUGA_GSMOPEN("samples=%d FROM BUFFER\n", GSMOPEN_P_LOG, samples);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
tech_pvt->read_frame.datalen = samples;
|
tech_pvt->read_frame.datalen = samples;
|
||||||
tech_pvt->read_frame.samples = samples / 2;
|
tech_pvt->read_frame.samples = samples / 2;
|
||||||
|
|
||||||
tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount;
|
tech_pvt->read_frame.timestamp = tech_pvt->timer_read.samplecount;
|
||||||
|
|
||||||
*frame = &tech_pvt->read_frame;
|
*frame = &tech_pvt->read_frame;
|
||||||
|
|
||||||
//if ((samples2 = tech_pvt->serialPort_serial_audio->Read((char *) tech_pvt->read_frame.data, 320)) >0){
|
|
||||||
// WARNINGA("samples2=%d\n", GSMOPEN_P_LOG, samples2);
|
|
||||||
//}
|
|
||||||
//status = SWITCH_STATUS_SUCCESS;
|
|
||||||
switch_set_flag(tech_pvt, TFLAG_VOICE);
|
switch_set_flag(tech_pvt, TFLAG_VOICE);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
//WARNINGA("samples=%d\n", GSMOPEN_P_LOG, samples);
|
|
||||||
if (samples != 320) {
|
if (samples != 320) {
|
||||||
DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples);
|
DEBUGA_GSMOPEN("samples=%d\n", GSMOPEN_P_LOG, samples);
|
||||||
goto cng;
|
goto cng;
|
||||||
}
|
}
|
||||||
//DEBUGA_GSMOPEN("samples=%d tech_pvt->read_frame.timestamp=%d\n", GSMOPEN_P_LOG, samples, tech_pvt->read_frame.timestamp);
|
|
||||||
|
|
||||||
//usleep(17000);
|
|
||||||
//usleep(17000);
|
|
||||||
|
|
||||||
memset(digit_str, 0, sizeof(digit_str));
|
memset(digit_str, 0, sizeof(digit_str));
|
||||||
//teletone_dtmf_detect(&tech_pvt->dtmf_detect, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
|
|
||||||
//teletone_dtmf_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str));
|
|
||||||
dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
|
dtmf_rx(&tech_pvt->dtmf_state, (int16_t *) tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
|
||||||
dtmf_rx_get(&tech_pvt->dtmf_state, digit_str, sizeof(digit_str));
|
dtmf_rx_get(&tech_pvt->dtmf_state, digit_str, sizeof(digit_str));
|
||||||
|
|
||||||
@ -875,17 +851,14 @@ static switch_status_t channel_write_frame(switch_core_session_t *session, switc
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//switch_core_timer_next(&tech_pvt->timer_write);
|
//switch_core_timer_next(&tech_pvt->timer_write);
|
||||||
//sent = frame->datalen;
|
|
||||||
|
|
||||||
//ERRORA("PLAY \n", GSMOPEN_P_LOG);
|
|
||||||
|
|
||||||
gsmopen_sound_boost(frame->data, frame->samples, tech_pvt->playback_boost);
|
gsmopen_sound_boost(frame->data, frame->samples, tech_pvt->playback_boost);
|
||||||
|
if(!tech_pvt->no_sound){
|
||||||
sent = tech_pvt->serialPort_serial_audio->Write((char *) frame->data, (int) (frame->datalen));
|
sent = tech_pvt->serialPort_serial_audio->Write((char *) frame->data, (int) (frame->datalen));
|
||||||
|
|
||||||
if (sent && sent != frame->datalen && sent != -1) {
|
if (sent && sent != frame->datalen && sent != -1) {
|
||||||
DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent);
|
DEBUGA_GSMOPEN("sent %d\n", GSMOPEN_P_LOG, sent);
|
||||||
}
|
}
|
||||||
//NOTICA("sent=%d\n", GSMOPEN_P_LOG, sent);
|
}
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user