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);
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)