Camlorn_audio in Multiple NVDA Add-ons

This is just a quick note on something that is going to hit people, and apparently already has.

I found out, indirectly, that others are trying to make NVDA add-ons that use Camlorn_audio. This fails. I am going to fix it shortly.

OpenAL makes it very hard to allow for the library to be initialized more than once. To do so in Camlorn_audio, a bunch of code is needed in a lot of places, and the approach would be very bug-prone, especially with streaming. It would probably also necessitate a global library lock.

Instead, I am going to make init_camlorn_audio no-op if called twice, and implement a way to check initialization status of the library. This should fix the problem. Long-term, I'm probably going to figure out how to make a Camlorn_audio script for add-ons that adds a 3d audio configuration dialog on import. This will give all add-ons the ability to share information and configuration options, so that we don't have 5 add-ons playing through 5 sound cards and so that there's not a race condition at NVDA start-up.

I'll post again when I've got an updated package that's safe for use in multiple NVDA add-ons. Expect this to be a week or so-it's mid-term week next week, so i'm incredibly busy.

Comments