logo       


Re: Creative Labs and OpenAL: msg#00043

Subject: Re: Creative Labs and OpenAL
Hi Daniel,

On Thu, 23 Aug 2007, Daniel PEACOCK wrote:

Do you mean there is code in openal32.dll that will fallback to the GS device if GH can't be used? I thought the "router" was where the device enumeration stuff happened...

The fallback code is in the wrap_oal.dll and only happens if the game requests "GH" and the system doesn't meet the minimum requirements. The latest OpenAL32.dll and wrap_oal.dll will not list "GH" in the device enumeration strings if it can't be used.

Okay. I guess the SVN wrap_oal.dll doesn't have this feature (i.e. it's new in the Creative Labs "OpenAL SDK" release of wrap_oal.dll)?

I guess it would be too much trouble to separate the DS3D updates/fixes (and any other "open" stuff) from the IP-laden code so that the OpenAL-Windows could be brought up to date...?

It could be done (I used to do this) but it became more and more work so I stopped after a while. If / when I get some time I'll look at this again. From a Creative point of view we *want* developers to use all the extra features such as EAX and EFX which means we don't really want anyone to use a basic wrap_oal.dll component that doesn't have all the cool stuff in it ;0)

Sure, I can understand that. However, for our game (targeting Linux and OSX as well as WinXP), it simplifies things to include the DLLs needed and not require any extra installations by the user (other than the normal "install the latest drivers for your sound card and video card" mandate). If there are bugs in the DS3D portion of wrap_oal.dll that are fixed in Creative's "OpenAL SDK" wrap_oal.dll, then we might want those fixes for our game, but would we be allowed to include the fixed-up wrap_oal.dll (with the DS3D fixes) from the "OpenAL SDK" with our game, and use the openal32.dll built from SVN (which you said is identical to the one in the "OpenAL SDK" release) without legal hassles?

Currently we use OpenAL built from SVN (OpenAL-Windows tree for PC, OpenAL-Sample for Linux, and eventually the tree for Mac when we get that far), and we include the DLLs with the game EXE. Simple and easy, no additional installs, etc.,... and it will (hopefully) support 3D hardware sound on WinXP if the sound card has DS3D drivers that support 3D hardware sound. However, Vista will be a problem... because our wrap_oal.dll (or is it openal32.dll) isn't smart enough to NOT try to use DS3D ("Generic Hardware") on Vista.

Ouch... my brain hurts... ;-)

I downloaded the latest (Feb 2003) and it doesn't appear to have a
ct_oal.dll.  But if the driver supports DS3D and takes advantage of
hardware, then I guess it will avoid mixing and 3D spatialization on the
CPU.

Hmmmm OK maybe it has been pulled out. You can check the soundcard's capabilities using DXCapsViewer (ships with the DirectX SDK) - if you have hardware DS3D support you should see dwMaxHwMixingAllBuffers > 0 (probably around 30 for a Live! card).

Good tip!

I see in the "router" code (OpenAL-Windows from trunk) where it tries to use ALC_ENUMERATE_ALL_EXT first (if it can) to fetch the list of available devices from each the *oal.dll files it can find. How would the app/game have any control/affect on this process? Doesn't the app/game only get to call alcEnumerateDevices() and the rest happens "behind the scenes"...?

alcEnumerateDevice is not an API function. The app/game needs to pass a NULL device handle to alcGetString with the enum ALC_DEVICE_SPECIFIER to get the NULL character separated list of available devices, e.g.

const char *szList = alcGetString(NULL, ALC_DEVICE_SPECIFIER);

For the complete list (all devices on all soundcards) you would do ...

const char *szCompleteList = alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);

You should really check to see if the appropriate enumeration extension is 
present before calling
either of these functions though.

Ahhh, okay. The confusing part (for me) was that the router DLL code does this same kind of query on ct_oal.dll and any other DLLs that might be found on the system.

Thanks!

        Ed

Ed Phillips <ed@xxxxxxxx> University of Delaware (302) 831-6082
Systems Programmer IV, Network and Systems Services


Ruby Jobs
Java Jobs
Jobs in California
more...
what
job title, keywords
where
city, state, zip
jobs by job search
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
encryption.gpg....    ietf.rfc822/199...    freebsd.devel.i...    lang.haskell.li...    mail.squirrelma...    web.zope.plone....    yellowdog.gener...    text.xml.xalan....    recreation.phot...    kde.devel.educa...    hardware.bus.ca...    printing.ghosts...    voip.peering/20...    assembly/2006-0...    org.user-groups...    culture.interne...    network.i2p/200...    boot-loaders.ya...    xfree86.render/...    qnx.openqnx.dev...    jakarta.velocit...    user-groups.pal...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe