]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Added loopback_block_mode...
authorJaroslav Kysela <perex@perex.cz>
Sun, 15 Nov 1998 15:19:45 +0000 (15:19 +0000)
committerJaroslav Kysela <perex@perex.cz>
Sun, 15 Nov 1998 15:19:45 +0000 (15:19 +0000)
include/pcm.h
src/pcm/pcm_loopback.c

index e5b0fed224ec5abed0a6fe09efeb1ba942962e8f..23aef0003e317cc8be9ac4332785e2330d1a382a 100644 (file)
@@ -57,6 +57,7 @@ extern "C" {
 int snd_pcm_loopback_open( void **handle, int card, int device, int mode );
 int snd_pcm_loopback_close( void *handle );
 int snd_pcm_loopback_file_descriptor( void *handle );
+int snd_pcm_loopback_block_mode( void *handle, int enable );
 int snd_pcm_loopback_stream_mode( void *handle, int mode );
 int snd_pcm_loopback_format( void *handle, snd_pcm_format_t *format );
 ssize_t snd_pcm_loopback_read( void *handle, void *buffer, size_t size );
index ca9a12727cbfa08ce294c54c46b078067d91c035..d46b8274cd680f0e4f939d9b775c719cd09ecc6e 100644 (file)
@@ -89,6 +89,24 @@ int snd_pcm_loopback_file_descriptor( void *handle )
   return lb -> fd;
 }
 
+int snd_pcm_loopback_block_mode( void *handle, int enable )
+{
+  snd_pcm_loopback_t *lb;
+  long flags;
+  
+  lb = (snd_pcm_loopback_t *)handle;
+  if ( !lb ) return -EINVAL;
+  if ( fcntl( lb -> fd, F_GETFL, &flags ) < 0 )
+    return -errno;
+  if ( enable )
+    flags |= O_NONBLOCK;
+   else
+    flags &= ~O_NONBLOCK;
+  if ( fcntl( lb -> fd, F_SETFL, &flags ) < 0 )
+    return -errno;
+  return 0;
+}
+
 int snd_pcm_loopback_stream_mode( void *handle, int mode )
 {
   snd_pcm_loopback_t *lb;