Fixed test tools for latest API

This commit is contained in:
Jaroslav Kysela 2000-11-25 13:07:24 +00:00
parent 93bad3b02a
commit 34c76ccf73
2 changed files with 22 additions and 14 deletions

View file

@ -69,7 +69,7 @@ int main(int argc, char** argv)
int card_in = -1, device_in = 0; int card_in = -1, device_in = 0;
int card_out = -1, device_out = 0; int card_out = -1, device_out = 0;
snd_rawmidi_t *handle_in = NULL, *handle_out = NULL; snd_rawmidi_t *handle_in = NULL, *handle_out = NULL;
unsigned char ibuf[512], obuf[512]; unsigned char ibuf[512], obuf[512], iname[32], oname[32];
struct timeval start, end; struct timeval start, end;
long long diff; long long diff;
snd_rawmidi_status_t istat, ostat; snd_rawmidi_status_t istat, ostat;
@ -120,6 +120,9 @@ int main(int argc, char** argv)
card_in = card_out; card_in = card_out;
if (card_out == -1) if (card_out == -1)
card_out = card_in; card_out = card_in;
sprintf(iname, "hw:%i,%i", card_in, device_in);
sprintf(oname, "hw:%i,%i", card_out, device_out);
if (verbose) { if (verbose) {
fprintf(stderr, "Using: \n"); fprintf(stderr, "Using: \n");
@ -129,13 +132,13 @@ int main(int argc, char** argv)
fprintf(stderr, "card %d, device %d\n", card_out, device_out); fprintf(stderr, "card %d, device %d\n", card_out, device_out);
} }
err = snd_rawmidi_open(&handle_in, card_in, device_in, SND_RAWMIDI_OPEN_INPUT | SND_RAWMIDI_OPEN_NONBLOCK); err = snd_rawmidi_open(&handle_in, iname, SND_RAWMIDI_OPEN_INPUT, SND_RAWMIDI_NONBLOCK);
if (err) { if (err) {
fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_in,device_in,err); fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_in,device_in,err);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
err = snd_rawmidi_open(&handle_out, card_out, device_out, SND_RAWMIDI_OPEN_OUTPUT); err = snd_rawmidi_open(&handle_out, oname, SND_RAWMIDI_OPEN_OUTPUT, 0);
if (err) { if (err) {
fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_out,device_out,err); fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_out,device_out,err);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -188,10 +191,10 @@ int main(int argc, char** argv)
err = snd_rawmidi_status(handle_out, &ostat); err = snd_rawmidi_status(handle_out, &ostat);
if (err < 0) if (err < 0)
fprintf(stderr, "output stream status error: %d\n", err); fprintf(stderr, "output stream status error: %d\n", err);
printf("input.status.queue = %li\n", istat.queue); printf("input.status.avail = %li\n", istat.avail);
printf("input.status.overrun = %li\n", istat.overrun); printf("input.status.xruns = %li\n", istat.xruns);
printf("output.status.queue = %li\n", ostat.queue); printf("output.status.avail = %li\n", ostat.avail);
printf("output.status.overrun = %li\n", ostat.overrun); printf("output.status.xruns = %li\n", ostat.xruns);
diff = timediff(end, start); diff = timediff(end, start);
printf("Time diff: %Liusec (%Li bytes/sec)\n", diff, ((long long)opos * 1000000) / diff); printf("Time diff: %Liusec (%Li bytes/sec)\n", diff, ((long long)opos * 1000000) / diff);

View file

@ -33,6 +33,7 @@ int main(int argc,char** argv)
int verbose = 0; int verbose = 0;
int card_in = -1,device_in = -1; int card_in = -1,device_in = -1;
int card_out = -1,device_out = -1; int card_out = -1,device_out = -1;
char iname[32], oname[32];
char* node_in = 0; char* node_in = 0;
char* node_out = 0; char* node_out = 0;
@ -89,6 +90,8 @@ int main(int argc,char** argv)
} }
} }
} }
sprintf(oname, "hw:%i,%i", card_out, device_out);
if (verbose) { if (verbose) {
fprintf(stderr,"Using: \n"); fprintf(stderr,"Using: \n");
@ -111,13 +114,14 @@ int main(int argc,char** argv)
} }
if (card_in!=-1) { if (card_in!=-1) {
err = snd_rawmidi_open(&handle_in,card_in,device_in,O_RDONLY); sprintf(iname, "hw:%i,%i", card_in, device_in);
err = snd_rawmidi_open(&handle_in,iname,SND_RAWMIDI_OPEN_INPUT,0);
if (err) { if (err) {
fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_in,device_in,err); fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_in,device_in,err);
} }
} }
if (node_in && (!node_out || strcmp(node_out,node_in))) { if (node_in && (!node_out || strcmp(node_out,node_in))) {
fd_in = open(node_in,O_RDONLY); fd_in = open(node_in,O_RDONLY);
if (fd_in<0) { if (fd_in<0) {
fprintf(stderr,"open %s for input failed\n",node_in); fprintf(stderr,"open %s for input failed\n",node_in);
} }
@ -126,7 +130,8 @@ int main(int argc,char** argv)
signal(SIGINT,sighandler); signal(SIGINT,sighandler);
if (card_out!=-1) { if (card_out!=-1) {
err = snd_rawmidi_open(&handle_out,card_out,device_out,O_WRONLY); sprintf(oname, "hw:%i,%i", card_out, device_out);
err = snd_rawmidi_open(&handle_out,oname,SND_RAWMIDI_OPEN_OUTPUT,0);
if (err) { if (err) {
fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_out,device_out,err); fprintf(stderr,"snd_rawmidi_open %d %d failed: %d\n",card_out,device_out,err);
} }
@ -181,7 +186,7 @@ int main(int argc,char** argv)
ch=0x90; snd_rawmidi_write(handle_out,&ch,1); ch=0x90; snd_rawmidi_write(handle_out,&ch,1);
ch=60; snd_rawmidi_write(handle_out,&ch,1); ch=60; snd_rawmidi_write(handle_out,&ch,1);
ch=100; snd_rawmidi_write(handle_out,&ch,1); ch=100; snd_rawmidi_write(handle_out,&ch,1);
snd_rawmidi_output_drain(handle_in); snd_rawmidi_output_drain(handle_out);
sleep(1); sleep(1);
ch=0x90; snd_rawmidi_write(handle_out,&ch,1); ch=0x90; snd_rawmidi_write(handle_out,&ch,1);
ch=60; snd_rawmidi_write(handle_out,&ch,1); ch=60; snd_rawmidi_write(handle_out,&ch,1);
@ -235,12 +240,12 @@ int main(int argc,char** argv)
} }
if (handle_in) { if (handle_in) {
snd_rawmidi_output_drain(handle_in); snd_rawmidi_input_drain(handle_in);
snd_rawmidi_close(handle_in); snd_rawmidi_close(handle_in);
} }
if (handle_out) { if (handle_out) {
snd_rawmidi_output_drain(handle_in); snd_rawmidi_output_drain(handle_out);
snd_rawmidi_close(handle_in); snd_rawmidi_close(handle_out);
} }
if (fd_in!=-1) { if (fd_in!=-1) {
close(fd_in); close(fd_in);