Mercurial > audlegacy-plugins
diff src/amidi-plug/backend-alsa/b-alsa.c @ 1414:5f892afeb8e1 audacious-plugins-1.4.0-dr2
- amidi-plug 0.8 beta1; support for gthread and v3 plugin system; needs testing and refinements
author | Giacomo Lozito <james@develia.org> |
---|---|
date | Mon, 06 Aug 2007 14:01:24 +0200 |
parents | d2e508857ded |
children |
line wrap: on
line diff
--- a/src/amidi-plug/backend-alsa/b-alsa.c Mon Aug 06 03:20:01 2007 +0200 +++ b/src/amidi-plug/backend-alsa/b-alsa.c Mon Aug 06 14:01:24 2007 +0200 @@ -179,6 +179,12 @@ } +gint sequencer_queue_stop( void ) +{ + return snd_seq_stop_queue( sc.seq , sc.queue , NULL ); +} + + gint sequencer_event_init( void ) { /* common settings for all our events */ @@ -291,6 +297,31 @@ } +gint sequencer_event_allnoteoff( gint unused ) +{ + gint i = 0 , c = 0; + /* send "ALL SOUNDS OFF" to all channels on all ports */ + sc.ev.type = SND_SEQ_EVENT_CONTROLLER; + sc.ev.time.tick = 0; + snd_seq_ev_set_fixed(&sc.ev); + sc.ev.data.control.param = MIDI_CTL_ALL_SOUNDS_OFF; + sc.ev.data.control.value = 0; + for ( i = 0 ; i < sc.dest_port_num ; i++ ) + { + sc.ev.queue = sc.queue; + sc.ev.dest = sc.dest_port[i]; + + for ( c = 0 ; c < 16 ; c++ ) + { + sc.ev.data.control.channel = c; + snd_seq_event_output(sc.seq, &sc.ev); + snd_seq_drain_output(sc.seq); + } + } + return 1; +} + + gint sequencer_output( gpointer * buffer , gint * len ) { snd_seq_event_output( sc.seq , &sc.ev );