aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pcm.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/pcm.c b/src/pcm.c
index 75fc85c..62489a6 100644
--- a/src/pcm.c
+++ b/src/pcm.c
@@ -587,13 +587,9 @@ int pcm_readi(struct pcm *pcm, void *data, unsigned int frame_count)
x.frames = frame_count;
x.result = 0;
for (;;) {
- if (!pcm->running) {
- if (pcm_start(pcm) < 0) {
- fprintf(stderr, "start error");
- return -errno;
- }
- }
- if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_READI_FRAMES, &x)) {
+ if ((!pcm->running) && (pcm_start(pcm) < 0))
+ return -errno;
+ else if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_READI_FRAMES, &x)) {
pcm->prepared = 0;
pcm->running = 0;
if (errno == EPIPE) {