<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">I wanted to make one more comment
regarding this. Technically, OpenAL Soft is implementing this
incorrectly according to the OpenAL Programmer's Guide. In there
it states the following:<br>
<br>
<div data-canvas-width="284.34422" style="left: 584.197px; top:
885.593px; font-size: 16.7px; font-family: sans-serif;
transform: scaleX(0.998108);"><span class="highlight selected">ALC_DEVICE_SPECIFIER</span>
will return the name of the specified output device if a pointer
is supplied<br>
<br>
</div>
And furthermore:<br>
<br>
<div data-canvas-width="331.21599999999995" style="left: 150px;
top: 608.1px; font-size: 20px; font-family: sans-serif;
transform: scaleX(1.07207);"> Checking the current
device name </div>
<div data-canvas-width="351.12752" style="left: 334.3px; top:
653.786px; font-size: 16.7px; font-family: sans-serif;
transform: scaleX(0.998372);">The developer can check to see the
name of the device that was actually opened using the function
call alcGetString with a pointer to an open device and the name
</div>
<div class="" data-canvas-width="221.39189999999996" style="left:
149.999px; top: 672.39px; font-size: 16.7px; font-family:
sans-serif; transform: scaleX(0.998385);">“ALC_DEVICE_SPECIFIER”.<br>
<br>
</div>
<div data-canvas-width="219.96238000000008" style="left: 210px;
top: 719.806px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">ALCdevice *pMyDevice; </div>
<div data-canvas-width="329.9435700000002" style="left: 210px;
top: 748.706px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">const ALCchar *actualDeviceName;<br>
<br>
</div>
<div data-canvas-width="269.9538300000001" style="left: 210px;
top: 806.405px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">// Open the default device </div>
<div data-canvas-width="299.9487000000002" style="left: 210px;
top: 835.306px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">pMyDevice=alcOpenDevice(NULL)<br>
<br>
</div>
<div data-canvas-width="609.8956900000006" style="left: 210px;
top: 893.106px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">// Pass in valid device pointer to
get the name of the open </div>
<div data-canvas-width="99.98289999999999" style="left: 210px;
top: 921.905px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">// device<br>
<br>
</div>
<div class="" data-canvas-width="659.8871400000006" style="left:
210px; top: 979.705px; font-size: 16.7px; font-family:
monospace; transform: scaleX(0.998165);">actualDeviceName =
alcGetString(pMyDevice, ALC_DEVICE_SPECIFIER); </div>
<div data-canvas-width="569.9025300000005" style="left: 210px;
top: 1008.61px; font-size: 16.7px; font-family: monospace;
transform: scaleX(0.998165);">// actualDeviceName contains the
name of the open device </div>
<br>
And this is exactly how sample code is used provided in the
original OpenAL SDK. So this should give the full device name, not
just some driver specifier. I think that changing this behavior
was not a good thing. Perhaps a different enumeration should be
used for just getting the driver specifier.<br>
<br>
Tommy<br>
<br>
<br>
On 9/1/2016 7:48 PM, Chris Robinson wrote:<br>
</div>
<blockquote
cite="mid:f907ae07-666f-b87d-584d-e50d236fead5@gmail.com"
type="cite">On 09/01/2016 08:34 AM, Tommy Scott wrote:
<br>
<blockquote type="cite">When I enumerate all the available devices
they all come back with a
<br>
strDeviceName equal to "OpenAL Soft" instead of the actual
device name.
<br>
</blockquote>
<br>
ALC_DEVICE_SPECIFIER effectively acts as a driver specifier.
You'll get names like "Generic Software", "Generic Hardware",
"OpenAL Soft", etc. You may see specific device names if you have
a hardware OpenAL driver for your audio card, though.
<br>
<br>
Otherwise, you should use the ALC_ENUMERATE_ALL_EXT extension's
ALC_ALL_DEVICES_SPECIFIER to get the specific output. Then you'll
get names like "OpenAL Soft on Some Device".
<br>
<br>
<blockquote type="cite">Strangely, if I
<br>
change the call to ||alcGetString(device,
ALC_ALL_DEVICES_SPECIFIER)
<br>
then it returns thje correct name for the device, but then when
using
<br>
that name to open the device it doesn't allow the device to play
sounds.
<br>
</blockquote>
<br>
That's odd, you should be able to open the specific names you get
from that. What name do you get? What happens when you try to open
a device with the name? Does the device open and the context get
created, or does one of them fail, or...?
<br>
<br>
It may help to get logging output, which you can do by setting the
ALSOFT_LOGLEVEL environment variable to 3, then capturing stderr
when running the app (or also set the ALSOFT_LOGFILE environment
variable to a path with filename, where the log can be written
to).
<br>
_______________________________________________
<br>
openal mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:openal@openal.org">openal@openal.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://openal.org/mailman/listinfo/openal">http://openal.org/mailman/listinfo/openal</a><br>
</blockquote>
<p><br>
</p>
</body>
</html>