Isn't it really nice that there are ioctls and library functions to get/ set the midi_voices property of sequencer ports?
Well, it would be, if ports actually had this property. :o) Index: alsa-kernel/core/seq/seq_ports.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/seq/seq_ports.h,v retrieving revision 1.2 diff -u -r1.2 seq_ports.h --- alsa-kernel/core/seq/seq_ports.h 30 Dec 2001 09:26:45 -0000 1.2 +++ alsa-kernel/core/seq/seq_ports.h 28 Feb 2003 10:35:06 -0000 @@ -81,6 +81,7 @@ /* supported channels */ int midi_channels; + int midi_voices; int synth_voices; } client_port_t; Index: alsa-kernel/core/seq/seq_ports.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/seq/seq_ports.c,v retrieving revision 1.12 diff -u -r1.12 seq_ports.c --- alsa-kernel/core/seq/seq_ports.c 5 Feb 2003 11:07:51 -0000 1.12 +++ alsa-kernel/core/seq/seq_ports.c 28 Feb 2003 10:35:06 -0000 @@ -351,6 +351,7 @@ /* information about supported channels/voices */ port->midi_channels = info->midi_channels; + port->midi_voices = info->midi_voices; port->synth_voices = info->synth_voices; return 0; @@ -372,6 +373,7 @@ /* information about supported channels/voices */ info->midi_channels = port->midi_channels; + info->midi_voices = port->midi_voices; info->synth_voices = port->synth_voices; /* get subscriber counts */ @@ -611,7 +613,7 @@ int snd_seq_event_port_attach(int client, snd_seq_port_callback_t *pcbp, int cap, int type, int midi_channels, - char *portname) + int midi_voices, char *portname) { snd_seq_port_info_t portinfo; int ret; @@ -628,6 +630,7 @@ portinfo.type = type; portinfo.kernel = pcbp; portinfo.midi_channels = midi_channels; + portinfo.midi_voices = midi_voices; /* Create it */ ret = snd_seq_kernel_client_ctl(client, Index: alsa-kernel/include/seq_kernel.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/include/seq_kernel.h,v retrieving revision 1.6 diff -u -r1.6 seq_kernel.h --- alsa-kernel/include/seq_kernel.h 5 Feb 2003 11:07:52 -0000 1.6 +++ alsa-kernel/include/seq_kernel.h 28 Feb 2003 10:35:06 -0000 @@ -174,7 +174,7 @@ /* port attach/detach */ int snd_seq_event_port_attach(int client, snd_seq_port_callback_t *pcbp, - int cap, int type, int midi_channels, char *portname); + int cap, int type, int midi_channels, int midi_voices, char *portname); int snd_seq_event_port_detach(int client, int port); #endif /* __SOUND_SEQ_KERNEL_H */ Index: alsa-kernel/drivers/opl3/opl3_oss.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/drivers/opl3/opl3_oss.c,v retrieving revision 1.9 diff -u -r1.9 opl3_oss.c --- alsa-kernel/drivers/opl3/opl3_oss.c 5 Feb 2003 11:07:52 -0000 1.9 +++ alsa-kernel/drivers/opl3/opl3_oss.c 28 Feb 2003 10:35:06 -0000 @@ -101,7 +101,7 @@ SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | SNDRV_SEQ_PORT_TYPE_MIDI_GM | SNDRV_SEQ_PORT_TYPE_SYNTH, - voices, + voices, voices, name); if (opl3->oss_chset->port < 0) { snd_midi_channel_free_set(opl3->oss_chset); Index: alsa-kernel/drivers/opl3/opl3_seq.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/drivers/opl3/opl3_seq.c,v retrieving revision 1.10 diff -u -r1.10 opl3_seq.c --- alsa-kernel/drivers/opl3/opl3_seq.c 5 Feb 2003 11:07:52 -0000 1.10 +++ alsa-kernel/drivers/opl3/opl3_seq.c 28 Feb 2003 10:35:06 -0000 @@ -179,8 +179,10 @@ { snd_seq_port_callback_t callbacks; char name[32]; - int opl_ver; + int voices, opl_ver; + voices = (opl3->hardware < OPL3_HW_OPL3) ? + MAX_OPL2_VOICES : MAX_OPL3_VOICES; opl3->chset = snd_midi_channel_alloc_set(16); if (opl3->chset == NULL) return -ENOMEM; @@ -204,7 +206,7 @@ SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | SNDRV_SEQ_PORT_TYPE_MIDI_GM | SNDRV_SEQ_PORT_TYPE_SYNTH, - 16, + 16, voices, name); if (opl3->chset->port < 0) { snd_midi_channel_free_set(opl3->chset); Index: alsa-kernel/isa/gus/gus_synth.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/isa/gus/gus_synth.c,v retrieving revision 1.9 diff -u -r1.9 gus_synth.c --- alsa-kernel/isa/gus/gus_synth.c 5 Feb 2003 11:07:52 -0000 1.9 +++ alsa-kernel/isa/gus/gus_synth.c 28 Feb 2003 10:35:06 -0000 @@ -197,7 +197,7 @@ SNDRV_SEQ_PORT_TYPE_MIDI_GS | SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE | SNDRV_SEQ_PORT_TYPE_SYNTH, - 16, + 16, 0, name); if (p->chset->port < 0) { result = p->chset->port; Index: alsa-kernel/pci/trident/trident_synth.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/trident/trident_synth.c,v retrieving revision 1.9 diff -u -r1.9 trident_synth.c --- alsa-kernel/pci/trident/trident_synth.c 25 Feb 2003 20:36:40 -0000 1.9 +++ alsa-kernel/pci/trident/trident_synth.c 28 Feb 2003 10:35:06 -0000 @@ -909,7 +909,7 @@ SNDRV_SEQ_PORT_TYPE_MIDI_GS | SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE | SNDRV_SEQ_PORT_TYPE_SYNTH, - 16, + 16, 0, name); if (p->chset->port < 0) { result = p->chset->port; Index: alsa-kernel/synth/emux/emux_seq.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/synth/emux/emux_seq.c,v retrieving revision 1.8 diff -u -r1.8 emux_seq.c --- alsa-kernel/synth/emux/emux_seq.c 5 Feb 2003 11:07:53 -0000 1.8 +++ alsa-kernel/synth/emux/emux_seq.c 28 Feb 2003 10:35:06 -0000 @@ -176,7 +176,8 @@ } p->chset.port = snd_seq_event_port_attach(emu->client, callback, - cap, type, max_channels, name); + cap, type, max_channels, + emu->max_voices, name); return p; } ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel