Revision 44a095a7
b/audio/ossaudio.c | ||
---|---|---|
370 | 370 |
if (oss->pcm_buf == MAP_FAILED) { |
371 | 371 |
dolog ("Failed to mmap OSS device\nReason: %s\n", |
372 | 372 |
errstr ()); |
373 |
} else for (;;) {
|
|
373 |
} else { |
|
374 | 374 |
int err; |
375 | 375 |
int trig = 0; |
376 | 376 |
if (ioctl (oss->fd, SNDCTL_DSP_SETTRIGGER, &trig) < 0) { |
377 | 377 |
dolog ("SNDCTL_DSP_SETTRIGGER 0 failed\nReason: %s\n", |
378 | 378 |
errstr ()); |
379 |
goto fail; |
|
380 | 379 |
} |
381 |
|
|
382 |
trig = PCM_ENABLE_OUTPUT; |
|
383 |
if (ioctl (oss->fd, SNDCTL_DSP_SETTRIGGER, &trig) < 0) { |
|
384 |
dolog ("SNDCTL_DSP_SETTRIGGER PCM_ENABLE_OUTPUT failed\n" |
|
385 |
"Reason: %s\n", errstr ()); |
|
386 |
goto fail; |
|
380 |
else { |
|
381 |
trig = PCM_ENABLE_OUTPUT; |
|
382 |
if (ioctl (oss->fd, SNDCTL_DSP_SETTRIGGER, &trig) < 0) { |
|
383 |
dolog ("SNDCTL_DSP_SETTRIGGER PCM_ENABLE_OUTPUT failed\n" |
|
384 |
"Reason: %s\n", errstr ()); |
|
385 |
} |
|
386 |
else { |
|
387 |
oss->mmapped = 1; |
|
388 |
} |
|
387 | 389 |
} |
388 |
oss->mmapped = 1; |
|
389 |
break; |
|
390 | 390 |
|
391 |
fail: |
|
392 |
err = munmap (oss->pcm_buf, hw->bufsize); |
|
393 |
if (err) { |
|
394 |
dolog ("Failed to unmap OSS device\nReason: %s\n", |
|
395 |
errstr ()); |
|
391 |
if (!oss->mmapped) { |
|
392 |
err = munmap (oss->pcm_buf, hw->bufsize); |
|
393 |
if (err) { |
|
394 |
dolog ("Failed to unmap OSS device\nReason: %s\n", |
|
395 |
errstr ()); |
|
396 |
} |
|
396 | 397 |
} |
397 | 398 |
} |
398 | 399 |
} |
Also available in: Unified diff