bell_mf_tx_state_t *bell_mf_tx_init(bell_mf_tx_state_t *s) { if (!bell_mf_gen_inited) bell_mf_gen_init(); s->tone_descriptors = bell_mf_digit_tones; tone_gen_init(&(s->tones), &bell_mf_digit_tones[0]); s->current_sample = 0; s->current_digits = 0; s->tones.current_section = -1; return s; }
SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s) { if (s == NULL) { if ((s = (bell_mf_tx_state_t *) malloc(sizeof(*s))) == NULL) return NULL; } memset(s, 0, sizeof(*s)); if (!bell_mf_gen_inited) bell_mf_gen_init(); tone_gen_init(&(s->tones), &bell_mf_digit_tones[0]); s->current_sample = 0; queue_init(&s->queue.queue, MAX_BELL_MF_DIGITS, QUEUE_READ_ATOMIC | QUEUE_WRITE_ATOMIC); s->tones.current_section = -1; return s; }