Big rawmidi update - added subdevices support.

This commit is contained in:
Jaroslav Kysela 2000-11-03 10:11:50 +00:00
parent 1e9a496217
commit cc214bdfea
3 changed files with 10 additions and 22 deletions

View file

@ -24,9 +24,8 @@ int snd_rawmidi_close(snd_rawmidi_t *handle);
int snd_rawmidi_poll_descriptor(snd_rawmidi_t *handle);
int snd_rawmidi_block_mode(snd_rawmidi_t *handle, int enable);
int snd_rawmidi_info(snd_rawmidi_t *handle, snd_rawmidi_info_t * info);
int snd_rawmidi_stream_params(snd_rawmidi_t *handle, snd_rawmidi_params_t * params);
int snd_rawmidi_stream_setup(snd_rawmidi_t *handle, snd_rawmidi_setup_t * setup);
int snd_rawmidi_stream_status(snd_rawmidi_t *handle, snd_rawmidi_status_t * status);
int snd_rawmidi_params(snd_rawmidi_t *handle, snd_rawmidi_params_t * params);
int snd_rawmidi_status(snd_rawmidi_t *handle, snd_rawmidi_status_t * status);
int snd_rawmidi_output_drop(snd_rawmidi_t *handle);
int snd_rawmidi_output_drain(snd_rawmidi_t *handle);
int snd_rawmidi_input_drain(snd_rawmidi_t *handle);

View file

@ -163,35 +163,24 @@ int snd_rawmidi_info(snd_rawmidi_t *rmidi, snd_rawmidi_info_t * info)
return 0;
}
int snd_rawmidi_stream_params(snd_rawmidi_t *rmidi, snd_rawmidi_params_t * params)
int snd_rawmidi_params(snd_rawmidi_t *rmidi, snd_rawmidi_params_t * params)
{
if (!rmidi || !params)
return -EINVAL;
if (params->stream < 0 || params->stream > 1)
return -EINVAL;
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STREAM_PARAMS, params) < 0)
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_PARAMS, params) < 0)
return -errno;
return 0;
}
int snd_rawmidi_stream_setup(snd_rawmidi_t *rmidi, snd_rawmidi_setup_t * setup)
{
if (!rmidi || !setup)
return -EINVAL;
if (setup->stream < 0 || setup->stream > 1)
return -EINVAL;
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STREAM_SETUP, setup) < 0)
return -errno;
return 0;
}
int snd_rawmidi_stream_status(snd_rawmidi_t *rmidi, snd_rawmidi_status_t * status)
int snd_rawmidi_status(snd_rawmidi_t *rmidi, snd_rawmidi_status_t * status)
{
if (!rmidi || !status)
return -EINVAL;
if (status->stream < 0 || status->stream > 1)
return -EINVAL;
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STREAM_STATUS, status) < 0)
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STATUS, status) < 0)
return -errno;
return 0;
}
@ -201,7 +190,7 @@ int snd_rawmidi_output_drop(snd_rawmidi_t *rmidi)
int str = SND_RAWMIDI_STREAM_OUTPUT;
if (!rmidi)
return -EINVAL;
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STREAM_DROP, &str) < 0)
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_DROP, &str) < 0)
return -errno;
return 0;
}
@ -212,7 +201,7 @@ int snd_rawmidi_stream_drain(snd_rawmidi_t *rmidi, int str)
return -EINVAL;
if (str < 0 || str > 1)
return -EINVAL;
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_STREAM_DRAIN, &str) < 0)
if (ioctl(rmidi->fd, SND_RAWMIDI_IOCTL_DRAIN, &str) < 0)
return -errno;
return 0;
}

View file

@ -182,10 +182,10 @@ int main(int argc, char** argv)
bzero(&ostat, sizeof(ostat));
istat.stream = SND_RAWMIDI_STREAM_INPUT;
ostat.stream = SND_RAWMIDI_STREAM_OUTPUT;
err = snd_rawmidi_stream_status(handle_in, &istat);
err = snd_rawmidi_status(handle_in, &istat);
if (err < 0)
fprintf(stderr, "input stream status error: %d\n", err);
err = snd_rawmidi_stream_status(handle_out, &ostat);
err = snd_rawmidi_status(handle_out, &ostat);
if (err < 0)
fprintf(stderr, "output stream status error: %d\n", err);
printf("input.status.queue = %li\n", istat.queue);