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