Improved: For playback devices, the APO is now installed as a GFX (Post-mix) APO, so only one instance of Eq. APO is running for any number of applications. Existing LFX APO installations are upgraded by the Configurator (shown as "APO will be upgraded").

Added: Support for installation to capture devices. They can be selected on a second tab in the Configurator.
This commit is contained in:
jthedering committed 2013-05-15 20:43:47 +00:00
1 parent e2d5e64f21
commit 495e6e45e3
9 files changed
+364 -144

No files matched your search

+16 -5
View File
@@ -113,9 +113,16 @@ HRESULT EqualizerAPO::Initialize(UINT32 cbDataSize, BYTE* pbyData)
wstring deviceGuid = var.pwszVal;
TraceF(L"Endpoint GUID: %s", deviceGuid.c_str());
DeviceAPOInfo apoInfo;
if(apoInfo.load(deviceGuid))
peq.setDeviceInfo(apoInfo.deviceName, apoInfo.connectionName, apoInfo.deviceGuid);
try
{
DeviceAPOInfo apoInfo;
if(apoInfo.load(deviceGuid))
peq.setDeviceInfo(apoInfo.deviceName, apoInfo.connectionName, apoInfo.deviceGuid);
}
catch(RegistryException e)
{
LogF(L"Could not read endpoint device info because of: %s", e.getMessage());
}
wstring apoGuid;
try
@@ -130,7 +137,7 @@ HRESULT EqualizerAPO::Initialize(UINT32 cbDataSize, BYTE* pbyData)
TraceF(L"Child APO GUID: %s", apoGuid.c_str());
if(apoGuid != APOGUID_NOKEY)
if(apoGuid != APOGUID_NULL && apoGuid != APOGUID_NOKEY && apoGuid != APOGUID_NOVALUE)
{
GUID childGuid;
hr = CLSIDFromString(apoGuid.c_str(), &childGuid);
@@ -305,7 +312,11 @@ HRESULT EqualizerAPO::LockForProcess(UINT32 u32NumInputConnections,
TraceF(L"Output format in LockForProcess = { %08X, %u, %u, %u, %f, %08X }",
outFormat.guidFormatType.Data1, outFormat.dwSamplesPerFrame, outFormat.dwBytesPerSampleContainer,
outFormat.dwValidBitsPerSample, outFormat.fFramesPerSecond, outFormat.dwChannelMask);
peq.initialize(outFormat.fFramesPerSecond, outFormat.dwSamplesPerFrame, outFormat.dwChannelMask);
if(outFormat.dwChannelMask == 0 && inFormat.dwSamplesPerFrame == outFormat.dwSamplesPerFrame)
peq.initialize(outFormat.fFramesPerSecond, outFormat.dwSamplesPerFrame, inFormat.dwChannelMask);
else
peq.initialize(outFormat.fFramesPerSecond, outFormat.dwSamplesPerFrame, outFormat.dwChannelMask);
return hr;
}