mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-12-16 08:56:42 -05:00
Big rawmidi update - added subdevices support.
This commit is contained in:
parent
1e9a496217
commit
cc214bdfea
3 changed files with 10 additions and 22 deletions
|
|
@ -24,9 +24,8 @@ int snd_rawmidi_close(snd_rawmidi_t *handle);
|
||||||
int snd_rawmidi_poll_descriptor(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_block_mode(snd_rawmidi_t *handle, int enable);
|
||||||
int snd_rawmidi_info(snd_rawmidi_t *handle, snd_rawmidi_info_t * info);
|
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_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_status(snd_rawmidi_t *handle, snd_rawmidi_status_t * status);
|
||||||
int snd_rawmidi_stream_status(snd_rawmidi_t *handle, snd_rawmidi_status_t * status);
|
|
||||||
int snd_rawmidi_output_drop(snd_rawmidi_t *handle);
|
int snd_rawmidi_output_drop(snd_rawmidi_t *handle);
|
||||||
int snd_rawmidi_output_drain(snd_rawmidi_t *handle);
|
int snd_rawmidi_output_drain(snd_rawmidi_t *handle);
|
||||||
int snd_rawmidi_input_drain(snd_rawmidi_t *handle);
|
int snd_rawmidi_input_drain(snd_rawmidi_t *handle);
|
||||||
|
|
|
||||||
|
|
@ -163,35 +163,24 @@ int snd_rawmidi_info(snd_rawmidi_t *rmidi, snd_rawmidi_info_t * info)
|
||||||
return 0;
|
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)
|
if (!rmidi || !params)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (params->stream < 0 || params->stream > 1)
|
if (params->stream < 0 || params->stream > 1)
|
||||||
return -EINVAL;
|
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 -errno;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int snd_rawmidi_stream_setup(snd_rawmidi_t *rmidi, snd_rawmidi_setup_t * setup)
|
int snd_rawmidi_status(snd_rawmidi_t *rmidi, snd_rawmidi_status_t * status)
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
if (!rmidi || !status)
|
if (!rmidi || !status)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (status->stream < 0 || status->stream > 1)
|
if (status->stream < 0 || status->stream > 1)
|
||||||
return -EINVAL;
|
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 -errno;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -201,7 +190,7 @@ int snd_rawmidi_output_drop(snd_rawmidi_t *rmidi)
|
||||||
int str = SND_RAWMIDI_STREAM_OUTPUT;
|
int str = SND_RAWMIDI_STREAM_OUTPUT;
|
||||||
if (!rmidi)
|
if (!rmidi)
|
||||||
return -EINVAL;
|
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 -errno;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -212,7 +201,7 @@ int snd_rawmidi_stream_drain(snd_rawmidi_t *rmidi, int str)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (str < 0 || str > 1)
|
if (str < 0 || str > 1)
|
||||||
return -EINVAL;
|
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 -errno;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -182,10 +182,10 @@ int main(int argc, char** argv)
|
||||||
bzero(&ostat, sizeof(ostat));
|
bzero(&ostat, sizeof(ostat));
|
||||||
istat.stream = SND_RAWMIDI_STREAM_INPUT;
|
istat.stream = SND_RAWMIDI_STREAM_INPUT;
|
||||||
ostat.stream = SND_RAWMIDI_STREAM_OUTPUT;
|
ostat.stream = SND_RAWMIDI_STREAM_OUTPUT;
|
||||||
err = snd_rawmidi_stream_status(handle_in, &istat);
|
err = snd_rawmidi_status(handle_in, &istat);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
fprintf(stderr, "input stream status error: %d\n", err);
|
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)
|
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.queue = %li\n", istat.queue);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue