chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Source code reorganization:
[disorder]
/
lib
/
alsabg.c
diff --git
a/lib/alsabg.c
b/lib/alsabg.c
index 61648f4af0a2d4ac2602a0f078af87b474d16dd4..336c2a3320adb6c77699d045ed89759744aa4131 100644
(file)
--- a/
lib/alsabg.c
+++ b/
lib/alsabg.c
@@
-21,11
+21,9
@@
* @brief Background-thread interface to ALSA
*/
* @brief Background-thread interface to ALSA
*/
-#include
<config.h>
+#include
"common.h"
#if HAVE_ALSA_ASOUNDLIB_H
#if HAVE_ALSA_ASOUNDLIB_H
-#include "types.h"
-
#include <alsa/asoundlib.h>
#include <pthread.h>
#include <alsa/asoundlib.h>
#include <pthread.h>
@@
-179,12
+177,14
@@
static void *alsa_bg_play(void attribute((unused)) *arg) {
rframes = snd_pcm_writei(pcm, alsa_bg_buffer + start, nframes);
ep(pthread_mutex_lock(&alsa_bg_lock));
if(rframes < 0) {
rframes = snd_pcm_writei(pcm, alsa_bg_buffer + start, nframes);
ep(pthread_mutex_lock(&alsa_bg_lock));
if(rframes < 0) {
- error(0, "snd_pcm_writei: %d", rframes);
switch(rframes) {
case -EPIPE:
switch(rframes) {
case -EPIPE:
- if((err = snd_pcm_recover(pcm, -EPIPE, 0)))
- fatal(0, "snd_pcm_recover: %d", err);
+ error(0, "underrun detected");
+ if((err = snd_pcm_prepare(pcm)))
+ fatal(0, "snd_pcm_prepare: %d", err);
break;
break;
+ default:
+ fatal(0, "snd_pcm_writei: %d", rframes);
}
} else {
const int rbytes = rframes * BYTES_PER_FRAME;
}
} else {
const int rbytes = rframes * BYTES_PER_FRAME;