]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Added snd_pcm_nonblock_mode...
authorJaroslav Kysela <perex@perex.cz>
Sun, 7 Nov 1999 16:43:13 +0000 (16:43 +0000)
committerJaroslav Kysela <perex@perex.cz>
Sun, 7 Nov 1999 16:43:13 +0000 (16:43 +0000)
include/pcm.h
src/pcm/pcm.c

index 4862c47b2f995a2a7981732d12bb1cc2aa2f781b..3749bce474205011d73a0b74e54d6b46ebc11310 100644 (file)
@@ -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);
index 2914838bb153a0ee9a9a13e505601b183e02ac92..247019a7b08b2cc22905071b51bc6254849dac23 100644 (file)
@@ -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)