mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Merged pcmplug branch.
This commit is contained in:
parent
40d1ee071d
commit
6962a9d6ce
61 changed files with 7172 additions and 6743 deletions
|
|
@ -47,11 +47,11 @@ int setparams(snd_pcm_t *phandle, snd_pcm_t *chandle, int *bufsize)
|
|||
params.mode = SND_PCM_MODE_FRAME;
|
||||
#endif
|
||||
params.format.interleave = 1;
|
||||
params.format.format = SND_PCM_SFMT_S16_LE;
|
||||
params.format.sfmt = SND_PCM_SFMT_S16_LE;
|
||||
params.format.channels = 2;
|
||||
params.format.rate = USED_RATE;
|
||||
params.start_mode = SND_PCM_START_GO;
|
||||
params.xrun_mode = SND_PCM_XRUN_DRAIN;
|
||||
params.start_mode = SND_PCM_START_EXPLICIT;
|
||||
params.xrun_action = SND_PCM_XRUN_ACT_DRAIN;
|
||||
params.time = 1;
|
||||
*bufsize += 4;
|
||||
|
||||
|
|
@ -152,7 +152,7 @@ long readbuf(snd_pcm_t *handle, char *buf, long len, size_t *frames)
|
|||
long r;
|
||||
|
||||
do {
|
||||
r = snd_pcm_read(handle, buf, len);
|
||||
r = snd_pcm_readi(handle, buf, len);
|
||||
} while (r == -EAGAIN);
|
||||
if (r > 0)
|
||||
*frames += r;
|
||||
|
|
@ -166,7 +166,7 @@ long writebuf(snd_pcm_t *handle, char *buf, long len, size_t *frames)
|
|||
long r;
|
||||
|
||||
while (len > 0) {
|
||||
r = snd_pcm_write(handle, buf, len);
|
||||
r = snd_pcm_writei(handle, buf, len);
|
||||
if (r == -EAGAIN)
|
||||
continue;
|
||||
// printf("write = %li\n", r);
|
||||
|
|
@ -225,7 +225,7 @@ int main(void)
|
|||
break;
|
||||
}
|
||||
|
||||
if ((err = snd_pcm_go(phandle)) < 0) {
|
||||
if ((err = snd_pcm_start(phandle)) < 0) {
|
||||
printf("Go error: %s\n", snd_strerror(err));
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ static void show_format1(const char *prefix, snd_pcm_format_t *format)
|
|||
format->interleave ? 1 : 0,
|
||||
format->rate,
|
||||
format->voices,
|
||||
format->format);
|
||||
format->sfmt);
|
||||
}
|
||||
|
||||
static void show_format(snd_pcm_loopback_t *handle)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ int main(void)
|
|||
fprintf(stderr, "open failed: %s\n", snd_strerror(err));
|
||||
return 0;
|
||||
}
|
||||
format.format = SND_PCM_SFMT_MU_LAW;
|
||||
format.sfmt = SND_PCM_SFMT_MU_LAW;
|
||||
format.rate = 8000;
|
||||
format.channels = 1;
|
||||
if ((err = snd_pcm_playback_format(handle, &format)) < 0) {
|
||||
|
|
@ -82,7 +82,7 @@ int main(void)
|
|||
}
|
||||
count1 = status.fragment_size * 12;
|
||||
show_playback_status(handle);
|
||||
size = snd_pcm_write(handle, buffer1, count1);
|
||||
size = snd_pcm_writei(handle, buffer1, count1);
|
||||
sleep(2);
|
||||
show_playback_status(handle);
|
||||
printf("Pause.. Bytes written %i from %i...\n", size, count1);
|
||||
|
|
@ -94,7 +94,7 @@ int main(void)
|
|||
printf("Pause end..\n");
|
||||
snd_pcm_playback_pause(handle, 0);
|
||||
show_playback_status(handle);
|
||||
size = snd_pcm_write(handle, buffer1, count);
|
||||
size = snd_pcm_writei(handle, buffer1, count);
|
||||
printf("Pause end.. Bytes written %i from %i...\n", size, count);
|
||||
snd_pcm_close(handle);
|
||||
free(buffer);
|
||||
|
|
|
|||
14
test/pcm.c
14
test/pcm.c
|
|
@ -18,7 +18,7 @@ void setformat(void *phandle, void *rhandle)
|
|||
snd_pcm_format_t format;
|
||||
|
||||
bzero(&format, sizeof(format));
|
||||
format.format = SND_PCM_SFMT_S16_LE;
|
||||
format.sfmt = SND_PCM_SFMT_S16_LE;
|
||||
format.channels = 2;
|
||||
format.rate = 22050;
|
||||
if ((err = snd_pcm_playback_format(phandle, &format)) < 0) {
|
||||
|
|
@ -46,14 +46,14 @@ void method1(void)
|
|||
setformat(phandle, rhandle);
|
||||
printf("Recording... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_read(rhandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_readi(rhandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Read error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
printf("done...\n");
|
||||
printf("Playback... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_write(phandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_writei(phandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Write error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
|
|
@ -81,7 +81,7 @@ void method2(void)
|
|||
setformat(phandle, rhandle);
|
||||
printf("Recording... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_read(rhandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_readi(rhandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Read error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
|
|
@ -93,7 +93,7 @@ void method2(void)
|
|||
printf("Record flush done...\n");
|
||||
printf("Playback... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_write(phandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_writei(phandle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Write error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ void method3(void)
|
|||
setformat(handle, handle);
|
||||
printf("Recording... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_read(handle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_readi(handle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Read error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
|
|
@ -134,7 +134,7 @@ void method3(void)
|
|||
printf("Record flush done...\n");
|
||||
printf("Playback... ");
|
||||
fflush(stdout);
|
||||
if ((err = snd_pcm_write(handle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
if ((err = snd_pcm_writei(handle, buffer, sizeof(buffer))) != sizeof(buffer)) {
|
||||
printf("Write error: %s\n", err < 0 ? snd_strerror(err) : xitoa(err));
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ static void write_ev(snd_seq_event_t *ev)
|
|||
while ((rc = snd_seq_event_output(seq_handle, ev)) < 0) {
|
||||
int seqfd;
|
||||
fd_set fds;
|
||||
seqfd = snd_seq_file_descriptor(seq_handle);
|
||||
seqfd = snd_seq_poll_descriptor(seq_handle);
|
||||
FD_ZERO(&fds);
|
||||
FD_SET(seqfd, &fds);
|
||||
if ((rc = select(seqfd + 1, NULL, &fds, NULL, NULL)) < 0) {
|
||||
|
|
@ -366,7 +366,7 @@ static snd_seq_event_t *wait_for_event(void)
|
|||
input_event == NULL) {
|
||||
int seqfd;
|
||||
fd_set fds;
|
||||
seqfd = snd_seq_file_descriptor(seq_handle);
|
||||
seqfd = snd_seq_poll_descriptor(seq_handle);
|
||||
FD_ZERO(&fds);
|
||||
FD_SET(seqfd, &fds);
|
||||
if ((left = select(seqfd + 1, &fds, NULL, NULL, NULL)) < 0) {
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ void event_decoder(snd_seq_t *handle, int argc, char *argv[])
|
|||
|
||||
while (1) {
|
||||
FD_ZERO(&in);
|
||||
FD_SET(max = snd_seq_file_descriptor(handle), &in);
|
||||
FD_SET(max = snd_seq_poll_descriptor(handle), &in);
|
||||
if (select(max + 1, &in, NULL, NULL, NULL) < 0)
|
||||
break;
|
||||
do {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ void set_format(snd_pcm_t *phandle)
|
|||
snd_pcm_format_t format;
|
||||
|
||||
bzero(&format, sizeof(format));
|
||||
format.format = SND_PCM_SFMT_S16_LE;
|
||||
format.sfmt = SND_PCM_SFMT_S16_LE;
|
||||
format.channels = 2;
|
||||
format.rate = 44100;
|
||||
if ((err = snd_pcm_playback_format(phandle, &format)) < 0) {
|
||||
|
|
@ -225,31 +225,31 @@ void event_sender(snd_seq_t *handle, int argc, char *argv[])
|
|||
while (1) {
|
||||
FD_ZERO(&out);
|
||||
FD_ZERO(&in);
|
||||
max = snd_seq_file_descriptor(handle);
|
||||
FD_SET(snd_seq_file_descriptor(handle), &in);
|
||||
max = snd_seq_poll_descriptor(handle);
|
||||
FD_SET(snd_seq_poll_descriptor(handle), &in);
|
||||
if (snd_seq_event_output_pending(handle)) {
|
||||
FD_SET(snd_seq_file_descriptor(handle), &out);
|
||||
FD_SET(snd_seq_poll_descriptor(handle), &out);
|
||||
}
|
||||
#ifdef USE_PCM
|
||||
if (phandle) {
|
||||
if (snd_pcm_file_descriptor(phandle) > max)
|
||||
max = snd_pcm_file_descriptor(phandle);
|
||||
FD_SET(snd_pcm_file_descriptor(phandle), &out);
|
||||
if (snd_pcm_poll_descriptor(phandle) > max)
|
||||
max = snd_pcm_poll_descriptor(phandle);
|
||||
FD_SET(snd_pcm_poll_descriptor(phandle), &out);
|
||||
}
|
||||
#endif
|
||||
if (select(max + 1, &in, &out, NULL, NULL) < 0)
|
||||
break;
|
||||
#ifdef USE_PCM
|
||||
if (phandle && FD_ISSET(snd_pcm_file_descriptor(phandle), &out)) {
|
||||
if (snd_pcm_write(phandle, pbuf, pfragment_size) != pfragment_size) {
|
||||
if (phandle && FD_ISSET(snd_pcm_poll_descriptor(phandle), &out)) {
|
||||
if (snd_pcm_writei(phandle, pbuf, pfragment_size) != pfragment_size) {
|
||||
fprintf(stderr, "Playback write error!!\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (FD_ISSET(snd_seq_file_descriptor(handle), &out))
|
||||
if (FD_ISSET(snd_seq_poll_descriptor(handle), &out))
|
||||
snd_seq_flush_output(handle);
|
||||
if (FD_ISSET(snd_seq_file_descriptor(handle), &in)) {
|
||||
if (FD_ISSET(snd_seq_poll_descriptor(handle), &in)) {
|
||||
do {
|
||||
if ((err = snd_seq_event_input(handle, &ev))<0)
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ void read_loop(void *handle, int master_ticks, int timeout)
|
|||
|
||||
while (master_ticks-- > 0) {
|
||||
FD_ZERO(&in);
|
||||
max = snd_timer_file_descriptor(handle);
|
||||
max = snd_timer_poll_descriptor(handle);
|
||||
FD_SET(max, &in);
|
||||
tv.tv_sec = timeout;
|
||||
tv.tv_usec = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue