28 lines
700 B
C
28 lines
700 B
C
#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
|