added full async interface to timer API

- added snd_async_add_timer_handler and snd_async_handler_get_timer functions
- added async command to test/timer.c
This commit is contained in:
Jaroslav Kysela 2005-05-11 12:18:51 +00:00
parent a022bc1fbc
commit 8ec3e4ea6c
7 changed files with 99 additions and 3 deletions

View file

@ -129,13 +129,15 @@ typedef struct sndrv_seq_event snd_seq_event_t;
struct _snd_async_handler {
enum {
SND_ASYNC_HANDLER_GENERIC,
SND_ASYNC_HANDLER_PCM,
SND_ASYNC_HANDLER_CTL,
SND_ASYNC_HANDLER_PCM,
SND_ASYNC_HANDLER_TIMER,
} type;
int fd;
union {
snd_pcm_t *pcm;
snd_ctl_t *ctl;
snd_pcm_t *pcm;
snd_timer_t *timer;
} u;
snd_async_callback_t callback;
void *private_data;

View file

@ -144,6 +144,9 @@ int snd_timer_query_status(snd_timer_query_t *handle, snd_timer_gstatus_t *statu
int snd_timer_open(snd_timer_t **handle, const char *name, int mode);
int snd_timer_open_lconf(snd_timer_t **handle, const char *name, int mode, snd_config_t *lconf);
int snd_timer_close(snd_timer_t *handle);
int snd_async_add_timer_handler(snd_async_handler_t **handler, snd_timer_t *timer,
snd_async_callback_t callback, void *private_data);
snd_timer_t *snd_async_handler_get_timer(snd_async_handler_t *handler);
int snd_timer_poll_descriptors_count(snd_timer_t *handle);
int snd_timer_poll_descriptors(snd_timer_t *handle, struct pollfd *pfds, unsigned int space);
int snd_timer_poll_descriptors_revents(snd_timer_t *timer, struct pollfd *pfds, unsigned int nfds, unsigned short *revents);