ump: Add descriptions for UMP RawMidi interface

Also update doxygen config accordingly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2024-06-26 11:23:34 +02:00
parent 18579adfbc
commit f8df023597
3 changed files with 33 additions and 0 deletions

View file

@ -17,6 +17,8 @@ INPUT = @top_srcdir@/doc/index.doxygen \
@top_srcdir@/include/control.h \
@top_srcdir@/include/pcm.h \
@top_srcdir@/include/rawmidi.h \
@top_srcdir@/include/ump.h \
@top_srcdir@/include/ump_msg.h \
@top_srcdir@/include/timer.h \
@top_srcdir@/include/hwdep.h \
@top_srcdir@/include/seq.h \

View file

@ -13,6 +13,12 @@
extern "C" {
#endif
/**
* \defgroup RawMidi RawMidi Interface
* The RawMidi Interface. See \ref rawmidi page for more details.
* \{
*/
/** UMP (Endpoint) RawMIDI device */
typedef struct _snd_ump snd_ump_t;
/** UMP Endpoint information container */
@ -168,6 +174,8 @@ void snd_ump_block_info_set_sysex8_streams(snd_ump_block_info_t *info, unsigned
void snd_ump_block_info_set_ui_hint(snd_ump_block_info_t *info, unsigned int hint);
void snd_ump_block_info_set_name(snd_ump_block_info_t *info, const char *name);
/** \} */
#ifdef __cplusplus
}
#endif

View file

@ -7,6 +7,29 @@
#include "rawmidi_local.h"
#include "ump_local.h"
/*! \page rawmidi RawMidi interface
\section rawmidi_ump UMP RawMidi Interface
MIDI 2.0 devices have a different type of interface, communicating with
UMP (Universal MIDI Packet). For those devices, ALSA-library provides
API functions for accessing the raw UMP packet directly via the existing
RawMidi interface.
#snd_ump_open() is the API function for opening a UMP RawMidi interface.
It works just like #snd_rawmidi_open() but for UMP devices. Similarly,
#snd_ump_close() is for closing, and there are other equivalent API functions
corresponding to the RawMidi ones.
The new stuff for UMP is UMP Endpoint and UMP Function Blocks. The information
from Endpoint and Function Blocks can be obtained via #snd_ump_endpoint_info()
and #snd_ump_block_info() API functions.
The objects #snd_ump_endpoint_info_t and #snd_ump_block_info_t are used for
creating a virtual UMP Endpoint and Function Blocks via ALSA sequencer, too.
*/
static int get_rawmidi_flags(snd_ump_t *ump)
{
snd_rawmidi_info_t info;