Improved: Updated to Visual Studio 2019 and Qt 5.15.2. Running Equalizer APO requires Universal CRT now, which means that Windows versions before 10 may need additional Windows updates or the Visual C++ Redistributable for Visual Studio 2015 - 2019 needs to be installed (installer provides assistance).

This commit is contained in:
jthedering committed 2021-06-08 19:04:18 +00:00
1 parent 3d51af7364
commit c692f0639b
94 files changed
+362 -184

No files matched your search

+17 -9
View File
@@ -22,34 +22,34 @@
<ProjectGuid>{D4474852-5724-4253-95C6-7A6DC424F194}</ProjectGuid> <ProjectGuid>{D4474852-5724-4253-95C6-7A6DC424F194}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>Benchmark</RootNamespace> <RootNamespace>Benchmark</RootNamespace>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -69,22 +69,22 @@
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.1\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.4\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Program Files (x86)\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib;C:\Program Files (x86)\fftw3;$(LibraryPath)</LibraryPath> <LibraryPath>C:\Program Files (x86)\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib;C:\Program Files (x86)\fftw3;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.1\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.4\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Program Files\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib64;C:\Program Files\fftw3;$(LibraryPath)</LibraryPath> <LibraryPath>C:\Program Files\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib64;C:\Program Files\fftw3;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.1\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.4\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Program Files (x86)\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib;C:\Program Files (x86)\fftw3;$(LibraryPath)</LibraryPath> <LibraryPath>C:\Program Files (x86)\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib;C:\Program Files (x86)\fftw3;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.1\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir);C:\Program Files\tclap-1.2.4\include;C:\Program Files\libsndfile\include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Program Files\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib64;C:\Program Files\fftw3;$(LibraryPath)</LibraryPath> <LibraryPath>C:\Program Files\libsndfile\lib;C:\Program Files\muparserx_v3_0_1\lib64;C:\Program Files\fftw3;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -93,6 +93,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@@ -106,6 +108,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@@ -122,6 +126,8 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@@ -140,6 +146,8 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
+13 -4
View File
@@ -22,31 +22,32 @@
<ProjectGuid>{6758B50E-B9F0-4389-A61D-A842F0545E1B}</ProjectGuid> <ProjectGuid>{6758B50E-B9F0-4389-A61D-A842F0545E1B}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>Common</RootNamespace> <RootNamespace>Common</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
@@ -84,6 +85,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -96,6 +99,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -110,6 +115,8 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -126,6 +133,8 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
+1 -1
View File
@@ -757,7 +757,7 @@ int APIENTRY wWinMain(HINSTANCE hInstance,
{ {
for (int index = 0; index <= 1; index++) for (int index = 0; index <= 1; index++)
{ {
vector<shared_ptr<AbstractAPOInfo> > apoInfos = DeviceAPOInfo::loadAllInfos(index == 1); vector<shared_ptr<AbstractAPOInfo>> apoInfos = DeviceAPOInfo::loadAllInfos(index == 1);
for (shared_ptr<AbstractAPOInfo>& apoInfo : apoInfos) for (shared_ptr<AbstractAPOInfo>& apoInfo : apoInfos)
{ {
+1 -1
View File
@@ -64,6 +64,6 @@ private:
void updateList(int listIndex, int itemIndex); void updateList(int listIndex, int itemIndex);
void updateButtons(int listIndex); void updateButtons(int listIndex);
std::vector<std::shared_ptr<AbstractAPOInfo> > apoInfos[2]; std::vector<std::shared_ptr<AbstractAPOInfo>> apoInfos[2];
bool askForReboot = false; bool askForReboot = false;
}; };
+13 -5
View File
@@ -51,34 +51,34 @@
<ProjectGuid>{E18E1CA7-3D6C-4CD5-9CE9-E72565A206E5}</ProjectGuid> <ProjectGuid>{E18E1CA7-3D6C-4CD5-9CE9-E72565A206E5}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>Configurator</RootNamespace> <RootNamespace>Configurator</RootNamespace>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -126,6 +126,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -139,6 +141,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -154,6 +158,8 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -171,6 +177,8 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
+2 -2
View File
@@ -70,9 +70,9 @@ static const wchar_t* disableEnhancementsValueName = L"{1da5d803-d492-4edd-8c23-
static const wchar_t* installVersion = L"2"; static const wchar_t* installVersion = L"2";
static PROPERTYKEY guidPropertyKey = {{0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e}, 4}; static PROPERTYKEY guidPropertyKey = {{0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e}, 4};
vector<shared_ptr<AbstractAPOInfo> > DeviceAPOInfo::loadAllInfos(bool input) vector<shared_ptr<AbstractAPOInfo>> DeviceAPOInfo::loadAllInfos(bool input)
{ {
vector<shared_ptr<AbstractAPOInfo> > result; vector<shared_ptr<AbstractAPOInfo>> result;
vector<wstring> deviceGuidStrings = RegistryHelper::enumSubKeys(input ? captureKeyPath : renderKeyPath); vector<wstring> deviceGuidStrings = RegistryHelper::enumSubKeys(input ? captureKeyPath : renderKeyPath);
wstring defaultDeviceGuid = getDefaultDevice(input); wstring defaultDeviceGuid = getDefaultDevice(input);
+1 -1
View File
@@ -63,7 +63,7 @@ public:
} }
}; };
static std::vector<std::shared_ptr<AbstractAPOInfo> > loadAllInfos(bool input); static std::vector<std::shared_ptr<AbstractAPOInfo>> loadAllInfos(bool input);
static std::wstring getDefaultDevice(bool input, int role = 1); static std::wstring getDefaultDevice(bool input, int role = 1);
static bool checkProtectedAudioDG(bool fix); static bool checkProtectedAudioDG(bool fix);
static bool checkAPORegistration(bool fix); static bool checkAPORegistration(bool fix);
+1 -1
View File
@@ -44,7 +44,7 @@ void AnalysisPlotScene::setFreqData(fftwf_complex* freqData, int frameCount, uns
update(); update();
} }
vector<FilterNode> AnalysisPlotScene::getNodes() const const vector<FilterNode>& AnalysisPlotScene::getNodes() const
{ {
return nodes; return nodes;
} }
+1 -1
View File
@@ -34,7 +34,7 @@ public:
void setFreqData(fftwf_complex* freqData, int frameCount, unsigned sampleRate); void setFreqData(fftwf_complex* freqData, int frameCount, unsigned sampleRate);
std::vector<FilterNode> getNodes() const; const std::vector<FilterNode>& getNodes() const;
private: private:
std::vector<FilterNode> nodes; std::vector<FilterNode> nodes;
+1 -1
View File
@@ -36,7 +36,7 @@ void AnalysisPlotView::drawBackground(QPainter* painter, const QRectF& rect)
painter->setRenderHint(QPainter::Antialiasing, true); painter->setRenderHint(QPainter::Antialiasing, true);
AnalysisPlotScene* s = qobject_cast<AnalysisPlotScene*>(scene()); AnalysisPlotScene* s = qobject_cast<AnalysisPlotScene*>(scene());
std::vector<FilterNode>& nodes = s->getNodes(); const std::vector<FilterNode>& nodes = s->getNodes();
GainIterator gainIterator(nodes); GainIterator gainIterator(nodes);
QPainterPath path; QPainterPath path;
bool first = true; bool first = true;
+1
View File
@@ -20,6 +20,7 @@
#pragma once #pragma once
#include <QThread> #include <QThread>
#include <QMutex>
#include <QWaitCondition> #include <QWaitCondition>
#include <fftw3.h> #include <fftw3.h>
+6 -6
View File
@@ -94,7 +94,7 @@ FilterTable::~FilterTable()
factories.clear(); factories.clear();
} }
void FilterTable::initialize(QScrollArea* scrollArea, const QList<shared_ptr<AbstractAPOInfo> >& outputDevices, const QList<shared_ptr<AbstractAPOInfo> >& inputDevices) void FilterTable::initialize(QScrollArea* scrollArea, const QList<shared_ptr<AbstractAPOInfo>>& outputDevices, const QList<shared_ptr<AbstractAPOInfo>>& inputDevices)
{ {
this->scrollArea = scrollArea; this->scrollArea = scrollArea;
this->outputDevices = outputDevices; this->outputDevices = outputDevices;
@@ -144,7 +144,7 @@ void FilterTable::updateGuis()
timer.start(); timer.start();
gridLayout = new QGridLayout(this); gridLayout = new QGridLayout(this);
gridLayout->setMargin(0); gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setSpacing(0); gridLayout->setSpacing(0);
gridLayout->setColumnStretch(0, 0); gridLayout->setColumnStretch(0, 0);
gridLayout->setColumnStretch(1, 1); gridLayout->setColumnStretch(1, 1);
@@ -926,7 +926,7 @@ void FilterTable::keyPressEvent(QKeyEvent* event)
void FilterTable::wheelEvent(QWheelEvent* event) void FilterTable::wheelEvent(QWheelEvent* event)
{ {
scrollingNow = true; scrollingNow = true;
scrollStartPoint = event->globalPos(); scrollStartPoint = event->globalPosition();
QWidget::wheelEvent(event); QWidget::wheelEvent(event);
} }
@@ -939,7 +939,7 @@ bool FilterTable::eventFilter(QObject* obj, QEvent* event)
if (type == QEvent::Wheel) if (type == QEvent::Wheel)
{ {
QWheelEvent* wheelEvent = (QWheelEvent*)event; QWheelEvent* wheelEvent = (QWheelEvent*)event;
scrollStartPoint = wheelEvent->globalPos(); scrollStartPoint = wheelEvent->globalPosition();
QWidget* widget = qobject_cast<QWidget*>(obj); QWidget* widget = qobject_cast<QWidget*>(obj);
if (widget != NULL) if (widget != NULL)
@@ -1059,12 +1059,12 @@ const QSet<FilterTable::Item*>& FilterTable::getSelectedItems() const
return selected; return selected;
} }
const QList<shared_ptr<AbstractAPOInfo> >& FilterTable::getOutputDevices() const const QList<shared_ptr<AbstractAPOInfo>>& FilterTable::getOutputDevices() const
{ {
return outputDevices; return outputDevices;
} }
const QList<shared_ptr<AbstractAPOInfo> >& FilterTable::getInputDevices() const const QList<shared_ptr<AbstractAPOInfo>>& FilterTable::getInputDevices() const
{ {
return inputDevices; return inputDevices;
} }
+6 -6
View File
@@ -57,7 +57,7 @@ public:
explicit FilterTable(MainWindow* mainWindow, QWidget* parent = 0); explicit FilterTable(MainWindow* mainWindow, QWidget* parent = 0);
~FilterTable(); ~FilterTable();
void initialize(QScrollArea* scrollArea, const QList<std::shared_ptr<AbstractAPOInfo> >& outputDevices, const QList<std::shared_ptr<AbstractAPOInfo> >& inputDevices); void initialize(QScrollArea* scrollArea, const QList<std::shared_ptr<AbstractAPOInfo>>& outputDevices, const QList<std::shared_ptr<AbstractAPOInfo>>& inputDevices);
void updateDeviceAndChannelMask(std::shared_ptr<AbstractAPOInfo> selectedDevice, int selectedChannelMask); void updateDeviceAndChannelMask(std::shared_ptr<AbstractAPOInfo> selectedDevice, int selectedChannelMask);
void updateGuis(); void updateGuis();
void propagateChannels(); void propagateChannels();
@@ -72,8 +72,8 @@ public:
void deleteSelectedLines(); void deleteSelectedLines();
void selectAll(); void selectAll();
const QList<std::shared_ptr<AbstractAPOInfo> >& getOutputDevices() const; const QList<std::shared_ptr<AbstractAPOInfo>>& getOutputDevices() const;
const QList<std::shared_ptr<AbstractAPOInfo> >& getInputDevices() const; const QList<std::shared_ptr<AbstractAPOInfo>>& getInputDevices() const;
std::shared_ptr<AbstractAPOInfo> getSelectedDevice() const; std::shared_ptr<AbstractAPOInfo> getSelectedDevice() const;
int getSelectedChannelMask() const; int getSelectedChannelMask() const;
@@ -135,9 +135,9 @@ private:
Item* selectionStart = NULL; Item* selectionStart = NULL;
QList<IFilterGUIFactory*> factories; QList<IFilterGUIFactory*> factories;
bool scrollingNow = false; bool scrollingNow = false;
QPoint scrollStartPoint; QPointF scrollStartPoint;
QList<std::shared_ptr<AbstractAPOInfo> > outputDevices; QList<std::shared_ptr<AbstractAPOInfo>> outputDevices;
QList<std::shared_ptr<AbstractAPOInfo> > inputDevices; QList<std::shared_ptr<AbstractAPOInfo>> inputDevices;
std::shared_ptr<AbstractAPOInfo> selectedDevice; std::shared_ptr<AbstractAPOInfo> selectedDevice;
int selectedChannelMask; int selectedChannelMask;
QString configPath; QString configPath;
+2 -2
View File
@@ -170,7 +170,7 @@ void FilterTableRow::on_actionEditText_triggered(bool checked)
{ {
if (checked) if (checked)
{ {
if (!lastEditTime.isValid() || lastEditTime.elapsed() > 100) if (!lastEditTime.isValid() || lastEditTime.msecsTo(QDateTime::currentDateTimeUtc()) > 100)
{ {
ui->lineEdit->setText(item->text); ui->lineEdit->setText(item->text);
ui->stackedWidget->setCurrentIndex(0); ui->stackedWidget->setCurrentIndex(0);
@@ -199,7 +199,7 @@ void FilterTableRow::on_lineEdit_editingFinished()
else else
{ {
ui->stackedWidget->setCurrentIndex(1); ui->stackedWidget->setCurrentIndex(1);
lastEditTime.start(); lastEditTime = QDateTime::currentDateTimeUtc();
ui->actionEditText->setChecked(false); ui->actionEditText->setChecked(false);
} }
} }
+1 -1
View File
@@ -60,5 +60,5 @@ private:
FilterTable::Item* item; FilterTable::Item* item;
IFilterGUI* gui; IFilterGUI* gui;
bool editingDone = false; bool editingDone = false;
QTime lastEditTime; QDateTime lastEditTime;
}; };
+19
View File
@@ -0,0 +1,19 @@
/*
This file is part of Equalizer APO, a system-wide equalizer.
Copyright (C) %YEAR% Jonas Thedering
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+29 -19
View File
@@ -51,8 +51,8 @@ using namespace std;
MainWindow::MainWindow(QDir configDir, QWidget* parent) MainWindow::MainWindow(QDir configDir, QWidget* parent)
: QMainWindow(parent), ui(new Ui::MainWindow), configDir(configDir) : QMainWindow(parent), ui(new Ui::MainWindow), configDir(configDir)
{ {
outputDevices = QList<shared_ptr<AbstractAPOInfo> >::fromVector(QVector<shared_ptr<AbstractAPOInfo> >::fromStdVector(DeviceAPOInfo::loadAllInfos(false))); outputDevices = toQList(DeviceAPOInfo::loadAllInfos(false));
inputDevices = QList<shared_ptr<AbstractAPOInfo> >::fromVector(QVector<shared_ptr<AbstractAPOInfo> >::fromStdVector(DeviceAPOInfo::loadAllInfos(true))); inputDevices = toQList(DeviceAPOInfo::loadAllInfos(true));
defaultOutputDevice = NULL; defaultOutputDevice = NULL;
for (shared_ptr<AbstractAPOInfo>& apoInfo : outputDevices) for (shared_ptr<AbstractAPOInfo>& apoInfo : outputDevices)
@@ -141,7 +141,7 @@ MainWindow::MainWindow(QDir configDir, QWidget* parent)
if (autoLocale.language() != QLocale::German) if (autoLocale.language() != QLocale::German)
autoLocale = QLocale("en"); autoLocale = QLocale("en");
QLocale::Language languages[] = {QLocale::AnyLanguage, QLocale::English, QLocale::German}; QLocale::Language languages[] = {QLocale::AnyLanguage, QLocale::English, QLocale::German};
for (int i = 0; i < sizeof(languages) / sizeof(QLocale::Language); i++) for (size_t i = 0; i < sizeof(languages) / sizeof(QLocale::Language); i++)
{ {
QLocale::Language language = languages[i]; QLocale::Language language = languages[i];
QString languageName; QString languageName;
@@ -228,7 +228,7 @@ void MainWindow::runConfigurator()
{ {
// cannot use QProcess::startDetached because of UAC // cannot use QProcess::startDetached because of UAC
wstring file = (QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + "/Configurator.exe")).toStdWString(); wstring file = (QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + "/Configurator.exe")).toStdWString();
int result = (int)ShellExecuteW(NULL, L"open", file.c_str(), NULL, NULL, SW_SHOWNORMAL); unsigned long long result = (unsigned long long)ShellExecuteW(NULL, L"open", file.c_str(), NULL, NULL, SW_SHOWNORMAL);
if (result == SE_ERR_ACCESSDENIED) if (result == SE_ERR_ACCESSDENIED)
ShellExecuteW(NULL, L"runas", file.c_str(), NULL, NULL, SW_SHOWNORMAL); ShellExecuteW(NULL, L"runas", file.c_str(), NULL, NULL, SW_SHOWNORMAL);
} }
@@ -292,7 +292,7 @@ void MainWindow::load(QString path)
encodedLine.resize(encodedLine.size() - 1); encodedLine.resize(encodedLine.size() - 1);
wstring line = StringHelper::toWString(encodedLine, CP_UTF8); wstring line = StringHelper::toWString(encodedLine, CP_UTF8);
if (line.find(L'\uFFFD') != -1) if (line.find(L'\uFFFD') != wstring::npos)
line = StringHelper::toWString(encodedLine, CP_ACP); line = StringHelper::toWString(encodedLine, CP_ACP);
lines.append(QString::fromStdWString(line)); lines.append(QString::fromStdWString(line));
@@ -402,7 +402,7 @@ void MainWindow::closeEvent(QCloseEvent* event)
void MainWindow::deviceSelected(int index) void MainWindow::deviceSelected(int index)
{ {
shared_ptr<AbstractAPOInfo> apoInfo = deviceComboBox->itemData(index).value<shared_ptr<AbstractAPOInfo> >(); shared_ptr<AbstractAPOInfo> apoInfo = deviceComboBox->itemData(index).value<shared_ptr<AbstractAPOInfo>>();
if (apoInfo == NULL) if (apoInfo == NULL)
apoInfo = defaultOutputDevice; apoInfo = defaultOutputDevice;
@@ -415,7 +415,7 @@ void MainWindow::deviceSelected(int index)
const GUIChannelHelper::ChannelConfigurationInfo* selectedInfo = NULL; const GUIChannelHelper::ChannelConfigurationInfo* selectedInfo = NULL;
for (const GUIChannelHelper::ChannelConfigurationInfo& info : infos) for (const GUIChannelHelper::ChannelConfigurationInfo& info : infos)
{ {
if (info.channelMask == apoInfo->getChannelMask()) if (info.channelMask == (int)apoInfo->getChannelMask())
{ {
selectedInfo = &info; selectedInfo = &info;
break; break;
@@ -425,7 +425,7 @@ void MainWindow::deviceSelected(int index)
if (selectedInfo != NULL) if (selectedInfo != NULL)
channelConfigurationComboBox->addItem(tr("From device") + " (" + selectedInfo->name + ")", 0); channelConfigurationComboBox->addItem(tr("From device") + " (" + selectedInfo->name + ")", 0);
else if (apoInfo->getChannelCount() != 0) else if (apoInfo->getChannelCount() != 0)
channelConfigurationComboBox->addItem(tr("From device") + " (" + apoInfo->getChannelCount() + " channels)", 0); channelConfigurationComboBox->addItem((tr("From device") + " (%1 channels)").arg(apoInfo->getChannelCount()), 0);
else else
channelConfigurationComboBox->addItem(tr("From device") + " (? channels)", 0); channelConfigurationComboBox->addItem(tr("From device") + " (? channels)", 0);
} }
@@ -458,7 +458,7 @@ void MainWindow::channelConfigurationSelected(int index)
if (selectedDevice != NULL) if (selectedDevice != NULL)
{ {
unsigned channelCount = selectedDevice->getChannelCount(); unsigned channelCount = selectedDevice->getChannelCount();
if (channelMask != 0 && channelMask != selectedDevice->getChannelMask()) if (channelMask != 0 && channelMask != (int)selectedDevice->getChannelMask())
{ {
channelCount = 0; channelCount = 0;
for (int i = 0; i < 31; i++) for (int i = 0; i < 31; i++)
@@ -475,7 +475,7 @@ void MainWindow::channelConfigurationSelected(int index)
} }
vector<wstring> channelNames = ChannelHelper::getChannelNames(channelCount, channelMask); vector<wstring> channelNames = ChannelHelper::getChannelNames(channelCount, channelMask);
for (wstring channelName : channelNames) for (const wstring& channelName : channelNames)
{ {
ui->analysisChannelComboBox->addItem(QString::fromStdWString(channelName)); ui->analysisChannelComboBox->addItem(QString::fromStdWString(channelName));
} }
@@ -615,7 +615,7 @@ void MainWindow::on_actionSaveAs_triggered()
if (dialog.exec() == QDialog::Accepted) if (dialog.exec() == QDialog::Accepted)
{ {
QString savePath = dialog.selectedFiles().first(); QString savePath = dialog.selectedFiles().at(0);
save(filterTable, savePath); save(filterTable, savePath);
filterTable->setConfigPath(QDir::toNativeSeparators(savePath)); filterTable->setConfigPath(QDir::toNativeSeparators(savePath));
@@ -817,12 +817,12 @@ void MainWindow::on_actionResetAllGlobalPreferences_triggered()
if (QMessageBox::question(this, tr("Restart required"), tr("Configuration Editor will be restarted to apply the changed settings. Proceed?")) == QMessageBox::Yes) if (QMessageBox::question(this, tr("Restart required"), tr("Configuration Editor will be restarted to apply the changed settings. Proceed?")) == QMessageBox::Yes)
{ {
QSettings settings(QString::fromWCharArray(EDITOR_REGPATH), QSettings::NativeFormat); QSettings settings(QString::fromWCharArray(EDITOR_REGPATH), QSettings::NativeFormat);
for (QString key : settings.childGroups()) for (const QString& key : settings.childGroups())
{ {
if (key != "file-specific") if (key != "file-specific")
settings.remove(key); settings.remove(key);
} }
for (QString key : settings.childKeys()) for (const QString& key : settings.childKeys())
settings.remove(key); settings.remove(key);
restart = true; restart = true;
@@ -836,9 +836,9 @@ void MainWindow::on_actionResetAllFileSpecificPreferences_triggered()
if (QMessageBox::question(this, tr("Restart required"), tr("Configuration Editor will be restarted to apply the changed settings. Proceed?")) == QMessageBox::Yes) if (QMessageBox::question(this, tr("Restart required"), tr("Configuration Editor will be restarted to apply the changed settings. Proceed?")) == QMessageBox::Yes)
{ {
QSettings settings(QString::fromWCharArray(EDITOR_PER_FILE_REGPATH), QSettings::NativeFormat); QSettings settings(QString::fromWCharArray(EDITOR_PER_FILE_REGPATH), QSettings::NativeFormat);
for (QString key : settings.childGroups()) for (const QString& key : settings.childGroups())
settings.remove(key); settings.remove(key);
for (QString key : settings.childKeys()) for (const QString& key : settings.childKeys())
settings.remove(key); settings.remove(key);
restart = true; restart = true;
@@ -871,7 +871,7 @@ FilterTable* MainWindow::addTab(QString title, QString tooltip, QString configPa
void MainWindow::getDeviceAndChannelMask(shared_ptr<AbstractAPOInfo>* selectedDevice, int* channelMask) void MainWindow::getDeviceAndChannelMask(shared_ptr<AbstractAPOInfo>* selectedDevice, int* channelMask)
{ {
*selectedDevice = deviceComboBox->currentData().value<shared_ptr<AbstractAPOInfo> >(); *selectedDevice = deviceComboBox->currentData().value<shared_ptr<AbstractAPOInfo>>();
if (*selectedDevice == NULL) if (*selectedDevice == NULL)
*selectedDevice = defaultOutputDevice; *selectedDevice = defaultOutputDevice;
@@ -981,7 +981,7 @@ void MainWindow::loadPreferences()
{ {
for (int i = 0; i < deviceComboBox->count(); i++) for (int i = 0; i < deviceComboBox->count(); i++)
{ {
shared_ptr<AbstractAPOInfo> apoInfo = deviceComboBox->itemData(i).value<shared_ptr<AbstractAPOInfo> >(); shared_ptr<AbstractAPOInfo> apoInfo = deviceComboBox->itemData(i).value<shared_ptr<AbstractAPOInfo>>();
if (apoInfo != NULL) if (apoInfo != NULL)
{ {
if (QString::fromStdWString(apoInfo->getDeviceString()).compare(selectedDevice, Qt::CaseInsensitive) == 0) if (QString::fromStdWString(apoInfo->getDeviceString()).compare(selectedDevice, Qt::CaseInsensitive) == 0)
@@ -1055,7 +1055,7 @@ void MainWindow::savePreferences()
settings.setValue("geometry", saveGeometry()); settings.setValue("geometry", saveGeometry());
settings.setValue("windowState", saveState()); settings.setValue("windowState", saveState());
settings.setValue("instantMode", instantModeCheckBox->isChecked()); settings.setValue("instantMode", instantModeCheckBox->isChecked());
shared_ptr<AbstractAPOInfo> selectedDevice = deviceComboBox->currentData().value<shared_ptr<AbstractAPOInfo> >(); shared_ptr<AbstractAPOInfo> selectedDevice = deviceComboBox->currentData().value<shared_ptr<AbstractAPOInfo>>();
settings.setValue("selectedDevice", selectedDevice != NULL ? QString::fromStdWString(selectedDevice->getDeviceString()) : ""); settings.setValue("selectedDevice", selectedDevice != NULL ? QString::fromStdWString(selectedDevice->getDeviceString()) : "");
int channelMask = channelConfigurationComboBox->currentData().toInt(); int channelMask = channelConfigurationComboBox->currentData().toInt();
settings.setValue("selectedChannelMask", channelMask); settings.setValue("selectedChannelMask", channelMask);
@@ -1105,7 +1105,7 @@ void MainWindow::updateRecentFiles()
if (separatorsFound == 1) if (separatorsFound == 1)
{ {
QList<QAction*> newActions; QList<QAction*> newActions;
for (QString recentFile : recentFiles) for (const QString& recentFile : recentFiles)
{ {
QAction* newAction = new QAction(recentFile, ui->menuFile); QAction* newAction = new QAction(recentFile, ui->menuFile);
connect(newAction, SIGNAL(triggered(bool)), this, SLOT(recentFileSelected())); connect(newAction, SIGNAL(triggered(bool)), this, SLOT(recentFileSelected()));
@@ -1124,3 +1124,13 @@ void MainWindow::updateRecentFiles()
} }
} }
} }
template<class T> QList<T> MainWindow::toQList(const std::vector<T>& vector)
{
QList<T> list;
list.reserve((int)vector.size());
for (T t : vector)
list.append(t);
return list;
}
+3 -2
View File
@@ -98,6 +98,7 @@ private:
void loadPreferences(); void loadPreferences();
void savePreferences(); void savePreferences();
void updateRecentFiles(); void updateRecentFiles();
template<class T> QList<T> toQList(const std::vector<T>& vector);
Ui::MainWindow* ui; Ui::MainWindow* ui;
@@ -105,8 +106,8 @@ private:
QCheckBox* instantModeCheckBox; QCheckBox* instantModeCheckBox;
QComboBox* deviceComboBox; QComboBox* deviceComboBox;
QComboBox* channelConfigurationComboBox; QComboBox* channelConfigurationComboBox;
QList<std::shared_ptr<AbstractAPOInfo> > outputDevices; QList<std::shared_ptr<AbstractAPOInfo>> outputDevices;
QList<std::shared_ptr<AbstractAPOInfo> > inputDevices; QList<std::shared_ptr<AbstractAPOInfo>> inputDevices;
std::shared_ptr<AbstractAPOInfo> defaultOutputDevice; std::shared_ptr<AbstractAPOInfo> defaultOutputDevice;
AnalysisPlotScene* analysisPlotScene; AnalysisPlotScene* analysisPlotScene;
AnalysisThread* analysisThread = NULL; AnalysisThread* analysisThread = NULL;
+3 -1
View File
@@ -48,7 +48,9 @@ IFilterGUI* BiQuadFilterGUIFactory::createFilterGUI(QString& command, QString& p
if (command.startsWith("Filter")) if (command.startsWith("Filter"))
{ {
BiQuadFilterFactory factory; BiQuadFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
BiQuadFilter* filter = (BiQuadFilter*)filters[0]; BiQuadFilter* filter = (BiQuadFilter*)filters[0];
+1 -1
View File
@@ -37,7 +37,7 @@ ChannelFilterGUI::ChannelFilterGUI(const QString& parameters, int selectedChanne
selectedChannels.clear(); selectedChannels.clear();
QStringList words = parameters.trimmed().split(' ', QString::SkipEmptyParts); QStringList words = parameters.trimmed().split(' ', Qt::SkipEmptyParts);
for (QString word : words) for (QString word : words)
if (word.length() > 0) if (word.length() > 0)
selectedChannels.append(word.toUpper()); selectedChannels.append(word.toUpper());
+1 -1
View File
@@ -92,7 +92,7 @@ ChannelFilterGUIDialog::ChannelFilterGUIDialog(QWidget* parent, QStringList sele
else if (channelName == "LFE" && remainingSelectedChannels.removeOne("SUB")) else if (channelName == "LFE" && remainingSelectedChannels.removeOne("SUB"))
checked = true; checked = true;
if (remainingSelectedChannels.removeOne(QString(channelIndex))) if (remainingSelectedChannels.removeOne(QString("%1").arg(channelIndex)))
checked = true; checked = true;
checkBox->setChecked(checked); checkBox->setChecked(checked);
} }
+2 -2
View File
@@ -67,7 +67,7 @@ QPainterPath CopyFilterGUIConnectionItem::shape() const
double length = line().length(); double length = line().length();
if (length > 0) if (length > 0)
{ {
double offset = min(length, DPIHelper::scale(maxArrowSize)); double offset = fmin(length, DPIHelper::scale(maxArrowSize));
QLineF unit = l.unitVector(); QLineF unit = l.unitVector();
QLineF normal = l.normalVector().unitVector(); QLineF normal = l.normalVector().unitVector();
QPointF v(unit.dx(), unit.dy()); QPointF v(unit.dx(), unit.dy());
@@ -131,7 +131,7 @@ void CopyFilterGUIConnectionItem::paint(QPainter* painter, const QStyleOptionGra
painter->drawLine(line()); painter->drawLine(line());
double length = line().length(); double length = line().length();
double offset = min(length, DPIHelper::scale(maxArrowSize)); double offset = fmin(length, DPIHelper::scale(maxArrowSize));
QLineF unit = l.unitVector(); QLineF unit = l.unitVector();
QLineF normal = l.normalVector().unitVector(); QLineF normal = l.normalVector().unitVector();
QPointF v(unit.dx(), unit.dy()); QPointF v(unit.dx(), unit.dy());
+3 -1
View File
@@ -45,7 +45,9 @@ IFilterGUI* CopyFilterGUIFactory::createFilterGUI(QString& command, QString& par
if (command == "Copy") if (command == "Copy")
{ {
CopyFilterFactory factory; CopyFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
CopyFilter* filter = (CopyFilter*)filters[0]; CopyFilter* filter = (CopyFilter*)filters[0];
+3 -1
View File
@@ -40,7 +40,9 @@ IFilterGUI* DelayFilterGUIFactory::createFilterGUI(QString& command, QString& pa
if (command == "Delay") if (command == "Delay")
{ {
DelayFilterFactory factory; DelayFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
DelayFilter* filter = (DelayFilter*)filters[0]; DelayFilter* filter = (DelayFilter*)filters[0];
+1 -1
View File
@@ -64,7 +64,7 @@ void DeviceFilterGUI::load(const QString& parameters)
} }
else else
{ {
const QList<shared_ptr<AbstractAPOInfo> >& devices = factory->getDevices(); const QList<shared_ptr<AbstractAPOInfo>>& devices = factory->getDevices();
bool anyInstalled = false; bool anyInstalled = false;
for (const shared_ptr<AbstractAPOInfo>& apoInfo : devices) for (const shared_ptr<AbstractAPOInfo>& apoInfo : devices)
{ {
+3 -3
View File
@@ -45,7 +45,7 @@ DeviceFilterGUIDialog::DeviceFilterGUIDialog(DeviceFilterGUI* gui, DeviceFilterG
outputNode->setExpanded(true); outputNode->setExpanded(true);
QTreeWidgetItem* inputNode = new QTreeWidgetItem(ui->treeWidget, QStringList(tr("Capture devices"))); QTreeWidgetItem* inputNode = new QTreeWidgetItem(ui->treeWidget, QStringList(tr("Capture devices")));
inputNode->setExpanded(true); inputNode->setExpanded(true);
const QList<shared_ptr<AbstractAPOInfo> >& devices = factory->getDevices(); const QList<shared_ptr<AbstractAPOInfo>>& devices = factory->getDevices();
for (const shared_ptr<AbstractAPOInfo>& apoInfo : devices) for (const shared_ptr<AbstractAPOInfo>& apoInfo : devices)
{ {
QStringList values; QStringList values;
@@ -99,7 +99,7 @@ QString DeviceFilterGUIDialog::getPattern()
{ {
if (pattern != "") if (pattern != "")
pattern += "; "; pattern += "; ";
shared_ptr<AbstractAPOInfo> apoInfo = item->data(0, Qt::UserRole).value<shared_ptr<AbstractAPOInfo> >(); shared_ptr<AbstractAPOInfo> apoInfo = item->data(0, Qt::UserRole).value<shared_ptr<AbstractAPOInfo>>();
pattern += QString::fromStdWString(apoInfo->getDeviceString()); pattern += QString::fromStdWString(apoInfo->getDeviceString());
} }
} }
@@ -122,7 +122,7 @@ void DeviceFilterGUIDialog::on_showOnlyInstalledCheckBox_toggled(bool checked)
for (int j = 0; j < groupItem->childCount(); j++) for (int j = 0; j < groupItem->childCount(); j++)
{ {
QTreeWidgetItem* item = groupItem->child(j); QTreeWidgetItem* item = groupItem->child(j);
shared_ptr<AbstractAPOInfo> apoInfo = item->data(0, Qt::UserRole).value<shared_ptr<AbstractAPOInfo> >(); shared_ptr<AbstractAPOInfo> apoInfo = item->data(0, Qt::UserRole).value<shared_ptr<AbstractAPOInfo>>();
item->setHidden(item->checkState(0) != Qt::Checked && !apoInfo->isInstalled() && checked); item->setHidden(item->checkState(0) != Qt::Checked && !apoInfo->isInstalled() && checked);
} }
} }
+1 -1
View File
@@ -53,7 +53,7 @@ IFilterGUI* DeviceFilterGUIFactory::createFilterGUI(QString& command, QString& p
return result; return result;
} }
const QList<shared_ptr<AbstractAPOInfo> >& DeviceFilterGUIFactory::getDevices() const const QList<shared_ptr<AbstractAPOInfo>>& DeviceFilterGUIFactory::getDevices() const
{ {
return devices; return devices;
} }
+2 -2
View File
@@ -34,8 +34,8 @@ public:
QList<FilterTemplate> createFilterTemplates() override; QList<FilterTemplate> createFilterTemplates() override;
IFilterGUI* createFilterGUI(QString& command, QString& parameters) override; IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
const QList<std::shared_ptr<AbstractAPOInfo> >& getDevices() const; const QList<std::shared_ptr<AbstractAPOInfo>>& getDevices() const;
private: private:
QList<std::shared_ptr<AbstractAPOInfo> > devices; QList<std::shared_ptr<AbstractAPOInfo>> devices;
}; };
+3 -1
View File
@@ -52,7 +52,9 @@ IFilterGUI* GraphicEQFilterGUIFactory::createFilterGUI(QString& command, QString
if (command == "GraphicEQ") if (command == "GraphicEQ")
{ {
GraphicEQFilterFactory factory; GraphicEQFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
GraphicEQFilter* filter = (GraphicEQFilter*)filters[0]; GraphicEQFilter* filter = (GraphicEQFilter*)filters[0];
+1 -1
View File
@@ -62,7 +62,7 @@ void GraphicEQFilterGUIItem::paint(QPainter* painter, const QStyleOptionGraphics
QFontMetrics metrics(font); QFontMetrics metrics(font);
painter->setFont(font); painter->setFont(font);
QString text = QString::number(index + 1); QString text = QString::number(index + 1);
painter->drawText(-metrics.width(text) / 2, metrics.boundingRect('0').height() / 2, text); painter->drawText(-metrics.size(0, text).width() / 2, metrics.boundingRect('0').height() / 2, text);
} }
} }
+3 -1
View File
@@ -35,7 +35,9 @@ IFilterGUI* PreampFilterGUIFactory::createFilterGUI(QString& command, QString& p
if (command == "Preamp") if (command == "Preamp")
{ {
PreampFilterFactory factory; PreampFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
PreampFilter* filter = (PreampFilter*)filters[0]; PreampFilter* filter = (PreampFilter*)filters[0];
+17 -21
View File
@@ -433,31 +433,27 @@ void VSTPluginFilterGUI::updatePermissionWarning()
{ {
QByteArray bytes = QByteArray::fromBase64(QString::fromStdWString(chunkData).toUtf8()); QByteArray bytes = QByteArray::fromBase64(QString::fromStdWString(chunkData).toUtf8());
QString string = QString::fromUtf8(bytes.data(), bytes.length()); QString string = QString::fromUtf8(bytes.data(), bytes.length());
QRegExp regexp("[A-Za-z]:(?:\\\\[\\w \\(\\)-]+)+\\.[A-Za-z]{3}"); QRegularExpression regexp("[A-Za-z]:(?:\\\\[\\w \\(\\)-]+)+\\.[A-Za-z]{3}");
int offset = 0; QRegularExpressionMatchIterator it = regexp.globalMatch(string);
while (offset >= 0) while (it.hasNext())
{ {
offset = regexp.indexIn(string, offset); QRegularExpressionMatch m = it.next();
if (offset >= 0) QString path = m.captured();
QFile file(path);
if (file.exists())
{ {
QString path = regexp.cap(); ACCESS_MASK mask = GENERIC_READ;
QFile file(path); try
if (file.exists())
{ {
ACCESS_MASK mask = GENERIC_READ; mask = RegistryHelper::getFileAccessForUser(path.toStdWString(), SECURITY_LOCAL_SERVICE_RID);
try
{
mask = RegistryHelper::getFileAccessForUser(path.toStdWString(), SECURITY_LOCAL_SERVICE_RID);
}
catch (RegistryException e)
{
// ignore
}
if ((mask & GENERIC_READ) != GENERIC_READ && (mask & FILE_GENERIC_READ) != FILE_GENERIC_READ)
files.append(path);
} }
offset += regexp.matchedLength(); catch (RegistryException e)
{
// ignore
}
if ((mask & GENERIC_READ) != GENERIC_READ && (mask & FILE_GENERIC_READ) != FILE_GENERIC_READ)
files.append(path);
} }
} }
} }
+3 -1
View File
@@ -40,7 +40,9 @@ IFilterGUI* VSTPluginFilterGUIFactory::createFilterGUI(QString& command, QString
if (command == "VSTPlugin") if (command == "VSTPlugin")
{ {
VSTPluginFilterFactory factory; VSTPluginFilterFactory factory;
std::vector<IFilter*> filters = factory.createFilter(L"", command.toStdWString(), parameters.toStdWString()); std::wstring commandWStr = command.toStdWString();
std::wstring paramWStr = parameters.toStdWString();
std::vector<IFilter*> filters = factory.createFilter(L"", commandWStr, paramWStr);
if (!filters.empty()) if (!filters.empty())
{ {
VSTPluginFilter* filter = (VSTPluginFilter*)filters[0]; VSTPluginFilter* filter = (VSTPluginFilter*)filters[0];
+6 -6
View File
@@ -47,17 +47,17 @@ int main(int argc, char* argv[])
QSettings settings(QString::fromWCharArray(EDITOR_REGPATH), QSettings::NativeFormat); QSettings settings(QString::fromWCharArray(EDITOR_REGPATH), QSettings::NativeFormat);
QVariant languageValue = settings.value("language"); QVariant languageValue = settings.value("language");
if (languageValue.isValid()) if (languageValue.isValid())
QLocale::setDefault(languageValue.toString()); QLocale::setDefault(QLocale(languageValue.toString()));
else else
QLocale::setDefault(QLocale::system()); QLocale::setDefault(QLocale::system());
QTranslator qtTranslator; QTranslator qtTranslator;
qtTranslator.load(QLocale(), ":/translations/qtbase", "_"); if (qtTranslator.load(QLocale(), ":/translations/qtbase", "_"))
application.installTranslator(&qtTranslator); application.installTranslator(&qtTranslator);
QTranslator editorTranslator; QTranslator editorTranslator;
editorTranslator.load(QLocale(), ":/translations/Editor", "_"); if (editorTranslator.load(QLocale(), ":/translations/Editor", "_"))
application.installTranslator(&editorTranslator); application.installTranslator(&editorTranslator);
QString configPath = QDir::currentPath(); QString configPath = QDir::currentPath();
if (RegistryHelper::keyExists(APP_REGPATH) && RegistryHelper::valueExists(APP_REGPATH, L"ConfigPath")) if (RegistryHelper::keyExists(APP_REGPATH) && RegistryHelper::valueExists(APP_REGPATH, L"ConfigPath"))
@@ -82,7 +82,7 @@ int main(int argc, char* argv[])
if (args.isEmpty() && w.isEmpty()) if (args.isEmpty() && w.isEmpty())
args = QStringList("config.txt"); args = QStringList("config.txt");
for (QString arg : args) for (const QString& arg : args)
w.load(configDir.absoluteFilePath(arg)); w.load(configDir.absoluteFilePath(arg));
w.doChecks(); w.doChecks();
+1 -1
View File
@@ -35,7 +35,7 @@ QRectF ChannelGraphItem::boundingRect() const
if (cachedRect.isNull()) if (cachedRect.isNull())
{ {
QFontMetrics metrics(scene()->font()); QFontMetrics metrics(scene()->font());
int width = metrics.width(name); int width = metrics.size(0, name).width();
// we only use upper case characters and digits, so everything is above the baseline // we only use upper case characters and digits, so everything is above the baseline
int height = metrics.ascent(); int height = metrics.ascent();
// make it at least quadratic // make it at least quadratic
+2 -2
View File
@@ -63,7 +63,7 @@ void FrequencyPlotHRuler::paintEvent(QPaintEvent*)
text = QString("%0").arg(hz); text = QString("%0").arg(hz);
else else
text = QString("%0k").arg(hz / 1000); text = QString("%0k").arg(hz / 1000);
if (metrics.width(text) + 2 < s->hzToX(hz + hzBase) - x) if (metrics.size(0, text).width() + 2 < s->hzToX(hz + hzBase) - x)
painter.drawText(x - topLeft.x() + offsetLeft + 1, 0, 0, height(), Qt::TextDontClip | Qt::AlignCenter, text); painter.drawText(x - topLeft.x() + offsetLeft + 1, 0, 0, height(), Qt::TextDontClip | Qt::AlignCenter, text);
} }
@@ -125,7 +125,7 @@ void FrequencyPlotHRuler::paintEvent(QPaintEvent*)
void FrequencyPlotHRuler::wheelEvent(QWheelEvent* event) void FrequencyPlotHRuler::wheelEvent(QWheelEvent* event)
{ {
FrequencyPlotView* view = qobject_cast<FrequencyPlotView*>(parentWidget()); FrequencyPlotView* view = qobject_cast<FrequencyPlotView*>(parentWidget());
view->zoom(event->angleDelta().y(), 0, event->x() - view->viewportMargins().left(), 0); view->zoom(event->angleDelta().y(), 0, event->position().x() - view->viewportMargins().left(), 0);
} }
void FrequencyPlotHRuler::mouseMoveEvent(QMouseEvent* event) void FrequencyPlotHRuler::mouseMoveEvent(QMouseEvent* event)
+1 -1
View File
@@ -101,5 +101,5 @@ void FrequencyPlotVRuler::wheelEvent(QWheelEvent* event)
void FrequencyPlotVRuler::mouseMoveEvent(QMouseEvent* event) void FrequencyPlotVRuler::mouseMoveEvent(QMouseEvent* event)
{ {
FrequencyPlotView* view = qobject_cast<FrequencyPlotView*>(parentWidget()); FrequencyPlotView* view = qobject_cast<FrequencyPlotView*>(parentWidget());
view->setLastMousePos(QPoint(0, min(event->y(), view->viewport()->height() - 1))); view->setLastMousePos(QPoint(0, fmin(event->y(), view->viewport()->height() - 1)));
} }
+1 -1
View File
@@ -179,7 +179,7 @@ void FrequencyPlotView::wheelEvent(QWheelEvent* event)
{ {
event->accept(); event->accept();
int delta = event->angleDelta().y(); int delta = event->angleDelta().y();
zoom(delta, delta, event->x(), event->y()); zoom(delta, delta, event->position().x(), event->position().y());
} }
void FrequencyPlotView::scrollContentsBy(int dx, int dy) void FrequencyPlotView::scrollContentsBy(int dx, int dy)
+1 -1
View File
@@ -28,7 +28,7 @@ MiddleClickTabBar::MiddleClickTabBar(QWidget* parent)
void MiddleClickTabBar::mouseReleaseEvent(QMouseEvent* event) void MiddleClickTabBar::mouseReleaseEvent(QMouseEvent* event)
{ {
if (event->button() == Qt::MidButton) if (event->button() == Qt::MiddleButton)
{ {
int tabIndex = tabAt(event->pos()); int tabIndex = tabAt(event->pos());
if (tabIndex != -1) if (tabIndex != -1)
+2 -2
View File
@@ -40,8 +40,8 @@ QSize ResizingLineEdit::sizeHint() const
QSize originalSize = QLineEdit::sizeHint(); QSize originalSize = QLineEdit::sizeHint();
QFontMetrics metrics = fontMetrics(); QFontMetrics metrics = fontMetrics();
QSize contentSize(metrics.width(text()), metrics.height()); QSize contentSize(metrics.size(0, text()));
QStyleOptionFrameV2 opt; QStyleOptionFrame opt;
initStyleOption(&opt); initStyleOption(&opt);
QSize size = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, contentSize, this); QSize size = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, contentSize, this);
+17 -9
View File
@@ -22,7 +22,7 @@
<ProjectGuid>{5AF4EE2B-CC80-4AE5-A786-86FACC0CC649}</ProjectGuid> <ProjectGuid>{5AF4EE2B-CC80-4AE5-A786-86FACC0CC649}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>EqualizerAPO</RootNamespace> <RootNamespace>EqualizerAPO</RootNamespace>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -30,28 +30,28 @@
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<UseOfAtl>false</UseOfAtl> <UseOfAtl>false</UseOfAtl>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<UseOfAtl>false</UseOfAtl> <UseOfAtl>false</UseOfAtl>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -95,11 +95,13 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(OutDir)Common.lib;muparserxd.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(OutDir)Common.lib;muparserxd.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;legacy_stdio_definitions.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile> <ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile>
</Link> </Link>
<Midl> <Midl>
@@ -112,11 +114,13 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;_DEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(OutDir)Common.lib;muparserxd.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(OutDir)Common.lib;muparserxd.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;legacy_stdio_definitions.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile> <ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile>
</Link> </Link>
<Midl> <Midl>
@@ -132,13 +136,15 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>$(OutDir)Common.lib;muparserx.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(OutDir)Common.lib;muparserx.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;legacy_stdio_definitions.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile> <ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
@@ -151,13 +157,15 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;USE_WINDDK;NDEBUG;_WINDOWS;_USRDLL;EQUALIZERAPO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>$(OutDir)Common.lib;muparserx.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>$(OutDir)Common.lib;muparserx.lib;audioeng.lib;version.lib;wmcodecdspuuid.lib;AudioBaseProcessingObject.lib;legacy_stdio_definitions.lib;audiomediatypecrt.lib;Shlwapi.lib;authz.lib;crypt32.lib;dbghelp.lib;libsndfile-1.lib;libfftw3f-3.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile> <ModuleDefinitionFile>EqualizerAPO.def</ModuleDefinitionFile>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
+68 -17
View File
@@ -1,6 +1,11 @@
!include "LogicLib.nsh"
!include "MUI2.nsh" !include "MUI2.nsh"
!include "NSISpcre.nsh" !include "NSISpcre.nsh"
!include "WinVer.nsh"
;Use ANSI because NSISpcre's Unicode version is less optimized
Unicode false
ManifestDPIAware true
;Use more efficient compression ;Use more efficient compression
SetCompressor /SOLID lzma SetCompressor /SOLID lzma
@@ -32,12 +37,14 @@ SetCompressor /SOLID lzma
Var StartMenuFolder Var StartMenuFolder
Var OldStartMenuFolder Var OldStartMenuFolder
Var OLDINSTDIR
;-------------------------------- ;--------------------------------
;Interface Settings ;Interface Settings
!define MUI_ABORTWARNING !define MUI_ABORTWARNING
!define MUI_COMPONENTSPAGE_NODESC !define MUI_COMPONENTSPAGE_NODESC
!define MUI_WELCOMEPAGE_TITLE_3LINES
;-------------------------------- ;--------------------------------
;Pages ;Pages
@@ -71,29 +78,47 @@ SetCompressor /SOLID lzma
;Macros ;Macros
!macro RenameAndDelete path !macro RenameAndDelete path
IfFileExists "${path}" 0 +3 ${If} ${FileExists} "${path}"
Rename "${path}" "${path}.old" Rename "${path}" "${path}.old"
Delete /REBOOTOK "${path}.old" Delete /REBOOTOK "${path}.old"
${EndIf}
!macroend !macroend
LangString UCRTError ${LANG_ENGLISH} "Your Windows installation is missing required updates to use this program. Please install remaining Windows updates or the Visual C++ Redistributable for Visual Studio 2015 - 2019.$\n$\nDo you want to download the Visual C++ Redistributable now?"
LangString UCRTError ${LANG_GERMAN} "Ihrer Windows-Installation fehlen benötigte Updates, um dieses Programm zu verwenden. Bitte installieren Sie ausstehende Windows-Updates oder das Visual C++ Redistributable für Visual Studio 2015 - 2019.$\n$\nMöchten Sie jetzt das Visual C++ Redistributable herunterladen?"
;-------------------------------- ;--------------------------------
;Functions ;Functions
Function .onInit Function .onInit
SetRegView 64 !if ${LIBPATH} == "lib64"
SetRegView 64
!endif
;Get installation folder from registry if available ;Get installation folder from registry if available
ReadRegStr $INSTDIR HKLM ${REGPATH} "InstallPath" ReadRegStr $INSTDIR HKLM ${REGPATH} "InstallPath"
;Use default installation folder otherwise ;Use default installation folder otherwise
StrCmp $INSTDIR "" 0 +2 ${If} $INSTDIR == ""
StrCpy $INSTDIR "$PROGRAMFILES64\EqualizerAPO" StrCpy $INSTDIR "$PROGRAMFILES64\EqualizerAPO"
${EndIf}
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
;Try to replace version number in start menu folder ;Try to replace version number in start menu folder
${REReplace} $0 "Equalizer APO [0-9]+\.[0-9]+(?:\.[0-9]+)?" "$StartMenuFolder" "Equalizer APO ${VERSION}" 1 ${REReplace} $0 "Equalizer APO [0-9]+\.[0-9]+(?:\.[0-9]+)?" "$StartMenuFolder" "Equalizer APO ${VERSION}" 1
StrCmp $0 "" +2 0 ${If} $0 != ""
StrCpy $StartMenuFolder "$0" StrCpy $StartMenuFolder "$0"
${EndIf}
Call initCheck Call initCheck
${IfNot} ${AtLeastWin10}
System::Call 'KERNEL32::LoadLibrary(t "ucrtbase.dll")p.r0'
${If} $0 P= 0
MessageBox MB_YESNO|MB_ICONSTOP $(UCRTError) IDNO skipDownload
ExecShell "open" "${VCREDIST_URL}"
skipDownload:
Abort
${EndIf}
${EndIf}
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
@@ -109,13 +134,17 @@ Section "Install" SecInstall
;Rename before delete as these files may be in use ;Rename before delete as these files may be in use
!insertmacro RenameAndDelete "$INSTDIR\EqualizerAPO.dll" !insertmacro RenameAndDelete "$INSTDIR\EqualizerAPO.dll"
!insertmacro RenameAndDelete "$INSTDIR\libsndfile-1.dll"
!insertmacro RenameAndDelete "$INSTDIR\libfftw3f-3.dll" !insertmacro RenameAndDelete "$INSTDIR\libfftw3f-3.dll"
!insertmacro RenameAndDelete "$INSTDIR\libsndfile-1.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcp100.dll" !insertmacro RenameAndDelete "$INSTDIR\msvcp100.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcr100.dll" !insertmacro RenameAndDelete "$INSTDIR\msvcr100.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcp120.dll" !insertmacro RenameAndDelete "$INSTDIR\msvcp120.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcr120.dll" !insertmacro RenameAndDelete "$INSTDIR\msvcr120.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcp140.dll"
!insertmacro RenameAndDelete "$INSTDIR\msvcp140_1.dll"
!insertmacro RenameAndDelete "$INSTDIR\VoicemeeterClient.exe" !insertmacro RenameAndDelete "$INSTDIR\VoicemeeterClient.exe"
!insertmacro RenameAndDelete "$INSTDIR\vcruntime140.dll"
!insertmacro RenameAndDelete "$INSTDIR\vcruntime140_1.dll"
File "${BINPATH}\EqualizerAPO.dll" File "${BINPATH}\EqualizerAPO.dll"
File "${BINPATH}\Configurator.exe" File "${BINPATH}\Configurator.exe"
@@ -124,22 +153,28 @@ Section "Install" SecInstall
File "${BINPATH_EDITOR}\Editor.exe" File "${BINPATH_EDITOR}\Editor.exe"
File "${LIBPATH}\libsndfile-1.dll"
File "${LIBPATH}\libfftw3f-3.dll" File "${LIBPATH}\libfftw3f-3.dll"
File "${LIBPATH}\msvcp120.dll" File "${LIBPATH}\libsndfile-1.dll"
File "${LIBPATH}\msvcr120.dll" File "${LIBPATH}\msvcp140.dll"
File "${LIBPATH}\msvcp140_1.dll"
File "${LIBPATH}\Qt5Core.dll" File "${LIBPATH}\Qt5Core.dll"
File "${LIBPATH}\Qt5Gui.dll" File "${LIBPATH}\Qt5Gui.dll"
File "${LIBPATH}\Qt5Widgets.dll" File "${LIBPATH}\Qt5Widgets.dll"
File "${LIBPATH}\vcruntime140.dll"
!if ${LIBPATH} == "lib64"
File "${LIBPATH}\vcruntime140_1.dll"
!endif
CreateDirectory "$INSTDIR\qt" CreateDirectory "$INSTDIR\qt"
CreateDirectory "$INSTDIR\qt\platforms"
CreateDirectory "$INSTDIR\qt\imageformats" CreateDirectory "$INSTDIR\qt\imageformats"
CreateDirectory "$INSTDIR\qt\platforms"
CreateDirectory "$INSTDIR\qt\styles"
File /oname=qt\platforms\qwindows.dll "${LIBPATH}\qt\platforms\qwindows.dll"
File /oname=qt\imageformats\qgif.dll "${LIBPATH}\qt\imageformats\qgif.dll" File /oname=qt\imageformats\qgif.dll "${LIBPATH}\qt\imageformats\qgif.dll"
File /oname=qt\imageformats\qico.dll "${LIBPATH}\qt\imageformats\qico.dll" File /oname=qt\imageformats\qico.dll "${LIBPATH}\qt\imageformats\qico.dll"
File /oname=qt\imageformats\qjpeg.dll "${LIBPATH}\qt\imageformats\qjpeg.dll" File /oname=qt\imageformats\qjpeg.dll "${LIBPATH}\qt\imageformats\qjpeg.dll"
File /oname=qt\platforms\qwindows.dll "${LIBPATH}\qt\platforms\qwindows.dll"
File /oname=qt\styles\qwindowsvistastyle.dll "${LIBPATH}\qt\styles\qwindowsvistastyle.dll"
File "Configuration tutorial (online).url" File "Configuration tutorial (online).url"
File "Configuration reference (online).url" File "Configuration reference (online).url"
@@ -159,10 +194,21 @@ Section "Install" SecInstall
;Grant write access to the config directory for all users ;Grant write access to the config directory for all users
AccessControl::GrantOnFile "$INSTDIR\config" "(S-1-5-32-545)" "FullAccess" AccessControl::GrantOnFile "$INSTDIR\config" "(S-1-5-32-545)" "FullAccess"
ReadRegStr $OLDINSTDIR HKLM ${REGPATH} "InstallPath"
WriteRegStr HKLM ${REGPATH} "InstallPath" "$INSTDIR" WriteRegStr HKLM ${REGPATH} "InstallPath" "$INSTDIR"
WriteRegStr HKLM ${REGPATH} "ConfigPath" "$INSTDIR\config"
WriteRegStr HKLM ${REGPATH} "EnableTrace" "false"
;Write ConfigPath if non-existing or if InstallPath has changed
ReadRegStr $0 HKLM ${REGPATH} "ConfigPath"
${If} $0 == ""
${OrIf} $INSTDIR != $OLDINSTDIR
WriteRegStr HKLM ${REGPATH} "ConfigPath" "$INSTDIR\config"
${EndIf}
ReadRegStr $0 HKLM ${REGPATH} "EnableTrace"
${If} $0 == ""
WriteRegStr HKLM ${REGPATH} "EnableTrace" "false"
${EndIf}
WriteUninstaller "$INSTDIR\Uninstall.exe" WriteUninstaller "$INSTDIR\Uninstall.exe"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
@@ -205,7 +251,9 @@ Section /o un.$(SecRemoveName)
SectionEnd SectionEnd
Section "-un.Uninstall" Section "-un.Uninstall"
SetRegView 64 !if ${LIBPATH} == "lib64"
SetRegView 64
!endif
ExecWait '"$INSTDIR\Configurator.exe" /u' ExecWait '"$INSTDIR\Configurator.exe" /u'
@@ -222,14 +270,17 @@ Section "-un.Uninstall"
RMDir /r "$INSTDIR\qt" RMDir /r "$INSTDIR\qt"
!if ${LIBPATH} == "lib64"
Delete /REBOOTOK "$INSTDIR\vcruntime140_1.dll"
!endif
Delete /REBOOTOK "$INSTDIR\vcruntime140.dll"
Delete "$INSTDIR\Qt5Widgets.dll" Delete "$INSTDIR\Qt5Widgets.dll"
Delete "$INSTDIR\Qt5Gui.dll" Delete "$INSTDIR\Qt5Gui.dll"
Delete "$INSTDIR\Qt5Core.dll" Delete "$INSTDIR\Qt5Core.dll"
Delete /REBOOTOK "$INSTDIR\msvcr120.dll" Delete /REBOOTOK "$INSTDIR\msvcp140_1.dll"
Delete /REBOOTOK "$INSTDIR\msvcp120.dll" Delete /REBOOTOK "$INSTDIR\msvcp140.dll"
Delete /REBOOTOK "$INSTDIR\libfftw3f-3.dll"
Delete /REBOOTOK "$INSTDIR\libsndfile-1.dll" Delete /REBOOTOK "$INSTDIR\libsndfile-1.dll"
Delete /REBOOTOK "$INSTDIR\libfftw3f-3.dll"
Delete "$INSTDIR\Editor.exe" Delete "$INSTDIR\Editor.exe"
Delete "$INSTDIR\VoicemeeterClient.exe" Delete "$INSTDIR\VoicemeeterClient.exe"
+2 -1
View File
@@ -1,7 +1,8 @@
!define BINPATH "..\Release" !define BINPATH "..\Release"
!define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_5_7_MSVC2013_32bit-Release\release" !define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_5_15_2_MSVC2019_32bit\release"
!define LIBPATH "lib32" !define LIBPATH "lib32"
!define VCREDIST_URL "https://aka.ms/vs/16/release/vc_redist.x86.exe"
!include "Setup.nsi" !include "Setup.nsi"
+2 -1
View File
@@ -1,7 +1,8 @@
!define BINPATH "..\x64\Release" !define BINPATH "..\x64\Release"
!define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_5_7_MSVC2013_64bit-Release\release" !define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_5_15_2_MSVC2019_64bit\release"
!define LIBPATH "lib64" !define LIBPATH "lib64"
!define VCREDIST_URL "https://aka.ms/vs/16/release/vc_redist.x64.exe"
!include "Setup.nsi" !include "Setup.nsi"
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -38,7 +38,7 @@ static const wchar_t* clientFilename = L"VoicemeeterClient.exe";
static const wchar_t* voicemeeterClientKeyPath = USER_REGPATH L"\\Voicemeeter Client"; static const wchar_t* voicemeeterClientKeyPath = USER_REGPATH L"\\Voicemeeter Client";
static const wchar_t* sampleRateValueName = L"sampleRate"; static const wchar_t* sampleRateValueName = L"sampleRate";
typedef NTSTATUS (NTAPI* pfnNtQueryInformationProcess)( typedef NTSTATUS (NTAPI * pfnNtQueryInformationProcess)(
IN HANDLE ProcessHandle, IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass, IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation, OUT PVOID ProcessInformation,
@@ -46,7 +46,7 @@ typedef NTSTATUS (NTAPI* pfnNtQueryInformationProcess)(
OUT PULONG ReturnLength OPTIONAL OUT PULONG ReturnLength OPTIONAL
); );
void VoicemeeterAPOInfo::prependInfos(vector<shared_ptr<AbstractAPOInfo> >& list) void VoicemeeterAPOInfo::prependInfos(vector<shared_ptr<AbstractAPOInfo>>& list)
{ {
wstring voicemeeterDirectory; wstring voicemeeterDirectory;
if (RegistryHelper::keyExists(voicemeeterKeyPath)) if (RegistryHelper::keyExists(voicemeeterKeyPath))
+1 -1
View File
@@ -27,7 +27,7 @@
class VoicemeeterAPOInfo : public AbstractAPOInfo class VoicemeeterAPOInfo : public AbstractAPOInfo
{ {
public: public:
static void prependInfos(std::vector<std::shared_ptr<AbstractAPOInfo> >& list); static void prependInfos(std::vector<std::shared_ptr<AbstractAPOInfo>>& list);
VoicemeeterAPOInfo(const std::wstring& connectionName, bool voicemeeterInstalled); VoicemeeterAPOInfo(const std::wstring& connectionName, bool voicemeeterInstalled);
+13 -4
View File
@@ -22,31 +22,32 @@
<ProjectGuid>{10F1DD37-EA50-46C2-810D-D01A1A0D4D2F}</ProjectGuid> <ProjectGuid>{10F1DD37-EA50-46C2-810D-D01A1A0D4D2F}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>VoicemeeterClient</RootNamespace> <RootNamespace>VoicemeeterClient</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
@@ -92,6 +93,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -105,6 +108,8 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -121,6 +126,8 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -139,6 +146,8 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp17</LanguageStandard>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
+12 -11
View File
@@ -1,22 +1,23 @@
call "%VS120COMNTOOLS%\vsvars32.bat" FOR /F "tokens=*" %%g IN ('"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere" -products * -property installationPath') do (SET vspath=%%g)
msbuild EqualizerAPO.sln /p:Configuration=release /p:platform=win32 /t:rebuild call "%vspath%\Common7\Tools\VsDevCmd.bat"
msbuild EqualizerAPO.sln /p:Configuration=release /p:platform=win32 /t:rebuild /m
if %ERRORLEVEL% GEQ 1 goto done if %ERRORLEVEL% GEQ 1 goto done
msbuild EqualizerAPO.sln /p:Configuration=release /p:platform=x64 /t:rebuild msbuild EqualizerAPO.sln /p:Configuration=release /p:platform=x64 /t:rebuild /m
if %ERRORLEVEL% GEQ 1 goto done if %ERRORLEVEL% GEQ 1 goto done
if not exist build-Editor-Desktop_Qt_5_7_MSVC2013_32bit-Release mkdir build-Editor-Desktop_Qt_5_7_MSVC2013_32bit-Release if not exist build-Editor-Desktop_Qt_5_15_2_MSVC2019_32bit mkdir build-Editor-Desktop_Qt_5_15_2_MSVC2019_32bit
cd build-Editor-Desktop_Qt_5_7_MSVC2013_32bit-Release cd build-Editor-Desktop_Qt_5_15_2_MSVC2019_32bit
call "%VCINSTALLDIR%vcvarsall.bat" x86 call "%vspath%\VC\Auxiliary\Build\vcvarsall.bat" x86
"C:\Qt\5.7\msvc2013\bin\qmake.exe" ..\Editor\Editor.pro -r -spec win32-msvc2013 "CONFIG+=release" "C:\Qt\5.15.2\msvc2019\bin\qmake.exe" ..\Editor\Editor.pro -r "CONFIG+=release"
"C:\Qt\Tools\QtCreator\bin\jom.exe" clean "C:\Qt\Tools\QtCreator\bin\jom.exe" clean
"C:\Qt\Tools\QtCreator\bin\jom.exe" "C:\Qt\Tools\QtCreator\bin\jom.exe"
if %ERRORLEVEL% GEQ 1 goto done if %ERRORLEVEL% GEQ 1 goto done
cd.. cd..
if not exist build-Editor-Desktop_Qt_5_7_MSVC2013_64bit-Release mkdir build-Editor-Desktop_Qt_5_7_MSVC2013_64bit-Release if not exist build-Editor-Desktop_Qt_5_15_2_MSVC2019_64bit mkdir build-Editor-Desktop_Qt_5_15_2_MSVC2019_64bit
cd build-Editor-Desktop_Qt_5_7_MSVC2013_64bit-Release cd build-Editor-Desktop_Qt_5_15_2_MSVC2019_64bit
call "%VCINSTALLDIR%vcvarsall.bat" amd64 call "%vspath%\VC\Auxiliary\Build\vcvarsall.bat" amd64
"C:\Qt\5.7\msvc2013_64\bin\qmake.exe" ..\Editor\Editor.pro -r -spec win32-msvc2013 "CONFIG+=release" "C:\Qt\5.15.2\msvc2019_64\bin\qmake.exe" ..\Editor\Editor.pro -r "CONFIG+=release"
"C:\Qt\Tools\QtCreator\bin\jom.exe" clean "C:\Qt\Tools\QtCreator\bin\jom.exe" clean
"C:\Qt\Tools\QtCreator\bin\jom.exe" "C:\Qt\Tools\QtCreator\bin\jom.exe"
if %ERRORLEVEL% GEQ 1 goto done if %ERRORLEVEL% GEQ 1 goto done
+2 -2
View File
@@ -27,8 +27,8 @@ class BiQuadFilter : public IFilter
{ {
public: public:
BiQuadFilter(BiQuad::Type type, double dbGain, double freq, double bandwidthOrQOrS, bool isBandwidthOrS, bool isCornerFreq); BiQuadFilter(BiQuad::Type type, double dbGain, double freq, double bandwidthOrQOrS, bool isBandwidthOrS, bool isCornerFreq);
virtual~BiQuadFilter(); virtual ~BiQuadFilter();
bool getInPlace() override{return true;} bool getInPlace() override {return true;}
std::vector<std::wstring> initialize(float sampleRate, unsigned maxFrameCount, std::vector<std::wstring> channelNames) override; std::vector<std::wstring> initialize(float sampleRate, unsigned maxFrameCount, std::vector<std::wstring> channelNames) override;
void process(float** output, float** input, unsigned frameCount) override; void process(float** output, float** input, unsigned frameCount) override;
+1 -1
View File
@@ -79,7 +79,7 @@ bool DeviceFilterFactory::matchDevice(const std::wstring& deviceString, const st
{ {
wstring value = StringHelper::trim(pattern) + L";"; wstring value = StringHelper::trim(pattern) + L";";
vector<vector<wstring> > fullList; vector<vector<wstring>> fullList;
vector<wstring> currentList; vector<wstring> currentList;
wstring currentWord; wstring currentWord;
@@ -20,7 +20,6 @@
#pragma once #pragma once
#include <string> #include <string>
#include <hash_map>
#include "IFilterFactory.h" #include "IFilterFactory.h"
#include "IFilter.h" #include "IFilter.h"
@@ -26,7 +26,7 @@
template<typename type> struct to_WString_type_traits template<typename type> struct to_WString_type_traits
{ {
static inline std::wstring cast_ToWString(type& input) {return std::wstring();} static inline std::wstring cast_ToWString(const type& input) {return std::wstring();}
}; };
template<> struct to_WString_type_traits<float> template<> struct to_WString_type_traits<float>
@@ -41,12 +41,12 @@ template<> struct to_WString_type_traits<double>
template<> struct to_WString_type_traits<int> template<> struct to_WString_type_traits<int>
{ {
static inline std::wstring cast_ToWString(const int& input) {return std::to_wstring((_Longlong)input);} static inline std::wstring cast_ToWString(const int& input) {return std::to_wstring((long long)input);}
}; };
template<> struct to_WString_type_traits<bool> template<> struct to_WString_type_traits<bool>
{ {
static inline std::wstring cast_ToWString(const bool& input) {return std::to_wstring((_Longlong)input);} static inline std::wstring cast_ToWString(const bool& input) {return std::to_wstring((long long)input);}
}; };
template<> struct to_WString_type_traits<std::string> template<> struct to_WString_type_traits<std::string>
@@ -99,7 +99,7 @@ template<> struct constructor_traits<std::wstring>
static inline std::wstring initFrom(std::wstring input) {return input;} static inline std::wstring initFrom(std::wstring input) {return input;}
}; };
template<> struct constructor_traits<std::vector<char> > template<> struct constructor_traits<std::vector<char>>
{ {
static inline std::wstring initFrom(std::vector<char> input) static inline std::wstring initFrom(std::vector<char> input)
{ {
@@ -49,7 +49,7 @@ HRESULT VolumeController::getVolume(float& currentVolume)
HRESULT VolumeController::setVolume(float volume) HRESULT VolumeController::setVolume(float volume)
{ {
volume = min(volume, _maxVol); volume = fmin(volume, _maxVol);
volume = max(volume, _minVol); volume = fmax(volume, _minVol);
return _endpointVolume->SetMasterVolumeLevel(volume, NULL); return _endpointVolume->SetMasterVolumeLevel(volume, NULL);
} }
+8 -4
View File
@@ -19,6 +19,7 @@
#include "stdafx.h" #include "stdafx.h"
#include <wincrypt.h> #include <wincrypt.h>
#include <inttypes.h>
#include "StringHelper.h" #include "StringHelper.h"
#include "version.h" #include "version.h"
#include "VSTPluginLibrary.h" #include "VSTPluginLibrary.h"
@@ -32,7 +33,7 @@ static intptr_t callback(AEffect* effect, int32_t opcode, int32_t index, intptr_
{ {
VSTPluginInstance* instance = effect != NULL ? (VSTPluginInstance*)effect->user : NULL; VSTPluginInstance* instance = effect != NULL ? (VSTPluginInstance*)effect->user : NULL;
#ifdef _DEBUG #ifdef _DEBUG
printf("vst: %p opcode: %d index: %d value: %d ptr: %p opt: %f user: %p\n", printf("vst: %p opcode: %d index: %d value: %" PRIdPTR " ptr: %p opt: %f user: %p\n",
effect, opcode, index, value, ptr, opt, effect != NULL ? effect->user : NULL); effect, opcode, index, value, ptr, opt, effect != NULL ? effect->user : NULL);
fflush(stdout); fflush(stdout);
#endif #endif
@@ -59,10 +60,10 @@ static intptr_t callback(AEffect* effect, int32_t opcode, int32_t index, intptr_
return 0; return 0;
case audioMasterNeedIdle: case audioMasterNeedIdle:
return effect->dispatcher(effect, effIdle, 0, 0, NULL, 0.0f); return effect != NULL ? effect->dispatcher(effect, effIdle, 0, 0, NULL, 0.0f) : 0;
case audioMasterUpdateDisplay: case audioMasterUpdateDisplay:
return effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f); return effect != NULL ? effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f) : 0;
case audioMasterGetTime: case audioMasterGetTime:
return 0; return 0;
@@ -199,6 +200,7 @@ std::wstring VSTPluginInstance::getName() const
char buf[256]; char buf[256];
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
effect->dispatcher(effect, effGetEffectName, 0, 0, buf, 0.0f); effect->dispatcher(effect, effGetEffectName, 0, 0, buf, 0.0f);
buf[255] = '\0'; // just to be sure
return StringHelper::toWString(buf, CP_UTF8); return StringHelper::toWString(buf, CP_UTF8);
} }
@@ -271,6 +273,7 @@ void VSTPluginInstance::writeToEffect(const std::wstring& chunkData, const std::
{ {
char buf[256]; char buf[256];
effect->dispatcher(effect, effGetParamName, i, 0, buf, 0.0f); effect->dispatcher(effect, effGetParamName, i, 0, buf, 0.0f);
buf[255] = '\0'; // just to be sure
wstring name = StringHelper::toWString(buf, CP_UTF8); wstring name = StringHelper::toWString(buf, CP_UTF8);
auto it = paramMap.find(name); auto it = paramMap.find(name);
if (it != paramMap.end()) if (it != paramMap.end())
@@ -291,7 +294,7 @@ void VSTPluginInstance::readFromEffect(std::wstring& chunkData, std::unordered_m
{ {
BYTE* chunk = NULL; BYTE* chunk = NULL;
int size = (int)effect->dispatcher(effect, effGetChunk, 1, 0, &chunk, 0.0f); int size = (int)effect->dispatcher(effect, effGetChunk, 1, 0, &chunk, 0.0f);
DWORD stringLength; DWORD stringLength = 0;
CryptBinaryToStringW(chunk, size, CRYPT_STRING_BASE64 | CRYPT_STRING_NOCRLF, NULL, &stringLength); CryptBinaryToStringW(chunk, size, CRYPT_STRING_BASE64 | CRYPT_STRING_NOCRLF, NULL, &stringLength);
wchar_t* string = new wchar_t[stringLength]; wchar_t* string = new wchar_t[stringLength];
if (CryptBinaryToStringW(chunk, size, CRYPT_STRING_BASE64 | CRYPT_STRING_NOCRLF, string, &stringLength) == TRUE) if (CryptBinaryToStringW(chunk, size, CRYPT_STRING_BASE64 | CRYPT_STRING_NOCRLF, string, &stringLength) == TRUE)
@@ -304,6 +307,7 @@ void VSTPluginInstance::readFromEffect(std::wstring& chunkData, std::unordered_m
{ {
char buf[256]; char buf[256];
effect->dispatcher(effect, effGetParamName, i, 0, buf, 0.0f); effect->dispatcher(effect, effGetParamName, i, 0, buf, 0.0f);
buf[255] = '\0'; // just to be sure
float value = effect->getParameter(effect, i); float value = effect->getParameter(effect, i);
paramMap[StringHelper::toWString(buf, CP_UTF8)] = value; paramMap[StringHelper::toWString(buf, CP_UTF8)] = value;
} }
+2 -2
View File
@@ -68,11 +68,11 @@ public:
private: private:
std::shared_ptr<VSTPluginLibrary> library; std::shared_ptr<VSTPluginLibrary> library;
AEffect* effect; AEffect* effect = NULL;
std::function<void()> automateFunc; std::function<void()> automateFunc;
std::function<void(int, int)> sizeWindowFunc; std::function<void(int, int)> sizeWindowFunc;
float sampleRate = 0.0f; float sampleRate = 0.0f;
int usedChannelCount; int usedChannelCount = -1;
int processLevel = 0; int processLevel = 0;
int language = 1; int language = 1;
}; };
+1 -1
View File
@@ -24,7 +24,7 @@
using namespace std; using namespace std;
std::unordered_map<std::wstring, std::weak_ptr<VSTPluginLibrary> > VSTPluginLibrary::instanceMap; std::unordered_map<std::wstring, std::weak_ptr<VSTPluginLibrary>> VSTPluginLibrary::instanceMap;
std::wstring VSTPluginLibrary::defaultPluginPath; std::wstring VSTPluginLibrary::defaultPluginPath;
std::shared_ptr<VSTPluginLibrary> VSTPluginLibrary::getInstance(const wstring& libPath) std::shared_ptr<VSTPluginLibrary> VSTPluginLibrary::getInstance(const wstring& libPath)
+1 -1
View File
@@ -43,7 +43,7 @@ protected:
private: private:
VSTPluginLibrary(const std::wstring& libPath); VSTPluginLibrary(const std::wstring& libPath);
static std::unordered_map<std::wstring, std::weak_ptr<VSTPluginLibrary> > instanceMap; static std::unordered_map<std::wstring, std::weak_ptr<VSTPluginLibrary>> instanceMap;
static std::wstring defaultPluginPath; static std::wstring defaultPluginPath;
std::wstring libPath; std::wstring libPath;
}; };
+1 -1
View File
@@ -85,7 +85,7 @@ void ReadRegDWORDFunction::Eval(ptr_val_type& ret, const ptr_val_type* arg, int
{ {
unsigned long value = RegistryHelper::readDWORDValue(key, valuename); unsigned long value = RegistryHelper::readDWORDValue(key, valuename);
*ret = (long)value; *ret = (int)value;
engine->watchRegistryKey(key); engine->watchRegistryKey(key);
} }
+2 -2
View File
@@ -28,7 +28,7 @@ class ReadRegStringFunction : public mup::ICallback
public: public:
ReadRegStringFunction(FilterEngine* engine); ReadRegStringFunction(FilterEngine* engine);
void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override; void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
const mup::char_type* GetDesc() const; const mup::char_type* GetDesc() const override;
mup::IToken* Clone() const override; mup::IToken* Clone() const override;
private: private:
@@ -40,7 +40,7 @@ class ReadRegDWORDFunction : public mup::ICallback
public: public:
ReadRegDWORDFunction(FilterEngine* engine); ReadRegDWORDFunction(FilterEngine* engine);
void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override; void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
const mup::char_type* GetDesc() const; const mup::char_type* GetDesc() const override;
mup::IToken* Clone() const override; mup::IToken* Clone() const override;
private: private:
+1 -1
View File
@@ -2,7 +2,7 @@
cd %~dp0 cd %~dp0
for /r %%f in (*.cpp *.h) do ( for /r %%f in (*.cpp *.h) do (
(Echo "%%f" | FIND /I "\build-" 1>NUL) || (Echo "%%f" | FIND /I "\resource.h" 1>NUL) || (Echo "%%f" | FIND /I "\libHybridConv-0.1.1\" 1>NUL) || (Echo "%%f" | FIND /I "\helpers\aeffectx.h" 1>NUL) || (Echo "%%f" | FIND /I "\helpers\UncaughtExceptions.h" 1>NUL) || (Echo "%%f" | FIND /I "\VoicemeeterClient\VoicemeeterRemote.h" 1>NUL) || ( (Echo "%%f" | FIND /I "\build-" 1>NUL) || (Echo "%%f" | FIND /I "\resource.h" 1>NUL) || (Echo "%%f" | FIND /I "\libHybridConv-0.1.1\" 1>NUL) || (Echo "%%f" | FIND /I "\helpers\aeffectx.h" 1>NUL) || (Echo "%%f" | FIND /I "\helpers\UncaughtExceptions.h" 1>NUL) || (Echo "%%f" | FIND /I "\VoicemeeterClient\VoicemeeterRemote.h" 1>NUL) || (
uncrustify -c uncrustify.cfg -l CPP --no-backup "%%f" uncrustify -c uncrustify.cfg -l CPP --replace --no-backup "%%f"
) )
) )
+19
View File
@@ -1 +1,20 @@
/*
This file is part of Equalizer APO, a system-wide equalizer.
Copyright (C) 2017 Jonas Thedering
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "stdafx.h" #include "stdafx.h"
+19
View File
@@ -1,3 +1,22 @@
/*
This file is part of Equalizer APO, a system-wide equalizer.
Copyright (C) 2017 Jonas Thedering
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _USE_MATH_DEFINES #define _USE_MATH_DEFINES
#include <cmath> #include <cmath>
#include <climits> #include <climits>
+2
View File
@@ -1,3 +1,4 @@
# for Uncrustify 0.65
tok_split_gte=false tok_split_gte=false
utf8_byte=false utf8_byte=false
utf8_force=false utf8_force=false
@@ -168,6 +169,7 @@ sp_after_angle=remove
sp_angle_paren=remove sp_angle_paren=remove
sp_angle_word=add sp_angle_word=add
sp_angle_shift=remove sp_angle_shift=remove
sp_permit_cpp11_shift=true
sp_before_sparen=add sp_before_sparen=add
sp_inside_sparen=remove sp_inside_sparen=remove
sp_inside_sparen_close=remove sp_inside_sparen_close=remove