Fixes several issues with header files:
- prefer alsa/asoundlib.h file for the alsa-lib core functionalities
(use #warning to inform current and future developers, do the job)
- include alsa/asoundlib.h in headers for external plugins by default
- pcm_external.h: dependencies cleanup
- as benefit, the parsers in IDEs should get all information for individial
header files (see PR#435)
This change was mainly tergetted to fix errors caused by wrong include order
(like for endianness detection, missing typedefs etc.).
Closes: https://github.com/alsa-project/alsa-lib/issues/431
Link: https://github.com/alsa-project/alsa-lib/pull/435
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
For making it easer for applications to create a virtual UMP Endpoint
and UMP blocks, add two API helper functions.
snd_seq_create_ump_endpoint() creates (unsurprisingly) a UMP Endpoint,
based on the given snd_ump_endpoint_info_t information. The number of
(max) UMP groups belonging to this Endpoint has to be specified.
This function sets up the Endpoint info on the sequencer client, and
creates a MIDI 2.0 UMP port as well as UMP Group ports automatically.
The name of the sequencer client is updated from the Endpoint name,
too.
After creating a UMP Endpoint, create each UMP Block via
snd_seq_create_ump_block() function with a snd_ump_block_info_t info.
The associated groups for each block have to be specified there.
The port names and capability bits are updated accordingly after
setting each block information.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Like snd_seq_ev_clear(), let's add a helper to clear the event record
for a UMP-capable sequencer event.
While we're at it, change snd_seq_ev_clear() to be a static inline
function, so that we make sure that the proper pointer type is
passed.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch adds the basic support of UMP on ALSA sequencer API.
An extended event type, snd_seq_ump_event_t, is defined. It's
compatible with the existing type, snd_seq_event_t, but it has a
larger payload of 16 bytes instead of 12 bytes, for holding the full
128bit UMP packet.
The new snd_seq_ump_event_t must have the bit SND_SEQ_EVENT_UMP in the
event flags.
A few new API functions have been added such as
snd_seq_ump_event_output() and snd_seq_ump_event_input() for
reading/writing this new event object.
The support of UMP in the sequencer client is switched by the function
snd_seq_client_set_midi_version(). It can switch from the default
legacy MIDI to UMP MIDI 1.0 or 2.0 on the fly.
The automatic event conversion among UMP and legacy clients can be
suppressed via snd_seq_client_set_ump_conversion().
The inquiry of the associated UMP Endpoints and UMP Blocks can be done
via snd_seq_get_ump_endpoint_info() and snd_seq_get_ump_block_info().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The sequencer API is totally recoded with the style of "encapsulation"
in other api.
The structure becomes opaque and accessed only via functions.
Other changes:
- There is no longer group in client and port info.
- snd_seq_query_subs_t is renamed to snd_seq_query_subscribe_t.
- snd_seq_delete_port takes only the port id argument instead of
port_info structure.
- snd_seq_input/output_buffer_size are renamed
as snd_seq_get_input/output_buffer_size.
Similarly snd_seq_resize_input/output_buffer are renamed as
snd_seq_set_input/output_buffer_size.
- snd_seq_get_named_queue is renamed to snd_seq_query_named_queue.
- Sync codes are removed temporarily from API.
- Subscription conditions are accessed via the corresponding functions.
convert_time is named now as time_update.
- snd_seq_get/set_queue_owner are removed.
Use snd_seq_get/set_queue_info instead.
- Instrument put/get/remove structure is unified as snd_instr_header_t.
- dead SMP lock in es1968 (maestro2) driver.
Bugfix & enhances of sequencer stuff
by Scott McNab <sdm@fractalgraphics.com.au>:
- fix for the insrument list locking in SND_SEQ_EVENT_INSTR_BEGIN
and SND_SEQ_EVENT_INSTR_END events.
Note that nothing seems to really take notice of the list locking.
This is more an issue when we add support for editing instruments
anyway.
- added new alsa-lib utility function snd_seq_ev_set_varusr() which
is similar to snd_seq_ev_set_variable(), but specifies userspace
extended event data.
This is required in order to use the SND_SEQ_EVENT_INSTR_PUT
command (took me bloody ages to work this out btw)
- minor correction for gus & trident synth drivers
Fri, 17 Sep 1999 17:24:43 +0200
OK, the attached is the patch to alsa-driver and alsa-lib.
It will really violate the source/binary compatibility as
I wrote :-p
It includes:
- change of event data for accessing Timer Port
- new middle-level functions for sequencer in alsa-lib
- some comments / fixes
The test programs in alsa-lib (playmidi1, aconnect, aseqnet)
were rewritten to use the new functions above.
I included also a patch to pmidi-1.2.2.