Added: Analysis panel which shows the calculated frequency response of the filters for the selected device and channel.

Improved: GUIs of GraphicEQ and Copy command can now be resized
Improved: GraphicEQ GUI can now be zoomed separately in X and Y direction using mouse wheel on rulers. Also now shows values at mouse position.
Fixed: Original APO was not released when E-APO was shutting down, leading to a memory leak.
This commit is contained in:
jthedering committed 2015-11-07 19:00:49 +00:00
1 parent 04d22adb07
commit 0895d84055
49 files changed
+2228 -267

No files matched your search

+9 -6
View File
@@ -127,7 +127,7 @@ void FilterEngine::setDeviceInfo(bool capture, bool postMixInstalled, const wstr
this->deviceGuid = deviceGuid;
}
void FilterEngine::initialize(float sampleRate, unsigned inputChannelCount, unsigned realChannelCount, unsigned outputChannelCount, unsigned channelMask, unsigned maxFrameCount)
void FilterEngine::initialize(float sampleRate, unsigned inputChannelCount, unsigned realChannelCount, unsigned outputChannelCount, unsigned channelMask, unsigned maxFrameCount, const wstring& customPath)
{
EnterCriticalSection(&loadSection);
@@ -184,9 +184,9 @@ void FilterEngine::initialize(float sampleRate, unsigned inputChannelCount, unsi
if(configPath != L"")
{
loadConfig();
loadConfig(customPath);
if(threadHandle == NULL)
if(threadHandle == NULL && customPath.empty())
{
shutdownEvent = CreateEventW(NULL, true, false, NULL);
threadHandle = CreateThread(NULL, 0, notificationThread, this, 0, NULL);
@@ -199,7 +199,7 @@ void FilterEngine::initialize(float sampleRate, unsigned inputChannelCount, unsi
LeaveCriticalSection(&loadSection);
}
void FilterEngine::loadConfig()
void FilterEngine::loadConfig(const wstring& customPath)
{
EnterCriticalSection(&loadSection);
timer.start();
@@ -226,7 +226,10 @@ void FilterEngine::loadConfig()
addFilters(newFilters);
}
loadConfig(configPath + L"\\config.txt");
if(customPath.empty())
loadConfigFile(configPath + L"\\config.txt");
else
loadConfigFile(customPath);
for(vector<IFilterFactory*>::const_iterator it = factories.cbegin(); it != factories.cend(); it++)
{
@@ -252,7 +255,7 @@ void FilterEngine::loadConfig()
LeaveCriticalSection(&loadSection);
}
void FilterEngine::loadConfig(const wstring& path)
void FilterEngine::loadConfigFile(const wstring& path)
{
TraceF(L"Loading configuration from %s", path.c_str());