>>>>> On Thu, 03 Dec 1998 19:00:51 +0100, "Takashi Iwai"
<[EMAIL PROTECTED]> said:
>> Since I talk to the card via OSS I suppose we are stuck with only
>> one process talking to the awe32 ? This is a pain because it means
>> the patch management must be done from the same process that is
>> doing the sequencing.
> Yes, I agree with it definitely. I hope ALSA sequencer.
I took a g glance at the OSS code again at this weekend, and tried a
hack to accept the multiple clients. The patch is put on the web page
of awedrv.
Basically, this patch allows you to open /dev/sequencer two or more
times by applications (clients) at the same time. Conceptually, each
application has itw own timer. Then, it's possible to play two
drvmidi's simultaneously. (I tried four tkmidi's, and they looked
working although they play silly sounds together, of course :-)
The patch loading is allowed only from one application at each time.
(that is, from opening until closing the patch.)
However, it looks like more mechanism to prevend conflicts is
necessary (though the current code doesn't harm the stability.)
***
There are many things to be implemented further:
1. each client should have own channel informations, playing mode,
etc.
2. each client can load the patches as private.
this means that these patches cannot be accessed from other
clients, and will be removed after quitting this client.
3. more sure and stable access to driver.
there're no interrupts blocking in awe_wave.c because it was
monolithic driver. but now some parts should be cli()ed.
4. support for /dev/sequencer2 and enable other seq/midi devices for
sharing...
5. communications between clients. synchronization of timer, etc.
***
Please note that this is still very experimental, and has been tested
only for two days, so far. Use it at your own risk.
--
Takashi Iwai / [EMAIL PROTECTED]
Department of Materials Science
Friedrich-Alexander-University Erlangen-Nuernberg