+ if((err = snd_pcm_prepare(pcm)) < 0) {
+ error(0, "error calling snd_pcm_prepare: %d", err);
+ return -1;
+ }
+ frames_written = snd_pcm_writei(pcm, s, n / 2);
+ if(frames_written == -EAGAIN)
+ return 0;
+ else if(frames_written < 0) {
+ error(0, "error calling snd_pcm_writei: %ld",
+ (long)frames_written);
+ return -1;
+ }
+ break;