From 8abf9370b5ed3841115cd7e10a0d6942e3bcf9dc Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 7 Nov 1999 16:43:13 +0000 Subject: [PATCH] Added snd_pcm_nonblock_mode... --- include/pcm.h | 1 + src/pcm/pcm.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/pcm.h b/include/pcm.h index 4862c47b..3749bce4 100644 --- a/include/pcm.h +++ b/include/pcm.h @@ -24,6 +24,7 @@ int snd_pcm_open(snd_pcm_t **handle, int card, int device, int mode); int snd_pcm_open_subdevice(snd_pcm_t **handle, int card, int device, int subdevice, int mode); int snd_pcm_close(snd_pcm_t *handle); int snd_pcm_file_descriptor(snd_pcm_t *handle); +int snd_pcm_nonblock_mode(snd_pcm_t *handle, int nonblock); int snd_pcm_info(snd_pcm_t *handle, snd_pcm_info_t * info); int snd_pcm_channel_info(snd_pcm_t *handle, snd_pcm_channel_info_t * info); int snd_pcm_channel_params(snd_pcm_t *handle, snd_pcm_channel_params_t * params); diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index 2914838b..247019a7 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -159,6 +159,23 @@ int snd_pcm_file_descriptor(snd_pcm_t *pcm) return pcm->fd; } +int snd_pcm_nonblock_mode(snd_pcm_t *pcm, int nonblock) +{ + long flags; + + if (!pcm) + return -EINVAL; + if ((flags = fcntl(pcm->fd, F_GETFL)) < 0) + return -errno; + if (nonblock) + flags |= O_NONBLOCK; + else + flags &= ~O_NONBLOCK; + if (fcntl(pcm->fd, F_SETFL, flags) < 0) + return -errno; + return 0; +} + int snd_pcm_info(snd_pcm_t *pcm, snd_pcm_info_t * info) { if (!pcm || !info) -- 2.47.1