If there is some sort of Lua sound library you can add in, then maybe you could use that, otherwise, you are probably stuck using a COM solution. The reason is simple. All of the interfaces made for sound cards tend to either work by telling it precisely "which" channel to use, or telling them, "use the next available", while failing to provide any sane functions, for direct use by the coders, like, "What is the next available?", "Are there any available at all?", and, more to the point, "Did the sound system finish playing the sound/music on channel X?". Obviously these "are" available some place in the guts of the drivers, or you couldn't tell the driver, "Use the next available." I have no idea if anyone, including MS and their DirectSound system, bothered to add anything since. Mushclient, however, currently operates on the horrible theory that, "Well, I am probably the only one running, so I will just use channel X, for everything, and who cares if I clobber my own sounds." So, until/unless someone fixes the code for that in Mushclient, so it employs a more usable system, some other solution is needed.
---
Oh, and as a bit of an edit. I just had the thought of, "Why the frack haven't they done anything about this on the card level." Yeah, we are still using compatibility for like Soundblaster 16 and some old stuff like that, but all of the original design in them where based on the presumption of an OS that only ran one application at a time, so there is no easy way to lock channels for use by specific applications, get a clear picture of what is in use on them, or any similar thing, which a multi-program, multi-sound, multi-tasking, and possibly even multi-desktop, system requires. Its really quite absurd now that I think of it, and even the stuff like DirectSound, etc., tended to presume that you where *only* running one game at a time, so wouldn't have any other background activity. Mind you, it seems to work anyway, most of the time, but seriously... |