mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Bugfix:
- 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
This commit is contained in:
parent
7fe55fff6a
commit
bbdff9fce5
2 changed files with 12 additions and 1 deletions
|
|
@ -35,11 +35,13 @@ void snd_seq_ev_schedule_real(snd_seq_event_t *ev, int q, int relative,
|
|||
/* set event priority (optional) */
|
||||
void snd_seq_ev_set_priority(snd_seq_event_t *ev, int high_prior);
|
||||
|
||||
/* set event data type - following two macros are exclusive */
|
||||
/* set event data type - following three macros are exclusive */
|
||||
/* fixed size event */
|
||||
void snd_seq_ev_set_fixed(snd_seq_event_t *ev);
|
||||
/* variable size event */
|
||||
void snd_seq_ev_set_variable(snd_seq_event_t *ev, int len, void *ptr);
|
||||
/* variable size event - user memory space */
|
||||
void snd_seq_ev_set_varusr(snd_seq_event_t *ev, int len, void *ptr);
|
||||
|
||||
/* set queue control event data */
|
||||
/* destination is overwritten to Timer port (0:0) */
|
||||
|
|
|
|||
|
|
@ -81,6 +81,15 @@ void snd_seq_ev_set_variable(snd_seq_event_t *ev, int len, void *ptr)
|
|||
ev->data.ext.ptr = ptr;
|
||||
}
|
||||
|
||||
/* set varusr data */
|
||||
void snd_seq_ev_set_varusr(snd_seq_event_t *ev, int len, void *ptr)
|
||||
{
|
||||
ev->flags &= ~SND_SEQ_EVENT_LENGTH_MASK;
|
||||
ev->flags |= SND_SEQ_EVENT_LENGTH_VARUSR;
|
||||
ev->data.ext.len = len;
|
||||
ev->data.ext.ptr = ptr;
|
||||
}
|
||||
|
||||
|
||||
/* use or unuse a queue */
|
||||
int snd_seq_use_queue(snd_seq_t *seq, int q, int use)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue