blob: b1a8b3799c8eb80d9d394eebaf5b3902000c6e57 [file] [log] [blame]
#ifndef DTMF_SCHEDULER_H
#define DTMF_SCHEDULER_H
/**
* The state/queue for DTMF signalling.
*/
struct dtmf_state {
int size; /* <! The last tone to play */
char tones[24]; /* <! Pending tones */
int playing; /* <! Playing a tone right now? */
};
/* initialize */
void dtmf_state_init(struct dtmf_state *state);
/* add a tone to the list */
int dtmf_state_add(struct dtmf_state *state, char tone);
/* tones that should be played, playing will be set to 1 */
unsigned int dtmf_state_get_pending(struct dtmf_state *state, char *tones);
/* call when the playout is done */
void dtmf_state_played(struct dtmf_state *state);
unsigned int dtmf_tones_queued(struct dtmf_state *state);
#endif