}
for (i = 0; i < n2; i++) _poll_fd [i].events |= POLLERR;
- r = poll (_poll_fd, n2, 1000);
+ timespec timeout;
+ timeout.tv_sec = 1;
+ timeout.tv_nsec = 0;
+ r = ppoll (_poll_fd, n2, &timeout, NULL);
+
if (r < 0)
{
if (errno == EINTR) return 0;
const snd_pcm_channel_area_t *a;
int err;
+ if (!_play_handle) {
+ return 0;
+ }
if ((err = snd_pcm_mmap_begin (_play_handle, &a, &_play_offs, &len)) < 0)
{
if (_debug & DEBUG_DATA) fprintf (stderr, "Alsa_pcmi: snd_pcm_mmap_begin(play): %s.\n", snd_strerror (err));
const snd_pcm_channel_area_t *a;
int err;
+ if (!_capt_handle) {
+ return 0;
+ }
+
if ((err = snd_pcm_mmap_begin (_capt_handle, &a, &_capt_offs, &len)) < 0)
{
if (_debug & DEBUG_DATA) fprintf (stderr, "Alsa_pcmi: snd_pcm_mmap_begin(capt): %s.\n", snd_strerror (err));
int Alsa_pcmi::play_done (int len)
{
+ if (!_play_handle) return 0;
return snd_pcm_mmap_commit (_play_handle, _play_offs, len);
}
int Alsa_pcmi::capt_done (int len)
{
+ if (!_capt_handle) return 0;
return snd_pcm_mmap_commit (_capt_handle, _capt_offs, len);
}
}
}
- if (! _play_handle || ! _capt_handle) return;
+ if (! _play_handle && ! _capt_handle) return;
if (ctrl_name)
{