From: Jaroslav Kysela Date: Sun, 15 Nov 1998 15:19:45 +0000 (+0000) Subject: Added loopback_block_mode... X-Git-Tag: v1.0.3~1559 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=b4a8875caeebbbbe5989c486a16681dc6e6beb5c;p=alsa-lib.git Added loopback_block_mode... --- diff --git a/include/pcm.h b/include/pcm.h index e5b0fed2..23aef000 100644 --- a/include/pcm.h +++ b/include/pcm.h @@ -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 ); diff --git a/src/pcm/pcm_loopback.c b/src/pcm/pcm_loopback.c index ca9a1272..d46b8274 100644 --- a/src/pcm/pcm_loopback.c +++ b/src/pcm/pcm_loopback.c @@ -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;