Add clock function to call interface
Implementations will have a clock to play tones, if no clock is available from a transceiver.
This commit is contained in:
@@ -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. */
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user