diff --git a/src/amps/amps.c b/src/amps/amps.c index 4206adb..39435b5 100644 --- a/src/amps/amps.c +++ b/src/amps/amps.c @@ -1076,6 +1076,8 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + /* Timeout handling */ void transaction_timeout(struct timer *timer) { diff --git a/src/anetz/anetz.c b/src/anetz/anetz.c index d447377..0aac909 100644 --- a/src/anetz/anetz.c +++ b/src/anetz/anetz.c @@ -540,5 +540,7 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + void dump_info(void) {} diff --git a/src/bnetz/bnetz.c b/src/bnetz/bnetz.c index 4c597bb..86229ea 100644 --- a/src/bnetz/bnetz.c +++ b/src/bnetz/bnetz.c @@ -862,5 +862,7 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + void dump_info(void) {} diff --git a/src/cnetz/cnetz.c b/src/cnetz/cnetz.c index 0fc2f0a..c9b958e 100644 --- a/src/cnetz/cnetz.c +++ b/src/cnetz/cnetz.c @@ -560,6 +560,8 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + int call_down_setup(int callref, const char __attribute__((unused)) *caller_id, enum number_type __attribute__((unused)) caller_type, const char *dialing) { sender_t *sender; diff --git a/src/eurosignal/dsp.c b/src/eurosignal/dsp.c index d40c0d2..7119935 100644 --- a/src/eurosignal/dsp.c +++ b/src/eurosignal/dsp.c @@ -265,13 +265,6 @@ void sender_receive(sender_t *sender, sample_t *samples, int length, double __at if (euro->rx) tone_decode(euro, down, count); - - /* whenever a chunk of anouncement audio should be played toward caller */ - euro->chunk_count += count; - if (euro->chunk_count >= 160) { - euro->chunk_count -= 160; - euro_clock_chunk(sender); - } } /* Generate tone of paging digits. */ diff --git a/src/eurosignal/eurosignal.c b/src/eurosignal/eurosignal.c index 39a9cf0..21a2730 100644 --- a/src/eurosignal/eurosignal.c +++ b/src/eurosignal/eurosignal.c @@ -525,31 +525,34 @@ static void call_play_beep(euro_call_t *call) } /* loop through all calls and play the announcement */ -void euro_clock_chunk(sender_t *sender) +void call_down_clock(void) { + sender_t *sender; euro_t *euro; euro_call_t *call; - if (sender == sender_head) { - /* use first tranceiver clock to clock calls without a transceiver */ - for (call = ooo_call_list; call; call = call->next) { - /* no callref */ - if (!call->callref) - continue; - /* beep or announcement */ - if (call->state == EURO_CALL_BEEPING) - call_play_beep(call); - else - call_play_announcement(call); - } - } - euro = (euro_t *) sender; - for (call = euro->call_list; call; call = call->next) { + /* clock all calls without a transceiver */ + for (call = ooo_call_list; call; call = call->next) { /* no callref */ if (!call->callref) continue; - /* announcement */ - call_play_announcement(call); + /* beep or announcement */ + if (call->state == EURO_CALL_BEEPING) + call_play_beep(call); + else + call_play_announcement(call); + } + + /* clock all calls that have a transceiver */ + for (sender = sender_head; sender; sender = sender->next) { + euro = (euro_t *) sender; + for (call = euro->call_list; call; call = call->next) { + /* no callref */ + if (!call->callref) + continue; + /* announcement */ + call_play_announcement(call); + } } } diff --git a/src/eurosignal/eurosignal.h b/src/eurosignal/eurosignal.h index a66e3fe..2b48677 100644 --- a/src/eurosignal/eurosignal.h +++ b/src/eurosignal/eurosignal.h @@ -67,7 +67,6 @@ typedef struct eurosignal { double tx_time; /* current elapsed time of tone */ char tx_digits[7]; /* current ID beeing transmitted */ int tx_digit_index; /* current digit beein transmitted */ - int chunk_count; /* current elapsed sample of 20ms audio chunk */ fm_demod_t rx_demod; /* demodulator for frequency */ iir_filter_t rx_lp; /* low pass to filter the frequency result */ int rx_digit_count; /* count the tone until detected */ @@ -87,5 +86,4 @@ int euro_create(const char *kanal, const char *audiodev, int use_sdr, int sample void euro_destroy(sender_t *sender); void euro_get_id(euro_t *euro, char *id); void euro_receive_id(euro_t *euro, char *id); -void euro_clock_chunk(sender_t *sender); diff --git a/src/imts/imts.c b/src/imts/imts.c index 2056806..721fb51 100644 --- a/src/imts/imts.c +++ b/src/imts/imts.c @@ -1322,5 +1322,7 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + void dump_info(void) {} diff --git a/src/jolly/jolly.c b/src/jolly/jolly.c index 33dd0b8..ba21d74 100644 --- a/src/jolly/jolly.c +++ b/src/jolly/jolly.c @@ -632,5 +632,7 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + void dump_info(void) {} diff --git a/src/libmobile/call.c b/src/libmobile/call.c index 7c51df1..1338f9d 100644 --- a/src/libmobile/call.c +++ b/src/libmobile/call.c @@ -586,6 +586,8 @@ void call_clock(void) uint8_t buf[sizeof(struct gsm_data_frame) + 160 * sizeof(int16_t)]; struct gsm_data_frame *data = (struct gsm_data_frame *)buf; + call_down_clock(); + while(process) { if (process->pattern != PATTERN_NONE) { data->msg_type = ANALOG_8000HZ; diff --git a/src/libmobile/call.h b/src/libmobile/call.h index 7273a1e..f87051d 100644 --- a/src/libmobile/call.h +++ b/src/libmobile/call.h @@ -36,5 +36,6 @@ void call_up_audio(int callref, sample_t *samples, int count); void call_down_audio(int callref, sample_t *samples, int count); /* clock to transmit to */ -void call_clock(void); +void call_clock(void); /* from main loop */ +void call_down_clock(void); /* towards mobile implementation */ diff --git a/src/nmt/nmt.c b/src/nmt/nmt.c index 3d0f75d..7b7ff73 100644 --- a/src/nmt/nmt.c +++ b/src/nmt/nmt.c @@ -1905,6 +1905,8 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + /* * SMS layer messages */ diff --git a/src/r2000/r2000.c b/src/r2000/r2000.c index 535c0a8..d542dd6 100644 --- a/src/r2000/r2000.c +++ b/src/r2000/r2000.c @@ -1582,5 +1582,7 @@ void call_down_audio(int callref, sample_t *samples, int count) } } +void call_down_clock(void) {} + void dump_info(void) {} diff --git a/src/test/test_dms.c b/src/test/test_dms.c index 379eaa6..a64bf43 100644 --- a/src/test/test_dms.c +++ b/src/test/test_dms.c @@ -253,5 +253,7 @@ int main(void) return 0; } +void call_down_clock(void) {} + void print_image(void) {} diff --git a/src/test/test_sms.c b/src/test/test_sms.c index 7f901ad..f9f2cd2 100644 --- a/src/test/test_sms.c +++ b/src/test/test_sms.c @@ -162,5 +162,7 @@ int main(void) return 0; } +void call_down_clock(void) {} + void print_image(void) {}