├── AbstractAPOInfo.cpp
├── AbstractAPOInfo.h
├── Benchmark
├── Benchmark.cpp
├── Benchmark.vcxproj
└── Benchmark.vcxproj.filters
├── Common.vcxproj
├── Common.vcxproj.filters
├── DeviceAPOInfo.cpp
├── DeviceAPOInfo.h
├── DeviceSelector
├── DeviceSelector.cpp
├── DeviceSelector.h
├── DeviceSelector.qrc
├── DeviceSelector.rc
├── DeviceSelector.ui
├── DeviceSelector.vcxproj
├── DeviceSelector.vcxproj.filters
├── DeviceTestDialog.cpp
├── DeviceTestDialog.h
├── DeviceTestDialog.ui
├── DeviceTestThread.cpp
├── DeviceTestThread.h
├── OpacityIconEngine.cpp
├── OpacityIconEngine.h
├── ReceiveThread.cpp
├── ReceiveThread.h
├── icons
│ ├── circle-check.svg
│ ├── circle-error.svg
│ ├── circle-warning.svg
│ ├── circle.svg
│ └── preferences-system.ico
├── main.cpp
├── resource.h
├── stdafx.cpp
├── stdafx.h
└── translations
│ ├── DeviceSelector_de.ts
│ └── DeviceSelector_en.ts
├── Editor
├── AnalysisPlotScene.cpp
├── AnalysisPlotScene.h
├── AnalysisPlotView.cpp
├── AnalysisPlotView.h
├── AnalysisThread.cpp
├── AnalysisThread.h
├── CustomStyle.cpp
├── CustomStyle.h
├── Editor.pro
├── Editor.qrc
├── Editor.rc
├── FilterTable.cpp
├── FilterTable.h
├── FilterTableMimeData.cpp
├── FilterTableMimeData.h
├── FilterTableRow.cpp
├── FilterTableRow.h
├── FilterTableRow.ui
├── FilterTemplate.cpp
├── FilterTemplate.h
├── IFilterGUI.cpp
├── IFilterGUI.h
├── IFilterGUIFactory.cpp
├── IFilterGUIFactory.h
├── Licenseheader.txt
├── MainWindow.cpp
├── MainWindow.h
├── MainWindow.ui
├── guis
│ ├── BiQuadFilterGUI.cpp
│ ├── BiQuadFilterGUI.h
│ ├── BiQuadFilterGUI.ui
│ ├── BiQuadFilterGUIFactory.cpp
│ ├── BiQuadFilterGUIFactory.h
│ ├── ChannelFilterGUI.cpp
│ ├── ChannelFilterGUI.h
│ ├── ChannelFilterGUI.ui
│ ├── ChannelFilterGUIChannelItem.cpp
│ ├── ChannelFilterGUIChannelItem.h
│ ├── ChannelFilterGUIDialog.cpp
│ ├── ChannelFilterGUIDialog.h
│ ├── ChannelFilterGUIDialog.ui
│ ├── ChannelFilterGUIFactory.cpp
│ ├── ChannelFilterGUIFactory.h
│ ├── ChannelFilterGUIScene.cpp
│ ├── ChannelFilterGUIScene.h
│ ├── CommentFilterGUI.cpp
│ ├── CommentFilterGUI.h
│ ├── CommentFilterGUI.ui
│ ├── CommentFilterGUIFactory.cpp
│ ├── CommentFilterGUIFactory.h
│ ├── ConvolutionFilterGUI.cpp
│ ├── ConvolutionFilterGUI.h
│ ├── ConvolutionFilterGUI.ui
│ ├── ConvolutionFilterGUIFactory.cpp
│ ├── ConvolutionFilterGUIFactory.h
│ ├── CopyFilterGUI.cpp
│ ├── CopyFilterGUI.h
│ ├── CopyFilterGUI.ui
│ ├── CopyFilterGUIChannelItem.cpp
│ ├── CopyFilterGUIChannelItem.h
│ ├── CopyFilterGUIConnectionItem.cpp
│ ├── CopyFilterGUIConnectionItem.h
│ ├── CopyFilterGUIFactory.cpp
│ ├── CopyFilterGUIFactory.h
│ ├── CopyFilterGUIForm.cpp
│ ├── CopyFilterGUIForm.h
│ ├── CopyFilterGUIRow.cpp
│ ├── CopyFilterGUIRow.h
│ ├── CopyFilterGUIRow.ui
│ ├── CopyFilterGUIScene.cpp
│ ├── CopyFilterGUIScene.h
│ ├── DelayFilterGUI.cpp
│ ├── DelayFilterGUI.h
│ ├── DelayFilterGUI.ui
│ ├── DelayFilterGUIFactory.cpp
│ ├── DelayFilterGUIFactory.h
│ ├── DeviceFilterGUI.cpp
│ ├── DeviceFilterGUI.h
│ ├── DeviceFilterGUI.ui
│ ├── DeviceFilterGUIDialog.cpp
│ ├── DeviceFilterGUIDialog.h
│ ├── DeviceFilterGUIDialog.ui
│ ├── DeviceFilterGUIFactory.cpp
│ ├── DeviceFilterGUIFactory.h
│ ├── ExpressionFilterGUIFactory.cpp
│ ├── ExpressionFilterGUIFactory.h
│ ├── GraphicEQFilterGUI.cpp
│ ├── GraphicEQFilterGUI.h
│ ├── GraphicEQFilterGUI.ui
│ ├── GraphicEQFilterGUIFactory.cpp
│ ├── GraphicEQFilterGUIFactory.h
│ ├── GraphicEQFilterGUIItem.cpp
│ ├── GraphicEQFilterGUIItem.h
│ ├── GraphicEQFilterGUIScene.cpp
│ ├── GraphicEQFilterGUIScene.h
│ ├── GraphicEQFilterGUIView.cpp
│ ├── GraphicEQFilterGUIView.h
│ ├── IncludeFilterGUI.cpp
│ ├── IncludeFilterGUI.h
│ ├── IncludeFilterGUI.ui
│ ├── IncludeFilterGUIFactory.cpp
│ ├── IncludeFilterGUIFactory.h
│ ├── LoudnessCorrectionFilterGUI.cpp
│ ├── LoudnessCorrectionFilterGUI.h
│ ├── LoudnessCorrectionFilterGUI.ui
│ ├── LoudnessCorrectionFilterGUIDialog.cpp
│ ├── LoudnessCorrectionFilterGUIDialog.h
│ ├── LoudnessCorrectionFilterGUIDialog.ui
│ ├── LoudnessCorrectionFilterGUIFactory.cpp
│ ├── LoudnessCorrectionFilterGUIFactory.h
│ ├── PreampFilterGUI.cpp
│ ├── PreampFilterGUI.h
│ ├── PreampFilterGUI.ui
│ ├── PreampFilterGUIFactory.cpp
│ ├── PreampFilterGUIFactory.h
│ ├── StageFilterGUI.cpp
│ ├── StageFilterGUI.h
│ ├── StageFilterGUI.ui
│ ├── StageFilterGUIFactory.cpp
│ ├── StageFilterGUIFactory.h
│ ├── VSTPluginFilterGUI.cpp
│ ├── VSTPluginFilterGUI.h
│ ├── VSTPluginFilterGUI.ui
│ ├── VSTPluginFilterGUIDialog.cpp
│ ├── VSTPluginFilterGUIDialog.h
│ ├── VSTPluginFilterGUIDialog.ui
│ ├── VSTPluginFilterGUIFactory.cpp
│ └── VSTPluginFilterGUIFactory.h
├── helpers
│ ├── DisableWheelFilter.cpp
│ ├── DisableWheelFilter.h
│ ├── GUIChannelHelper.cpp
│ ├── GUIChannelHelper.h
│ ├── GUIHelper.cpp
│ ├── GUIHelper.h
│ ├── QtSndfileHandle.cpp
│ └── QtSndfileHandle.h
├── icons
│ ├── accessories-text-editor.ico
│ ├── applications-graphics-rotated.ico
│ ├── arrow_right.ico
│ ├── arrow_right.svg
│ ├── dark-mode
│ │ ├── invert_response.svg
│ │ ├── normalize_response.svg
│ │ ├── reset_response.svg
│ │ ├── toolbar-ext-h.svg
│ │ └── toolbar-ext-v.svg
│ ├── document-new.ico
│ ├── document-open.ico
│ ├── document-save-as.ico
│ ├── document-save.ico
│ ├── edit-copy.ico
│ ├── edit-cut.ico
│ ├── edit-delete.ico
│ ├── edit-paste.ico
│ ├── edit-select-all.ico
│ ├── format-justify-fill-rotated.ico
│ ├── go-up.ico
│ ├── invert_response.svg
│ ├── list-add-green.ico
│ ├── list-remove-red.ico
│ ├── normalize_response.svg
│ ├── power_off.svg
│ ├── power_on.svg
│ ├── reset_response.svg
│ ├── resize_corner.ico
│ ├── resize_corner.svg
│ └── resize_corner_20.svg
├── main.cpp
├── sounds
│ └── pinkNoise.flac
├── stable.h
├── translations
│ ├── Editor_de.qm
│ ├── Editor_de.ts
│ └── qtbase_de.qm
└── widgets
│ ├── ChannelGraphItem.cpp
│ ├── ChannelGraphItem.h
│ ├── ChannelGraphScene.cpp
│ ├── ChannelGraphScene.h
│ ├── CompactToolBar.cpp
│ ├── CompactToolBar.h
│ ├── EscapableLineEdit.cpp
│ ├── EscapableLineEdit.h
│ ├── ExponentialSpinBox.cpp
│ ├── ExponentialSpinBox.h
│ ├── FrequencyPlotHRuler.cpp
│ ├── FrequencyPlotHRuler.h
│ ├── FrequencyPlotItem.cpp
│ ├── FrequencyPlotItem.h
│ ├── FrequencyPlotScene.cpp
│ ├── FrequencyPlotScene.h
│ ├── FrequencyPlotVRuler.cpp
│ ├── FrequencyPlotVRuler.h
│ ├── FrequencyPlotView.cpp
│ ├── FrequencyPlotView.h
│ ├── MiddleClickTabBar.cpp
│ ├── MiddleClickTabBar.h
│ ├── MiddleClickTabWidget.cpp
│ ├── MiddleClickTabWidget.h
│ ├── ResizeCorner.cpp
│ ├── ResizeCorner.h
│ ├── ResizingLineEdit.cpp
│ └── ResizingLineEdit.h
├── EqualizerAPO.licenseheader
├── EqualizerAPO.sln
├── EqualizerAPO
├── ClassFactory.cpp
├── ClassFactory.h
├── DllMain.cpp
├── EqualizerAPO-ARM64.rc
├── EqualizerAPO.cpp
├── EqualizerAPO.def
├── EqualizerAPO.h
├── EqualizerAPO.rc
├── EqualizerAPO.vcxproj
├── EqualizerAPO.vcxproj.filters
├── EqualizerAPO64.rc
└── resource.h
├── FilterConfiguration.cpp
├── FilterConfiguration.h
├── FilterEngine.cpp
├── FilterEngine.h
├── IFilter.cpp
├── IFilter.h
├── IFilterFactory.h
├── License.txt
├── Release checklist.txt
├── Setup
├── Configuration reference (online).url
├── Configuration tutorial (online).url
├── Setup.nsi
├── Setup32.nsi
├── Setup64.nsi
├── SetupARM64.nsi
├── config
│ ├── config.txt
│ ├── demo.txt
│ ├── example.txt
│ ├── iir_lowpass.txt
│ ├── multichannel.txt
│ └── selective_delay.txt
├── lib32
│ ├── Qt6Core.dll
│ ├── Qt6Gui.dll
│ ├── Qt6Svg.dll
│ ├── Qt6Widgets.dll
│ ├── fftw3f.dll
│ ├── msvcp140.dll
│ ├── msvcp140_1.dll
│ ├── msvcp140_2.dll
│ ├── qt
│ │ ├── iconengines
│ │ │ └── qsvgicon.dll
│ │ ├── imageformats
│ │ │ ├── qico.dll
│ │ │ └── qsvg.dll
│ │ ├── platforms
│ │ │ └── qwindows.dll
│ │ └── styles
│ │ │ └── qmodernwindowsstyle.dll
│ ├── sndfile.dll
│ └── vcruntime140.dll
├── lib64
│ ├── Qt6Core.dll
│ ├── Qt6Gui.dll
│ ├── Qt6Svg.dll
│ ├── Qt6Widgets.dll
│ ├── fftw3f.dll
│ ├── msvcp140.dll
│ ├── msvcp140_1.dll
│ ├── msvcp140_2.dll
│ ├── qt
│ │ ├── iconengines
│ │ │ └── qsvgicon.dll
│ │ ├── imageformats
│ │ │ ├── qico.dll
│ │ │ └── qsvg.dll
│ │ ├── platforms
│ │ │ └── qwindows.dll
│ │ └── styles
│ │ │ └── qmodernwindowsstyle.dll
│ ├── sndfile.dll
│ ├── vcruntime140.dll
│ └── vcruntime140_1.dll
└── libARM64
│ ├── Qt6Core.dll
│ ├── Qt6Gui.dll
│ ├── Qt6Svg.dll
│ ├── Qt6Widgets.dll
│ ├── fftw3f.dll
│ ├── msvcp140.dll
│ ├── msvcp140_1.dll
│ ├── msvcp140_2.dll
│ ├── qt
│ ├── iconengines
│ │ └── qsvgicon.dll
│ ├── imageformats
│ │ ├── qico.dll
│ │ └── qsvg.dll
│ ├── platforms
│ │ └── qwindows.dll
│ └── styles
│ │ └── qmodernwindowsstyle.dll
│ ├── sndfile.dll
│ ├── vcruntime140.dll
│ └── vcruntime140_1.dll
├── VoicemeeterAPOInfo.cpp
├── VoicemeeterAPOInfo.h
├── VoicemeeterClient
├── VoicemeeterClient.cpp
├── VoicemeeterClient.h
├── VoicemeeterClient.rc
├── VoicemeeterClient.vcxproj
├── VoicemeeterClient.vcxproj.filters
├── VoicemeeterRemote.h
└── resource.h
├── Wiki
├── Configuration reference.txt
├── Developer.txt
├── Documentation.txt
├── EnhancementsTab.png
├── NoEnhancementsTab.png
├── RoomEQWizard-thumb.png
├── RoomEQWizard.png
├── RoomEQWizard.xcf
├── Stages.odg
├── Stages.png
├── Stages.svg
├── Transfer function.odf
├── Transfer function.png
├── UseOriginalAPO.png
└── UseOriginalAPO.xcf
├── build.bat
├── filters
├── BiQuad.cpp
├── BiQuad.h
├── BiQuadFilter.cpp
├── BiQuadFilter.h
├── BiQuadFilterFactory.cpp
├── BiQuadFilterFactory.h
├── ChannelFilter.cpp
├── ChannelFilter.h
├── ChannelFilterFactory.cpp
├── ChannelFilterFactory.h
├── ConvolutionFilter.cpp
├── ConvolutionFilter.h
├── ConvolutionFilterFactory.cpp
├── ConvolutionFilterFactory.h
├── CopyFilter.cpp
├── CopyFilter.h
├── CopyFilterFactory.cpp
├── CopyFilterFactory.h
├── DelayFilter.cpp
├── DelayFilter.h
├── DelayFilterFactory.cpp
├── DelayFilterFactory.h
├── DeviceFilterFactory.cpp
├── DeviceFilterFactory.h
├── ExpressionFilterFactory.cpp
├── ExpressionFilterFactory.h
├── GraphicEQFilter.cpp
├── GraphicEQFilter.h
├── GraphicEQFilterFactory.cpp
├── GraphicEQFilterFactory.h
├── IIRFilter.cpp
├── IIRFilter.h
├── IIRFilterFactory.cpp
├── IIRFilterFactory.h
├── IfFilterFactory.cpp
├── IfFilterFactory.h
├── IncludeFilterFactory.cpp
├── IncludeFilterFactory.h
├── PreampFilter.cpp
├── PreampFilter.h
├── PreampFilterFactory.cpp
├── PreampFilterFactory.h
├── StageFilterFactory.cpp
├── StageFilterFactory.h
├── VSTPluginFilter.cpp
├── VSTPluginFilter.h
├── VSTPluginFilterFactory.cpp
├── VSTPluginFilterFactory.h
└── loudnessCorrection
│ ├── LoudnessCorrectionFilter.cpp
│ ├── LoudnessCorrectionFilter.h
│ ├── LoudnessCorrectionFilterFactory.cpp
│ ├── LoudnessCorrectionFilterFactory.h
│ ├── ParameterArchive.h
│ ├── VolumeController.cpp
│ └── VolumeController.h
├── helpers
├── AbstractLibrary.cpp
├── AbstractLibrary.h
├── ChannelHelper.cpp
├── ChannelHelper.h
├── GainIterator.cpp
├── GainIterator.h
├── LogHelper.cpp
├── LogHelper.h
├── MemoryHelper.cpp
├── MemoryHelper.h
├── PrecisionTimer.h
├── RegistryHelper.cpp
├── RegistryHelper.h
├── ScopeGuard.h
├── ServiceHelper.cpp
├── ServiceHelper.h
├── StringHelper.cpp
├── StringHelper.h
├── UncaughtExceptions.h
├── VSTPluginInstance.cpp
├── VSTPluginInstance.h
├── VSTPluginLibrary.cpp
├── VSTPluginLibrary.h
└── aeffectx.h
├── libHybridConv-0.1.1
├── Makefile
├── hcTest.c
├── libHybridConv.c
├── libHybridConv.h
├── libHybridConv_eapo.cpp
└── libHybridConv_eapo.h
├── parser
├── LogicalOperators.cpp
├── LogicalOperators.h
├── RegexFunctions.cpp
├── RegexFunctions.h
├── RegistryFunctions.cpp
├── RegistryFunctions.h
├── StringOperators.cpp
└── StringOperators.h
├── reformat.bat
├── stdafx.cpp
├── stdafx.h
├── uncrustify.cfg
└── version.h
/AbstractAPOInfo.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 | #include "AbstractAPOInfo.h"
22 |
23 | AbstractAPOInfo::~AbstractAPOInfo()
24 | {
25 | }
26 |
--------------------------------------------------------------------------------
/Benchmark/Benchmark.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | helpers
8 |
9 |
10 |
11 |
12 |
13 | helpers
14 |
15 |
16 |
17 |
18 | {8c70f87a-7d86-4826-bfa1-7a4c4ec5efec}
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/DeviceSelector/DeviceSelector.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | translations/qtbase_de.qm
4 | translations/DeviceSelector_de.qm
5 | icons/circle.svg
6 | icons/circle-check.svg
7 | icons/circle-error.svg
8 | icons/circle-warning.svg
9 | translations/DeviceSelector_en.qm
10 | icons/preferences-system.ico
11 |
12 |
13 |
--------------------------------------------------------------------------------
/DeviceSelector/DeviceSelector.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/DeviceSelector/DeviceSelector.rc
--------------------------------------------------------------------------------
/DeviceSelector/DeviceTestDialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include "ui_DeviceTestDialog.h"
8 |
9 | class DeviceTestDialog : public QDialog
10 | {
11 | Q_OBJECT
12 |
13 | public:
14 | DeviceTestDialog(QWidget* parent = nullptr);
15 | std::vector> filterDevices(const std::vector>& devices);
16 | void addDevices(std::vector>& devices, QTreeWidgetItem* parentNode);
17 |
18 | protected:
19 | __override void closeEvent(QCloseEvent* event);
20 |
21 | private:
22 | Ui::DeviceTestDialogClass ui;
23 |
24 | QHash itemMap;
25 | QIcon animatedIcon;
26 | OpacityIconEngine* animatedIconEngine;
27 | DeviceTestThread* thread = nullptr;
28 |
29 | void log(const QString& message);
30 | void logError(const QString& message);
31 | void showErrorDialog(const QString& message);
32 | void setItemStatus(const QString& guid, bool postMix, ItemStatusType statusType);
33 | void animateIcon(const QVariant& value);
34 | void onThreadFinished();
35 | void onAbort(const QString& message, int code);
36 | };
37 |
--------------------------------------------------------------------------------
/DeviceSelector/OpacityIconEngine.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2024 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 | #include "OpacityIconEngine.h"
22 |
23 | OpacityIconEngine::OpacityIconEngine(const QIcon& icon)
24 | :icon(icon)
25 | {
26 | }
27 |
28 | void OpacityIconEngine::paint(QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state)
29 | {
30 | painter->setOpacity(opacity);
31 | icon.paint(painter, rect, Qt::AlignCenter, mode, state);
32 | }
33 |
34 | OpacityIconEngine* OpacityIconEngine::clone() const
35 | {
36 | OpacityIconEngine* engine = new OpacityIconEngine(icon);
37 | engine->setOpacity(opacity);
38 | return engine;
39 | }
40 |
41 | void OpacityIconEngine::setOpacity(qreal opacity)
42 | {
43 | this->opacity = opacity;
44 | }
45 |
--------------------------------------------------------------------------------
/DeviceSelector/OpacityIconEngine.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2024 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class OpacityIconEngine : public QIconEngine
25 | {
26 | public:
27 | OpacityIconEngine(const QIcon& icon);
28 | __override void paint(QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state);
29 | __override OpacityIconEngine* clone() const;
30 |
31 | void setOpacity(qreal opacity);
32 |
33 | private:
34 | QIcon icon;
35 | qreal opacity = 0.5;
36 | };
37 |
--------------------------------------------------------------------------------
/DeviceSelector/icons/preferences-system.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/DeviceSelector/icons/preferences-system.ico
--------------------------------------------------------------------------------
/DeviceSelector/stdafx.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2024 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 |
--------------------------------------------------------------------------------
/DeviceSelector/stdafx.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2024 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 | #define WIN32_LEAN_AND_MEAN
22 | #include
23 | #include "helpers/ScopeGuard.h"
24 |
--------------------------------------------------------------------------------
/DeviceSelector/translations/DeviceSelector_en.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DeviceTestThread
6 |
7 |
8 | Check failed for %n device(s).
9 |
10 | Check failed for one device.
11 | Check failed for %n devices.
12 |
13 |
14 |
15 |
16 | Checks done. Problems were detected for %n device(s).
17 |
18 | Checks done. Problems were detected for one device.
19 | Checks done. Problems were detected for %n devices.
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Editor/AnalysisPlotScene.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 | #include "AnalysisPlotScene.h"
22 |
23 | using namespace std;
24 |
25 | AnalysisPlotScene::AnalysisPlotScene(QObject* parent)
26 | : FrequencyPlotScene(parent)
27 | {
28 | }
29 |
30 | void AnalysisPlotScene::setFreqData(fftwf_complex* freqData, int frameCount, unsigned sampleRate)
31 | {
32 | nodes.clear();
33 | for (int i = 0; i < frameCount / 2; i++)
34 | {
35 | float freq = (i * 1.0f / frameCount) * sampleRate;
36 | // GainIterator can't handle 0 Hz node
37 | if (freq == 0.0f)
38 | freq = 0.001f;
39 | float gain = sqrt(freqData[i][0] * freqData[i][0] + freqData[i][1] * freqData[i][1]);
40 | float dbGain = log10(gain) * 20;
41 | nodes.push_back(FilterNode(freq, dbGain));
42 | }
43 |
44 | update();
45 | }
46 |
47 | const vector& AnalysisPlotScene::getNodes() const
48 | {
49 | return nodes;
50 | }
51 |
--------------------------------------------------------------------------------
/Editor/AnalysisPlotScene.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "Editor/widgets/FrequencyPlotScene.h"
26 | #include "helpers/GainIterator.h"
27 |
28 | class AnalysisPlotScene : public FrequencyPlotScene
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | AnalysisPlotScene(QObject* parent = 0);
34 |
35 | void setFreqData(fftwf_complex* freqData, int frameCount, unsigned sampleRate);
36 |
37 | const std::vector& getNodes() const;
38 |
39 | private:
40 | std::vector nodes;
41 | };
42 |
--------------------------------------------------------------------------------
/Editor/AnalysisPlotView.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/widgets/FrequencyPlotView.h"
23 |
24 | class AnalysisPlotView : public FrequencyPlotView
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | AnalysisPlotView(QWidget* parent = NULL);
30 |
31 | protected:
32 | void drawBackground(QPainter* painter, const QRectF& rect) override;
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/CustomStyle.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2016 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class CustomStyle : public QProxyStyle
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | CustomStyle(QStyle* style);
30 |
31 | int pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const override;
32 | QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override;
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/Editor.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | translations/Editor_de.qm
4 | translations/qtbase_de.qm
5 | icons/document-open.ico
6 | icons/document-save.ico
7 | icons/accessories-text-editor.ico
8 | icons/applications-graphics-rotated.ico
9 | icons/document-new.ico
10 | icons/document-save-as.ico
11 | icons/edit-copy.ico
12 | icons/edit-cut.ico
13 | icons/edit-delete.ico
14 | icons/edit-paste.ico
15 | icons/format-justify-fill-rotated.ico
16 | icons/go-up.ico
17 | icons/list-add-green.ico
18 | icons/list-remove-red.ico
19 | icons/arrow_right.ico
20 | icons/resize_corner.ico
21 | sounds/pinkNoise.flac
22 | icons/edit-select-all.ico
23 | icons/power_off.svg
24 | icons/power_on.svg
25 | icons/dark-mode/invert_response.svg
26 | icons/dark-mode/normalize_response.svg
27 | icons/dark-mode/reset_response.svg
28 | icons/invert_response.svg
29 | icons/normalize_response.svg
30 | icons/reset_response.svg
31 | icons/dark-mode/toolbar-ext-h.svg
32 | icons/dark-mode/toolbar-ext-v.svg
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Editor/Editor.rc:
--------------------------------------------------------------------------------
1 | # if defined(UNDER_CE)
2 | # include
3 | # else
4 | # include
5 | # endif
6 | #include "../version.h"
7 |
8 | #define S2(x) #x
9 | #define S(x) S2(x)
10 |
11 | IDI_ICON1 ICON DISCARDABLE "icons\\accessories-text-editor.ico"
12 |
13 | VS_VERSION_INFO VERSIONINFO
14 | FILEVERSION MAJOR,MINOR,REVISION,0
15 | PRODUCTVERSION MAJOR,MINOR,REVISION,0
16 | FILEFLAGSMASK 0x3fL
17 | #ifdef _DEBUG
18 | FILEFLAGS VS_FF_DEBUG
19 | #else
20 | FILEFLAGS 0x0L
21 | #endif
22 | FILEOS VOS__WINDOWS32
23 | FILETYPE VFT_DLL
24 | FILESUBTYPE 0x0L
25 | BEGIN
26 | BLOCK "StringFileInfo"
27 | BEGIN
28 | BLOCK "040904b0"
29 | BEGIN
30 | VALUE "FileDescription", "Equalizer APO Configuration Editor\0"
31 | VALUE "FileVersion", S(MAJOR) "." S(MINOR) "." S(REVISION) ".0"
32 | VALUE "LegalCopyright", "Copyright (C) 2017\0"
33 | VALUE "OriginalFilename", "Editor.exe\0"
34 | VALUE "ProductName", "Equalizer APO Configuration Editor\0"
35 | VALUE "ProductVersion", S(MAJOR) "." S(MINOR) "." S(REVISION) ".0"
36 | END
37 | END
38 | BLOCK "VarFileInfo"
39 | BEGIN
40 | VALUE "Translation", 0x0409, 1200
41 | END
42 | END
43 | /* End of Version info */
44 |
45 |
--------------------------------------------------------------------------------
/Editor/FilterTableMimeData.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "FilterTableMimeData.h"
21 |
22 | FilterTableMimeData::FilterTableMimeData()
23 | {
24 | }
25 |
26 | QList FilterTableMimeData::getPrefsList() const
27 | {
28 | return prefsList;
29 | }
30 |
31 | void FilterTableMimeData::setPrefsList(const QList& value)
32 | {
33 | prefsList = value;
34 | }
35 |
--------------------------------------------------------------------------------
/Editor/FilterTableMimeData.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class FilterTableMimeData : public QMimeData
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | FilterTableMimeData();
30 |
31 | QList getPrefsList() const;
32 | void setPrefsList(const QList& value);
33 |
34 | private:
35 | QList prefsList;
36 | };
37 |
--------------------------------------------------------------------------------
/Editor/FilterTemplate.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "FilterTemplate.h"
21 |
22 | FilterTemplate::FilterTemplate(QString name, QString line, QStringList path)
23 | : name(name), line(line), path(path)
24 | {
25 | }
26 |
27 | QString FilterTemplate::getName() const
28 | {
29 | return name;
30 | }
31 |
32 | void FilterTemplate::setName(const QString& value)
33 | {
34 | name = value;
35 | }
36 |
37 | QString FilterTemplate::getLine() const
38 | {
39 | return line;
40 | }
41 |
42 | void FilterTemplate::setLine(const QString& value)
43 | {
44 | line = value;
45 | }
46 |
47 | QStringList FilterTemplate::getPath() const
48 | {
49 | return path;
50 | }
51 |
52 | void FilterTemplate::setPath(const QStringList& value)
53 | {
54 | path = value;
55 | }
56 |
--------------------------------------------------------------------------------
/Editor/FilterTemplate.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | class FilterTemplate
23 | {
24 | public:
25 | FilterTemplate() {}
26 | FilterTemplate(QString name, QString line, QStringList path);
27 |
28 | QString getName() const;
29 | void setName(const QString& value);
30 |
31 | virtual QString getLine() const;
32 | void setLine(const QString& value);
33 |
34 | QStringList getPath() const;
35 | void setPath(const QStringList& value);
36 |
37 | private:
38 | QString name;
39 | QString line;
40 | QStringList path;
41 | };
42 |
43 | Q_DECLARE_METATYPE(FilterTemplate)
44 |
--------------------------------------------------------------------------------
/Editor/IFilterGUI.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "IFilterGUI.h"
21 |
22 | IFilterGUI::IFilterGUI(QWidget* parent)
23 | : QWidget(parent)
24 | {
25 | }
26 |
27 | IFilterGUI::~IFilterGUI()
28 | {
29 | }
30 |
--------------------------------------------------------------------------------
/Editor/IFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 | #include
25 | #include
26 |
27 | class IFilterGUI : public QWidget
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | IFilterGUI(QWidget* parent = 0);
33 | virtual ~IFilterGUI();
34 |
35 | virtual void configureChannels(std::vector& channelNames) {}
36 |
37 | virtual void store(QString& command, QString& parameters) = 0;
38 |
39 | virtual void loadPreferences(const QVariantMap& prefs) {}
40 | virtual void storePreferences(QVariantMap& prefs) {}
41 |
42 | signals:
43 | void updateModel();
44 | void updateChannels();
45 | };
46 |
--------------------------------------------------------------------------------
/Editor/IFilterGUIFactory.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "IFilterGUIFactory.h"
21 |
22 | IFilterGUIFactory::~IFilterGUIFactory()
23 | {
24 | }
25 |
--------------------------------------------------------------------------------
/Editor/IFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "FilterTemplate.h"
23 | #include "IFilterGUI.h"
24 |
25 | class FilterTable;
26 |
27 | class IFilterGUIFactory : public QObject
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | virtual ~IFilterGUIFactory();
33 |
34 | virtual void initialize(FilterTable* filterTable) {}
35 |
36 | virtual QList createFilterTemplates()
37 | {
38 | return QList();
39 | }
40 |
41 | virtual void startOfFile(const QString& configPath) {}
42 | virtual IFilterGUI* createFilterGUI(QString& command, QString& parameters) = 0;
43 | virtual IFilterGUI* decorateFilterGUI(IFilterGUI* gui)
44 | {
45 | return gui;
46 | }
47 | virtual void endOfFile(const QString& configPath) {}
48 | };
49 |
--------------------------------------------------------------------------------
/Editor/Licenseheader.txt:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) %YEAR% Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 |
--------------------------------------------------------------------------------
/Editor/guis/BiQuadFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class BiQuadFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | explicit BiQuadFilterGUIFactory();
30 |
31 | QList createFilterTemplates() override;
32 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 | #include "ChannelFilterGUIScene.h"
24 |
25 | namespace Ui {
26 | class ChannelFilterGUI;
27 | }
28 |
29 | class ChannelFilterGUI : public IFilterGUI
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | explicit ChannelFilterGUI(const QString& parameters, int selectedChannelMask);
35 | ~ChannelFilterGUI();
36 | void configureChannels(std::vector& channelNames) override;
37 | void store(QString& command, QString& parameters) override;
38 |
39 | private slots:
40 | void on_pushButton_clicked();
41 | void updateSelectedChannels();
42 |
43 | private:
44 | void refreshGui();
45 |
46 | Ui::ChannelFilterGUI* ui;
47 | QStringList selectedChannels;
48 | int selectedChannelMask;
49 | std::vector channelNames;
50 | ChannelFilterGUIScene* scene;
51 | };
52 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUIChannelItem.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #include "ChannelFilterGUIScene.h"
23 | #include "ChannelFilterGUIChannelItem.h"
24 |
25 | ChannelFilterGUIChannelItem::ChannelFilterGUIChannelItem(const QString& name)
26 | : ChannelGraphItem(name)
27 | {
28 | setFlag(ItemIsSelectable);
29 | }
30 |
31 | void ChannelFilterGUIChannelItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
32 | {
33 | QColor color;
34 |
35 | if (isSelected())
36 | {
37 | color = QColor(176, 229, 255);
38 | }
39 | else
40 | {
41 | painter->setPen(QColor(156, 156, 156));
42 | color = QColor(204, 204, 204);
43 | }
44 |
45 | ChannelGraphItem::paint(painter, color);
46 | }
47 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUIChannelItem.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/widgets/ChannelGraphItem.h"
23 |
24 | class ChannelFilterGUIChannelItem : public ChannelGraphItem
25 | {
26 | public:
27 | ChannelFilterGUIChannelItem(const QString& name);
28 |
29 | enum {Type = UserType + 2};
30 | virtual int type() const
31 | {
32 | return Type;
33 | }
34 |
35 | void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
36 | };
37 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUIDialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | namespace Ui {
26 | class ChannelFilterGUIDialog;
27 | }
28 |
29 | class ChannelFilterGUIDialog : public QDialog
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | explicit ChannelFilterGUIDialog(QWidget* parent, QStringList selectedChannels, int selectedChannelMask, const std::vector& channelNames);
35 | ~ChannelFilterGUIDialog();
36 |
37 | QStringList getSelectedChannels() const;
38 |
39 | private slots:
40 | void on_addButton_clicked();
41 |
42 | void on_removeButton_clicked();
43 |
44 | void on_allChannelsCheckBox_toggled(bool checked);
45 |
46 | private:
47 | Ui::ChannelFilterGUIDialog* ui;
48 | QList checkBoxes;
49 | };
50 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "DeviceAPOInfo.h"
23 | #include "Editor/IFilterGUIFactory.h"
24 |
25 | class ChannelFilterGUIFactory : public IFilterGUIFactory
26 | {
27 | Q_OBJECT
28 |
29 | public:
30 | ChannelFilterGUIFactory();
31 |
32 | void initialize(FilterTable* filterTable) override;
33 |
34 | QList createFilterTemplates() override;
35 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
36 |
37 | private:
38 | FilterTable* filterTable;
39 | };
40 |
--------------------------------------------------------------------------------
/Editor/guis/ChannelFilterGUIScene.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "Editor/widgets/ChannelGraphScene.h"
26 |
27 | class ChannelFilterGUIScene : public ChannelGraphScene
28 | {
29 | Q_OBJECT
30 | public:
31 | explicit ChannelFilterGUIScene();
32 |
33 | void load(std::vector channelNames, QStringList selectedChannels);
34 | QStringList getSelectedChannels();
35 | };
36 |
--------------------------------------------------------------------------------
/Editor/guis/CommentFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 |
24 | namespace Ui {
25 | class CommentFilterGUI;
26 | }
27 |
28 | class CommentFilterGUI : public IFilterGUI
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | explicit CommentFilterGUI(IFilterGUI* child, bool isComment);
34 | ~CommentFilterGUI();
35 | void configureChannels(std::vector& channelNames) override;
36 | void store(QString& command, QString& parameters) override;
37 |
38 | void loadPreferences(const QVariantMap& prefs) override;
39 | void storePreferences(QVariantMap& prefs) override;
40 |
41 | private slots:
42 | void on_actionPowerOn_toggled(bool checked);
43 |
44 | private:
45 | Ui::CommentFilterGUI* ui;
46 | IFilterGUI* child;
47 | };
48 |
--------------------------------------------------------------------------------
/Editor/guis/CommentFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class CommentFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | CommentFilterGUIFactory();
30 |
31 | QList createFilterTemplates() override;
32 |
33 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
34 | IFilterGUI* decorateFilterGUI(IFilterGUI* gui) override;
35 |
36 | private:
37 | bool lastWasComment;
38 | };
39 |
--------------------------------------------------------------------------------
/Editor/guis/ConvolutionFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 |
24 | namespace Ui {
25 | class ConvolutionFilterGUI;
26 | }
27 |
28 | class ConvolutionFilterGUI : public IFilterGUI
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | explicit ConvolutionFilterGUI(const QString& configPath, unsigned deviceSampleRate, const QString& path);
34 | ~ConvolutionFilterGUI();
35 |
36 | void store(QString& command, QString& parameters) override;
37 |
38 | private slots:
39 | void on_selectFileToolButton_clicked();
40 |
41 | void on_pathLineEdit_editingFinished();
42 |
43 | private:
44 | void updateFileInfo();
45 |
46 | Ui::ConvolutionFilterGUI* ui;
47 | QString configPath;
48 | unsigned deviceSampleRate;
49 | };
50 |
--------------------------------------------------------------------------------
/Editor/guis/ConvolutionFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class ConvolutionFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit ConvolutionFilterGUIFactory();
29 |
30 | void initialize(FilterTable* filterTable) override;
31 |
32 | QList createFilterTemplates() override;
33 |
34 | void startOfFile(const QString& configPath) override;
35 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
36 |
37 | private:
38 | QString configPath;
39 | unsigned deviceSampleRate;
40 | };
41 |
--------------------------------------------------------------------------------
/Editor/guis/CopyFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "filters/CopyFilter.h"
23 | #include "Editor/IFilterGUI.h"
24 | #include "CopyFilterGUIScene.h"
25 | #include "Editor/FilterTable.h"
26 |
27 | namespace Ui {
28 | class CopyFilterGUI;
29 | }
30 |
31 | class CopyFilterGUI : public IFilterGUI
32 | {
33 | Q_OBJECT
34 |
35 | public:
36 | explicit CopyFilterGUI(CopyFilter* filter, FilterTable* filterTable);
37 | ~CopyFilterGUI();
38 |
39 | void configureChannels(std::vector& channelNames) override;
40 |
41 | void store(QString& command, QString& parameters) override;
42 |
43 | void loadPreferences(const QVariantMap& prefs) override;
44 | void storePreferences(QVariantMap& prefs) override;
45 |
46 | private:
47 | Ui::CopyFilterGUI* ui;
48 | CopyFilterGUIScene* scene;
49 |
50 | std::vector inputChannelNames;
51 | };
52 |
--------------------------------------------------------------------------------
/Editor/guis/CopyFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class CopyFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | CopyFilterGUIFactory();
30 |
31 | void initialize(FilterTable* filterTable) override;
32 |
33 | QList createFilterTemplates() override;
34 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
35 |
36 | private:
37 | FilterTable* filterTable;
38 | };
39 |
--------------------------------------------------------------------------------
/Editor/guis/CopyFilterGUIForm.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | #include "filters/CopyFilter.h"
27 |
28 | class CopyFilterGUIForm : public QWidget
29 | {
30 | Q_OBJECT
31 | public:
32 | explicit CopyFilterGUIForm(QWidget* parent = 0);
33 |
34 | void load(std::vector assignments);
35 | void setChannelNames(const std::vector& channelNames);
36 | std::vector buildAssignments(QWidget* pressedButton = NULL);
37 |
38 | signals:
39 | void updateModel();
40 | void updateChannels();
41 |
42 | private slots:
43 | void addSummand();
44 | void remove();
45 | void addAssignment();
46 |
47 | private:
48 | QGridLayout* gridLayout = NULL;
49 | std::vector inputChannelNames;
50 | };
51 |
--------------------------------------------------------------------------------
/Editor/guis/CopyFilterGUIRow.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "filters/CopyFilter.h"
25 |
26 | namespace Ui {
27 | class CopyFilterGUIRow;
28 | }
29 |
30 | class CopyFilterGUIRow : public QWidget
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | explicit CopyFilterGUIRow(Assignment::Summand summand, std::vector channelNames, QWidget* parent = 0);
36 | ~CopyFilterGUIRow();
37 |
38 | void setChannelNames(const std::vector& channelNames);
39 | Assignment::Summand buildSummand();
40 |
41 | signals:
42 | void updateModel();
43 | void updateChannels();
44 |
45 | private slots:
46 | void on_modeComboBox_currentIndexChanged(int index);
47 |
48 | private:
49 | Ui::CopyFilterGUIRow* ui;
50 | };
51 |
--------------------------------------------------------------------------------
/Editor/guis/CopyFilterGUIScene.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "Editor/widgets/ChannelGraphScene.h"
26 | #include "filters/CopyFilter.h"
27 |
28 | class CopyFilterGUIScene : public ChannelGraphScene
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | void load(const std::vector& channelNames, std::vector assignments);
34 | std::vector buildAssignments();
35 |
36 | signals:
37 | void updateModel();
38 | void updateChannels();
39 |
40 | protected:
41 | void keyPressEvent(QKeyEvent* event) override;
42 |
43 | private slots:
44 | void addOutputChannel();
45 | void lineEditEditingFinished();
46 | void lineEditEditingCanceled();
47 |
48 | private:
49 | QGraphicsItem* lastOutputItem;
50 | QGraphicsProxyWidget* addProxyItem;
51 | };
52 |
--------------------------------------------------------------------------------
/Editor/guis/DelayFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 |
24 | namespace Ui {
25 | class DelayFilterGUI;
26 | }
27 |
28 | class DelayFilterGUI : public IFilterGUI
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | explicit DelayFilterGUI(double delay, bool isMs);
34 | ~DelayFilterGUI();
35 |
36 | void store(QString& command, QString& parameters) override;
37 |
38 | private slots:
39 | void on_unitComboBox_currentIndexChanged(int index);
40 |
41 | void on_delayDial_valueChanged(int value);
42 |
43 | void on_delaySpinBox_valueChanged(double value);
44 |
45 | private:
46 | Ui::DelayFilterGUI* ui;
47 | };
48 |
--------------------------------------------------------------------------------
/Editor/guis/DelayFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class DelayFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | explicit DelayFilterGUIFactory();
30 |
31 | QList createFilterTemplates() override;
32 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;;
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/guis/DeviceFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 | #include "DeviceFilterGUIFactory.h"
24 |
25 | namespace Ui {
26 | class DeviceFilterGUI;
27 | }
28 |
29 | class DeviceFilterGUI : public IFilterGUI
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | explicit DeviceFilterGUI(DeviceFilterGUIFactory* factory);
35 | ~DeviceFilterGUI();
36 | void load(const QString& parameters);
37 | void store(QString& command, QString& parameters) override;
38 |
39 | private slots:
40 | void on_pushButton_clicked();
41 |
42 | private:
43 | Ui::DeviceFilterGUI* ui;
44 | DeviceFilterGUIFactory* factory;
45 | QString pattern;
46 | };
47 |
--------------------------------------------------------------------------------
/Editor/guis/DeviceFilterGUIDialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "DeviceFilterGUI.h"
25 | #include "DeviceFilterGUIFactory.h"
26 |
27 | namespace Ui {
28 | class DeviceFilterGUIDialog;
29 | }
30 |
31 | class DeviceFilterGUIDialog : public QDialog
32 | {
33 | Q_OBJECT
34 |
35 | public:
36 | explicit DeviceFilterGUIDialog(DeviceFilterGUI* gui, DeviceFilterGUIFactory* factory, const QString& pattern);
37 | ~DeviceFilterGUIDialog();
38 |
39 | QString getPattern();
40 |
41 | private slots:
42 | void on_allDevicesCheckBox_toggled(bool checked);
43 |
44 | void on_showOnlyInstalledCheckBox_toggled(bool checked);
45 |
46 | private:
47 | Ui::DeviceFilterGUIDialog* ui;
48 | };
49 |
50 | Q_DECLARE_METATYPE(std::shared_ptr)
51 |
--------------------------------------------------------------------------------
/Editor/guis/DeviceFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "DeviceAPOInfo.h"
23 | #include "Editor/IFilterGUIFactory.h"
24 |
25 | class DeviceFilterGUIFactory : public IFilterGUIFactory
26 | {
27 | Q_OBJECT
28 |
29 | public:
30 | DeviceFilterGUIFactory();
31 |
32 | void initialize(FilterTable* filterTable) override;
33 |
34 | QList createFilterTemplates() override;
35 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
36 |
37 | const QList>& getDevices() const;
38 |
39 | private:
40 | QList> devices;
41 | };
42 |
--------------------------------------------------------------------------------
/Editor/guis/ExpressionFilterGUIFactory.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "ExpressionFilterGUIFactory.h"
21 |
22 | IFilterGUI* ExpressionFilterGUIFactory::createFilterGUI(QString& command, QString& parameters)
23 | {
24 | // do not create a gui if parameters contain expressions
25 | if (parameters.contains('`'))
26 | command = "";
27 |
28 | return NULL;
29 | }
30 |
--------------------------------------------------------------------------------
/Editor/guis/ExpressionFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class ExpressionFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | public:
27 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
28 | };
29 |
--------------------------------------------------------------------------------
/Editor/guis/GraphicEQFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class GraphicEQFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | GraphicEQFilterGUIFactory();
30 |
31 | void initialize(FilterTable* filterTable) override;
32 |
33 | QList createFilterTemplates() override;
34 |
35 | void startOfFile(const QString& configPath) override;
36 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
37 |
38 | private:
39 | QString configPath;
40 | FilterTable* filterTable;
41 | };
42 |
--------------------------------------------------------------------------------
/Editor/guis/GraphicEQFilterGUIItem.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/widgets/FrequencyPlotItem.h"
23 |
24 | class GraphicEQFilterGUIItem : public FrequencyPlotItem
25 | {
26 | public:
27 | GraphicEQFilterGUIItem(int index, double hz, double db);
28 |
29 | enum {Type = UserType + 2};
30 | virtual int type() const
31 | {
32 | return Type;
33 | }
34 |
35 | QRectF boundingRect() const override;
36 | QPainterPath shape() const override;
37 | void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
38 |
39 | int getIndex() const;
40 | void setIndex(int value);
41 |
42 | protected:
43 | QVariant itemChange(GraphicsItemChange change, const QVariant& value) override;
44 |
45 | private:
46 | int index;
47 | };
48 |
--------------------------------------------------------------------------------
/Editor/guis/GraphicEQFilterGUIView.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/widgets/FrequencyPlotView.h"
23 |
24 | class GraphicEQFilterGUIView : public FrequencyPlotView
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | explicit GraphicEQFilterGUIView(QWidget* parent = 0);
30 |
31 | protected:
32 | void drawBackground(QPainter* painter, const QRectF& rect) override;
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/guis/IncludeFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 | #include "Editor/FilterTable.h"
24 |
25 | namespace Ui {
26 | class IncludeFilterGUI;
27 | }
28 |
29 | class IncludeFilterGUI : public IFilterGUI
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | explicit IncludeFilterGUI(FilterTable* filterTable, const QString& path);
35 | ~IncludeFilterGUI();
36 |
37 | void store(QString& command, QString& parameters) override;
38 |
39 | private slots:
40 | void on_selectFileToolButton_clicked();
41 | void on_pathLineEdit_editingFinished();
42 | void on_openFileToolButton_clicked();
43 |
44 | private:
45 | void updateFileInfo();
46 |
47 | Ui::IncludeFilterGUI* ui;
48 | FilterTable* filterTable;
49 | };
50 |
--------------------------------------------------------------------------------
/Editor/guis/IncludeFilterGUIFactory.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "IncludeFilterGUI.h"
21 | #include "IncludeFilterGUIFactory.h"
22 |
23 | IncludeFilterGUIFactory::IncludeFilterGUIFactory()
24 | {
25 | }
26 |
27 | void IncludeFilterGUIFactory::initialize(FilterTable* filterTable)
28 | {
29 | this->filterTable = filterTable;
30 | }
31 |
32 | QList IncludeFilterGUIFactory::createFilterTemplates()
33 | {
34 | QList list;
35 | list.append(FilterTemplate(tr("Include (Include configuration file)"), "Include:", QStringList(tr("Control"))));
36 | return list;
37 | }
38 |
39 | IFilterGUI* IncludeFilterGUIFactory::createFilterGUI(QString& command, QString& parameters)
40 | {
41 | IncludeFilterGUI* result = NULL;
42 |
43 | if (command == "Include")
44 | {
45 | result = new IncludeFilterGUI(filterTable, parameters.trimmed());
46 | }
47 |
48 | return result;
49 | }
50 |
--------------------------------------------------------------------------------
/Editor/guis/IncludeFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class IncludeFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit IncludeFilterGUIFactory();
29 |
30 | void initialize(FilterTable* filterTable) override;
31 |
32 | QList createFilterTemplates() override;
33 |
34 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
35 |
36 | private:
37 | FilterTable* filterTable;
38 | };
39 |
--------------------------------------------------------------------------------
/Editor/guis/LoudnessCorrectionFilterGUIDialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | namespace Ui {
26 | class LoudnessCorrectionFilterGUIDialog;
27 | }
28 |
29 | class LoudnessCorrectionFilterGUIDialog : public QDialog
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | explicit LoudnessCorrectionFilterGUIDialog(QWidget* parent = 0);
35 | ~LoudnessCorrectionFilterGUIDialog();
36 |
37 | int getMeasuredLevel();
38 |
39 | private slots:
40 | void on_playButton_clicked();
41 | void on_stopButton_clicked();
42 |
43 | void on_leftRadioButton_toggled(bool checked);
44 | void on_rightRadioButton_toggled(bool checked);
45 | void on_bothRadioButton_toggled(bool checked);
46 |
47 | private:
48 | Ui::LoudnessCorrectionFilterGUIDialog* ui;
49 | QBuffer buffer;
50 | };
51 |
--------------------------------------------------------------------------------
/Editor/guis/LoudnessCorrectionFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include "Editor/IFilterGUIFactory.h"
24 | #include "Editor/FilterTable.h"
25 | #include "filters/loudnessCorrection/VolumeController.h"
26 |
27 | class LoudnessCorrectionFilterGUIFactory : public IFilterGUIFactory
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | explicit LoudnessCorrectionFilterGUIFactory();
33 | ~LoudnessCorrectionFilterGUIFactory();
34 |
35 | void initialize(FilterTable* filterTable) override;
36 | QList createFilterTemplates() override;
37 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
38 |
39 | private slots:
40 | void checkVolume();
41 |
42 | private:
43 | FilterTable* filterTable;
44 | QTimer* timer = NULL;
45 | VolumeController* volumeController = NULL;
46 | float lastVolume = -1;
47 | };
48 |
--------------------------------------------------------------------------------
/Editor/guis/PreampFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 | #include
24 |
25 | namespace Ui {
26 | class PreampFilterGUI;
27 | }
28 |
29 | class PreampFilterGUI : public IFilterGUI
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | PreampFilterGUI(double dbGain);
35 | ~PreampFilterGUI();
36 | void store(QString& command, QString& parameters) override;
37 |
38 | private slots:
39 | void on_doubleSpinBox_valueChanged(double value);
40 |
41 | void on_dial_valueChanged(int value);
42 |
43 | private:
44 | Ui::PreampFilterGUI* ui;
45 | };
46 |
--------------------------------------------------------------------------------
/Editor/guis/PreampFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class PreampFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | QList createFilterTemplates() override;
30 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/Editor/guis/StageFilterGUI.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUI.h"
23 |
24 | namespace Ui {
25 | class StageFilterGUI;
26 | }
27 |
28 | class StageFilterGUI : public IFilterGUI
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | explicit StageFilterGUI(const QString& parameters);
34 | ~StageFilterGUI();
35 |
36 | void store(QString& command, QString& parameters) override;
37 |
38 | private slots:
39 | void on_preMixCheckBox_toggled(bool checked);
40 |
41 | void on_postMixCheckBox_toggled(bool checked);
42 |
43 | void on_captureCheckBox_toggled(bool checked);
44 |
45 | private:
46 | Ui::StageFilterGUI* ui;
47 | };
48 |
--------------------------------------------------------------------------------
/Editor/guis/StageFilterGUIFactory.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "StageFilterGUI.h"
21 | #include "StageFilterGUIFactory.h"
22 |
23 | QList StageFilterGUIFactory::createFilterTemplates()
24 | {
25 | QList list;
26 | list.append(FilterTemplate(tr("Stage (Select processing stage)"), "Stage: post-mix", QStringList(tr("Control"))));
27 | return list;
28 | }
29 |
30 | IFilterGUI* StageFilterGUIFactory::createFilterGUI(QString& command, QString& parameters)
31 | {
32 | StageFilterGUI* result = NULL;
33 |
34 | if (command == "Stage")
35 | {
36 | result = new StageFilterGUI(parameters);
37 | }
38 |
39 | return result;
40 | }
41 |
--------------------------------------------------------------------------------
/Editor/guis/StageFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "Editor/IFilterGUIFactory.h"
23 |
24 | class StageFilterGUIFactory : public IFilterGUIFactory
25 | {
26 | Q_OBJECT
27 |
28 | public:
29 | QList createFilterTemplates() override;
30 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/Editor/guis/VSTPluginFilterGUIDialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 | #include "helpers/VSTPluginInstance.h"
25 |
26 | namespace Ui {
27 | class VSTPluginFilterGUIDialog;
28 | }
29 |
30 | class VSTPluginFilterGUIDialog : public QDialog
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | explicit VSTPluginFilterGUIDialog(QWidget* parent, VSTPluginInstance* effect, bool autoApply);
36 | ~VSTPluginFilterGUIDialog();
37 |
38 | QPushButton* getApplyButton();
39 | QCheckBox* getAutoApplyCheckBox();
40 |
41 | void onSizeWindow(int w, int h);
42 |
43 | private slots:
44 | void on_autoApplyCheckBox_clicked(bool checked);
45 |
46 | private:
47 | Ui::VSTPluginFilterGUIDialog* ui;
48 | VSTPluginInstance* effect;
49 | };
50 |
--------------------------------------------------------------------------------
/Editor/guis/VSTPluginFilterGUIFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 | #pragma once
20 |
21 | #include "Editor/IFilterGUIFactory.h"
22 |
23 | class VSTPluginFilterGUIFactory : public IFilterGUIFactory
24 | {
25 | Q_OBJECT
26 |
27 | public:
28 | QList createFilterTemplates() override;
29 | IFilterGUI* createFilterGUI(QString& command, QString& parameters) override;
30 | };
31 |
--------------------------------------------------------------------------------
/Editor/helpers/DisableWheelFilter.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #include "DisableWheelFilter.h"
23 |
24 | DisableWheelFilter::DisableWheelFilter(QObject* scrollTarget, QObject* parent)
25 | : QObject(parent), scrollTarget(scrollTarget)
26 | {
27 | }
28 |
29 | bool DisableWheelFilter::eventFilter(QObject* obj, QEvent* event)
30 | {
31 | if (event->type() == QEvent::Wheel)
32 | {
33 | QWidget* widget = qobject_cast(obj);
34 | if (widget == NULL || !widget->hasFocus())
35 | {
36 | QApplication::sendEvent(scrollTarget, event);
37 | return true;
38 | }
39 | }
40 |
41 | return false;
42 | }
43 |
--------------------------------------------------------------------------------
/Editor/helpers/DisableWheelFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class DisableWheelFilter : public QObject
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit DisableWheelFilter(QObject* scrollTarget, QObject* parent = 0);
29 |
30 | bool eventFilter(QObject* obj, QEvent* event) override;
31 |
32 | private:
33 | QObject* scrollTarget;
34 | };
35 |
--------------------------------------------------------------------------------
/Editor/helpers/GUIChannelHelper.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | class GUIChannelHelper : public QObject
26 | {
27 | Q_OBJECT
28 |
29 | public:
30 | static GUIChannelHelper* getInstance();
31 |
32 | struct ChannelConfigurationInfo
33 | {
34 | int channelMask;
35 | QString name;
36 | };
37 |
38 | const QList& getChannelConfigurationInfos() const;
39 |
40 | private:
41 | GUIChannelHelper();
42 | static GUIChannelHelper* instance;
43 |
44 | QList channelConfigurationInfos;
45 | };
46 |
--------------------------------------------------------------------------------
/Editor/helpers/GUIHelper.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2016 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #pragma once
23 |
24 | class GUIHelper
25 | {
26 | public:
27 | static QSize scale(QSize size);
28 | static int scale(double pixel);
29 | static double scaleZoom(double zoom);
30 | static double invScale(int pixel);
31 | static double invScaleZoom(double zoom);
32 | static bool isDarkMode();
33 | };
34 |
--------------------------------------------------------------------------------
/Editor/helpers/QtSndfileHandle.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
23 | #include
24 | #include
25 |
26 | class QtSndfileHandle : public SndfileHandle
27 | {
28 | public:
29 | QtSndfileHandle(QIODevice& device, int mode = SFM_READ,
30 | int format = 0, int channels = 0, int samplerate = 0);
31 | };
32 |
--------------------------------------------------------------------------------
/Editor/icons/accessories-text-editor.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/accessories-text-editor.ico
--------------------------------------------------------------------------------
/Editor/icons/applications-graphics-rotated.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/applications-graphics-rotated.ico
--------------------------------------------------------------------------------
/Editor/icons/arrow_right.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/arrow_right.ico
--------------------------------------------------------------------------------
/Editor/icons/dark-mode/toolbar-ext-h.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
61 |
--------------------------------------------------------------------------------
/Editor/icons/document-new.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/document-new.ico
--------------------------------------------------------------------------------
/Editor/icons/document-open.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/document-open.ico
--------------------------------------------------------------------------------
/Editor/icons/document-save-as.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/document-save-as.ico
--------------------------------------------------------------------------------
/Editor/icons/document-save.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/document-save.ico
--------------------------------------------------------------------------------
/Editor/icons/edit-copy.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/edit-copy.ico
--------------------------------------------------------------------------------
/Editor/icons/edit-cut.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/edit-cut.ico
--------------------------------------------------------------------------------
/Editor/icons/edit-delete.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/edit-delete.ico
--------------------------------------------------------------------------------
/Editor/icons/edit-paste.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/edit-paste.ico
--------------------------------------------------------------------------------
/Editor/icons/edit-select-all.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/edit-select-all.ico
--------------------------------------------------------------------------------
/Editor/icons/format-justify-fill-rotated.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/format-justify-fill-rotated.ico
--------------------------------------------------------------------------------
/Editor/icons/go-up.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/go-up.ico
--------------------------------------------------------------------------------
/Editor/icons/list-add-green.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/list-add-green.ico
--------------------------------------------------------------------------------
/Editor/icons/list-remove-red.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/list-remove-red.ico
--------------------------------------------------------------------------------
/Editor/icons/resize_corner.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/icons/resize_corner.ico
--------------------------------------------------------------------------------
/Editor/sounds/pinkNoise.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/sounds/pinkNoise.flac
--------------------------------------------------------------------------------
/Editor/stable.h:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include
35 | #include
36 | #include
37 | #include
38 | #include
39 | #include
40 | #include
41 | #include
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 |
--------------------------------------------------------------------------------
/Editor/translations/Editor_de.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/translations/Editor_de.qm
--------------------------------------------------------------------------------
/Editor/translations/qtbase_de.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Editor/translations/qtbase_de.qm
--------------------------------------------------------------------------------
/Editor/widgets/ChannelGraphItem.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class ChannelGraphItem : public QGraphicsItem
25 | {
26 | public:
27 | explicit ChannelGraphItem(const QString& name = 0);
28 |
29 | QRectF boundingRect() const override;
30 |
31 | QString getName() const;
32 |
33 | protected:
34 | virtual void paint(QPainter* painter, QColor color);
35 |
36 | private:
37 | QString name;
38 | mutable QRectF cachedRect;
39 | };
40 |
--------------------------------------------------------------------------------
/Editor/widgets/ChannelGraphScene.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #include "Editor/helpers/GUIHelper.h"
23 | #include "ChannelGraphScene.h"
24 |
25 | ChannelGraphScene::ChannelGraphScene(QWidget* parent)
26 | : QGraphicsScene(parent)
27 | {
28 | }
29 |
30 | QPointF ChannelGraphScene::getNextChannelPoint(QGraphicsItem* lastItem, bool output)
31 | {
32 | int x = 0;
33 | if (lastItem != NULL)
34 | {
35 | QRectF lastRect = lastItem->sceneBoundingRect();
36 | x = lastRect.left() + lastRect.width() + 1 + GUIHelper::scale(10);
37 | }
38 |
39 | return QPointF(x, output ? GUIHelper::scale(50) : 0);
40 | }
41 |
--------------------------------------------------------------------------------
/Editor/widgets/ChannelGraphScene.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class ChannelGraphScene : public QGraphicsScene
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit ChannelGraphScene(QWidget* parent = 0);
29 |
30 | protected:
31 | QPointF getNextChannelPoint(QGraphicsItem* lastItem, bool output);
32 | };
33 |
--------------------------------------------------------------------------------
/Editor/widgets/CompactToolBar.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "Editor/helpers/GUIHelper.h"
21 | #include "CompactToolBar.h"
22 |
23 | CompactToolBar::CompactToolBar(QWidget* parent)
24 | : QToolBar(parent)
25 | {
26 | setMinimumHeight(GUIHelper::scale(33));
27 | setOrientation(Qt::Vertical);
28 | }
29 |
30 | QSize CompactToolBar::sizeHint() const
31 | {
32 | return QSize(1, 1);
33 | }
34 |
35 | void CompactToolBar::updateMaximumHeight()
36 | {
37 | setMaximumHeight(QToolBar::sizeHint().height());
38 | }
39 |
--------------------------------------------------------------------------------
/Editor/widgets/CompactToolBar.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class CompactToolBar : public QToolBar
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit CompactToolBar(QWidget* parent = 0);
29 |
30 | QSize sizeHint() const override;
31 | void updateMaximumHeight();
32 | };
33 |
--------------------------------------------------------------------------------
/Editor/widgets/EscapableLineEdit.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #include "EscapableLineEdit.h"
23 |
24 | EscapableLineEdit::EscapableLineEdit(QWidget* parent)
25 | : QLineEdit(parent)
26 | {
27 | }
28 |
29 | EscapableLineEdit::EscapableLineEdit(const QString& text, QWidget* parent)
30 | : QLineEdit(text, parent)
31 | {
32 | }
33 |
34 | void EscapableLineEdit::keyPressEvent(QKeyEvent* event)
35 | {
36 | if (event->key() == Qt::Key_Escape)
37 | emit editingCanceled();
38 | else
39 | QLineEdit::keyPressEvent(event);
40 | }
41 |
--------------------------------------------------------------------------------
/Editor/widgets/EscapableLineEdit.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class EscapableLineEdit : public QLineEdit
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit EscapableLineEdit(QWidget* parent = 0);
29 | explicit EscapableLineEdit(const QString& text, QWidget* parent = 0);
30 |
31 | signals:
32 | void editingCanceled();
33 |
34 | protected:
35 | void keyPressEvent(QKeyEvent* event) override;
36 | };
37 |
--------------------------------------------------------------------------------
/Editor/widgets/ExponentialSpinBox.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 | #include "ExponentialSpinBox.h"
22 |
23 | using namespace std;
24 |
25 | ExponentialSpinBox::ExponentialSpinBox(QWidget* parent)
26 | : QSpinBox(parent)
27 | {
28 | }
29 |
30 | void ExponentialSpinBox::stepBy(int steps)
31 | {
32 | qint64 v = value();
33 | if (steps > 0)
34 | {
35 | v <<= steps;
36 | if (v > maximum())
37 | v = maximum();
38 | }
39 | else
40 | {
41 | v >>= -steps;
42 | if (v < minimum())
43 | v = minimum();
44 | }
45 |
46 | setValue((int)v);
47 | }
48 |
49 | int ExponentialSpinBox::valueFromText(const QString& text) const
50 | {
51 | int value = QSpinBox::valueFromText(text);
52 | value = exp2(round(log2(value)));
53 | return value;
54 | }
55 |
--------------------------------------------------------------------------------
/Editor/widgets/ExponentialSpinBox.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | class ExponentialSpinBox : public QSpinBox
23 | {
24 | public:
25 | ExponentialSpinBox(QWidget* parent = 0);
26 |
27 | public:
28 | void stepBy(int steps) override;
29 |
30 | protected:
31 | int valueFromText(const QString& text) const override;
32 | };
33 |
--------------------------------------------------------------------------------
/Editor/widgets/FrequencyPlotHRuler.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class FrequencyPlotHRuler : public QWidget
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit FrequencyPlotHRuler(QWidget* parent = 0);
29 |
30 | protected:
31 | void paintEvent(QPaintEvent*) override;
32 | void wheelEvent(QWheelEvent* event) override;
33 | void mouseMoveEvent(QMouseEvent* event) override;
34 | };
35 |
--------------------------------------------------------------------------------
/Editor/widgets/FrequencyPlotItem.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class FrequencyPlotItem : public QGraphicsItem
25 | {
26 | public:
27 | FrequencyPlotItem(double hz, double db);
28 |
29 | enum {Type = UserType + 1};
30 | virtual int type() const
31 | {
32 | return Type;
33 | }
34 |
35 | void updatePos();
36 |
37 | double getHz() const;
38 | void setHz(double value);
39 |
40 | double getDb() const;
41 | void setDb(double value);
42 |
43 | private:
44 | double hz;
45 | double db;
46 | };
47 |
--------------------------------------------------------------------------------
/Editor/widgets/FrequencyPlotVRuler.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class FrequencyPlotVRuler : public QWidget
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit FrequencyPlotVRuler(QWidget* parent = 0);
29 |
30 | protected:
31 | void paintEvent(QPaintEvent*) override;
32 | void wheelEvent(QWheelEvent* event) override;
33 | void mouseMoveEvent(QMouseEvent* event) override;
34 | };
35 |
--------------------------------------------------------------------------------
/Editor/widgets/MiddleClickTabBar.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include
21 |
22 | #include "MiddleClickTabBar.h"
23 |
24 | MiddleClickTabBar::MiddleClickTabBar(QWidget* parent)
25 | : QTabBar(parent)
26 | {
27 | }
28 |
29 | void MiddleClickTabBar::mouseReleaseEvent(QMouseEvent* event)
30 | {
31 | if (event->button() == Qt::MiddleButton)
32 | {
33 | int tabIndex = tabAt(event->pos());
34 | if (tabIndex != -1)
35 | {
36 | emit tabCloseRequested(tabIndex);
37 | return;
38 | }
39 | }
40 |
41 | QTabBar::mouseReleaseEvent(event);
42 | }
43 |
--------------------------------------------------------------------------------
/Editor/widgets/MiddleClickTabBar.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class MiddleClickTabBar : public QTabBar
25 | {
26 | public:
27 | MiddleClickTabBar(QWidget* parent = NULL);
28 |
29 | protected:
30 | void mouseReleaseEvent(QMouseEvent* event) override;
31 | };
32 |
--------------------------------------------------------------------------------
/Editor/widgets/MiddleClickTabWidget.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "MiddleClickTabBar.h"
21 | #include "MiddleClickTabWidget.h"
22 |
23 | MiddleClickTabWidget::MiddleClickTabWidget(QWidget* parent)
24 | : QTabWidget(parent)
25 | {
26 | setTabBar(new MiddleClickTabBar(this));
27 | }
28 |
--------------------------------------------------------------------------------
/Editor/widgets/MiddleClickTabWidget.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class MiddleClickTabWidget : public QTabWidget
25 | {
26 | public:
27 | MiddleClickTabWidget(QWidget* parent = NULL);
28 | };
29 |
--------------------------------------------------------------------------------
/Editor/widgets/ResizeCorner.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "Editor/FilterTable.h"
26 |
27 | class ResizeCorner : public QLabel
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | explicit ResizeCorner(FilterTable* filterTable, QSize minimumSize, QSize maximumSize,
33 | std::function getFunc, std::function setFunc, QWidget* parent = 0);
34 |
35 | protected:
36 | void mousePressEvent(QMouseEvent* event) override;
37 | void mouseMoveEvent(QMouseEvent* event) override;
38 | void mouseReleaseEvent(QMouseEvent*) override;
39 |
40 | private:
41 | int offsetX;
42 | int offsetY;
43 | QSize minimumSize;
44 | QSize maximumSize;
45 | FilterTable* filterTable;
46 | std::function getFunc;
47 | std::function setFunc;
48 | };
49 |
--------------------------------------------------------------------------------
/Editor/widgets/ResizingLineEdit.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "EscapableLineEdit.h"
23 |
24 | class ResizingLineEdit : public EscapableLineEdit
25 | {
26 | Q_OBJECT
27 | public:
28 | explicit ResizingLineEdit(QWidget* parent = 0);
29 | explicit ResizingLineEdit(const QString& text, bool forceWidth, QWidget* parent = 0);
30 |
31 | QSize sizeHint() const override;
32 |
33 | private slots:
34 | void readjustSize();
35 |
36 | private:
37 | bool forceWidth = false;
38 | };
39 |
--------------------------------------------------------------------------------
/EqualizerAPO.licenseheader:
--------------------------------------------------------------------------------
1 | extensions: .cpp .h
2 | /*
3 | This file is part of Equalizer APO, a system-wide equalizer.
4 | Copyright (C) %CurrentYear% Jonas Thedering
5 |
6 | This program is free software; you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation; either version 2 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License along
17 | with this program; if not, write to the Free Software Foundation, Inc.,
18 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 | */
20 |
--------------------------------------------------------------------------------
/EqualizerAPO/ClassFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2012 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class ClassFactory : public IClassFactory
25 | {
26 | public:
27 | ClassFactory();
28 |
29 | // IUnknown
30 | virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv);
31 | virtual ULONG __stdcall AddRef();
32 | virtual ULONG __stdcall Release();
33 |
34 | // IClassFactory
35 | virtual HRESULT __stdcall CreateInstance(IUnknown* pUnknownOuter, const IID& iid, void** ppv);
36 | virtual HRESULT __stdcall LockServer(BOOL bLock);
37 |
38 | static long lockCount;
39 | private:
40 | long refCount;
41 | };
42 |
--------------------------------------------------------------------------------
/EqualizerAPO/EqualizerAPO-ARM64.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/EqualizerAPO/EqualizerAPO-ARM64.rc
--------------------------------------------------------------------------------
/EqualizerAPO/EqualizerAPO.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | DllCanUnloadNow PRIVATE
3 | DllGetClassObject PRIVATE
4 | DllRegisterServer PRIVATE
5 | DllUnregisterServer PRIVATE
6 |
--------------------------------------------------------------------------------
/EqualizerAPO/EqualizerAPO.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/EqualizerAPO/EqualizerAPO.rc
--------------------------------------------------------------------------------
/EqualizerAPO/EqualizerAPO.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | helpers
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | helpers
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | {95612e70-aead-4faa-bcfe-525a3c68d8ec}
34 |
35 |
36 |
--------------------------------------------------------------------------------
/EqualizerAPO/EqualizerAPO64.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/EqualizerAPO/EqualizerAPO64.rc
--------------------------------------------------------------------------------
/EqualizerAPO/resource.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/EqualizerAPO/resource.h
--------------------------------------------------------------------------------
/IFilter.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 | #include "IFilter.h"
22 |
23 | using namespace std;
24 |
--------------------------------------------------------------------------------
/Release checklist.txt:
--------------------------------------------------------------------------------
1 | 1. Change version number in version.h
2 | 2. Create setups using build.bat
3 | 3. Commit trunk with message "Version x"
4 | 4. Export trunk to an external folder, create EqualizerAPO-src-x.zip from the folder contents
5 | 5. Upload EqualizerAPO32-x.exe, EqualizerAPO64-x.exe and EqualizerAPO-src-x.zip to new folder x
6 | 6. Update readme.txt using subversion log
7 | 7. Set EqualizerAPO64-x.exe as new default download
8 | 8. Update URL for tool "Downloads" to https://sourceforge.net/projects/equalizerapo/files/x/
9 | 9. Create tag of trunk in tags/x with message "Tag release x"
10 |
--------------------------------------------------------------------------------
/Setup/Configuration reference (online).url:
--------------------------------------------------------------------------------
1 | [{000214A0-0000-0000-C000-000000000046}]
2 | Prop3=19,2
3 | [InternetShortcut]
4 | URL=http://sourceforge.net/p/equalizerapo/wiki/Configuration%20reference
5 | IDList=
6 | HotKey=0
7 |
--------------------------------------------------------------------------------
/Setup/Configuration tutorial (online).url:
--------------------------------------------------------------------------------
1 | [{000214A0-0000-0000-C000-000000000046}]
2 | Prop3=19,2
3 | [InternetShortcut]
4 | URL=http://sourceforge.net/p/equalizerapo/wiki/Documentation/#configuration-tutorial
5 | IDList=
6 |
--------------------------------------------------------------------------------
/Setup/Setup.nsi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/Setup.nsi
--------------------------------------------------------------------------------
/Setup/Setup32.nsi:
--------------------------------------------------------------------------------
1 |
2 | !define BINPATH "..\Release"
3 | !define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_6_7_2_MSVC2022_32bit\release"
4 | !define LIBPATH "lib32"
5 | !define VCREDIST_URL "https://aka.ms/vs/17/release/vc_redist.x86.exe"
6 | !define TARGET_ARCH "x86"
7 |
8 | !include "Setup.nsi"
9 |
10 | OutFile "EqualizerAPO-x86-${VERSION}.exe"
11 |
--------------------------------------------------------------------------------
/Setup/Setup64.nsi:
--------------------------------------------------------------------------------
1 |
2 | !define BINPATH "..\x64\Release"
3 | !define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_6_7_2_MSVC2022_64bit\release"
4 | !define LIBPATH "lib64"
5 | !define VCREDIST_URL "https://aka.ms/vs/17/release/vc_redist.x64.exe"
6 | !define TARGET_ARCH "x64"
7 |
8 | !include "Setup.nsi"
9 |
10 | OutFile "EqualizerAPO-x64-${VERSION}.exe"
11 |
--------------------------------------------------------------------------------
/Setup/SetupARM64.nsi:
--------------------------------------------------------------------------------
1 |
2 | !define BINPATH "..\ARM64\Release"
3 | !define BINPATH_EDITOR "..\build-Editor-Desktop_Qt_6_7_2_MSVC2019_ARM64\release"
4 | !define LIBPATH "libARM64"
5 | !define VCREDIST_URL "https://aka.ms/vs/17/release/vc_redist.arm64.exe"
6 | !define TARGET_ARCH "ARM64"
7 |
8 | !include "Setup.nsi"
9 |
10 | OutFile "EqualizerAPO-ARM64-${VERSION}.exe"
11 |
--------------------------------------------------------------------------------
/Setup/config/config.txt:
--------------------------------------------------------------------------------
1 | Preamp: -6 dB
2 | Include: example.txt
3 | GraphicEQ: 25 0; 40 0; 63 0; 100 0; 160 0; 250 0; 400 0; 630 0; 1000 0; 1600 0; 2500 0; 4000 0; 6300 0; 10000 0; 16000 0
--------------------------------------------------------------------------------
/Setup/config/demo.txt:
--------------------------------------------------------------------------------
1 | Filter Settings file
2 |
3 | Room EQ V5,01
4 | Dated: 16.05.2013 21:56:38
5 |
6 | Notes:This file demonstrates all filter types the Generic equalizer supports
7 |
8 | Equaliser: Generic
9 | No measurement
10 | Filter 1: ON PK Fc 50,0 Hz Gain -10,0 dB Q 2,50
11 | Filter 2: ON Modal Fc 100H z Gain 3,0 dB Q 5,41 T60 target 100 ms
12 | Filter 3: ON LP Fc 8.000 Hz
13 | Filter 4: ON HP Fc 30,0 Hz
14 | Filter 5: ON LPQ Fc 10.000 Hz Q 0,400
15 | Filter 6: ON HPQ Fc 20,0 Hz Q 0,500
16 | Filter 7: ON LS Fc 300 Hz Gain 5,0 dB
17 | Filter 8: ON HS Fc 1.000 Hz Gain -3,0 dB
18 | Filter 9: ON LS 12dB Fc 2.000 Hz Gain -5,0 dB
19 | Filter 10: ON HS 12dB Fc 500 Hz Gain 5,0 dB
20 | Filter 11: ON LS 6dB Fc 50,0 Hz Gain 7,2 dB
21 | Filter 12: ON HS 6dB Fc 12.000 Hz Gain 10,0 dB
22 | Filter 13: ON NO Fc 800 Hz
23 | Filter 14: ON AP Fc 900 Hz Q 0,707
24 | Filter 15: ON None
25 | Filter 16: ON None
26 | Filter 17: ON None
27 | Filter 18: ON None
28 | Filter 19: ON None
29 | Filter 20: ON None
30 |
31 |
--------------------------------------------------------------------------------
/Setup/config/example.txt:
--------------------------------------------------------------------------------
1 | Filter Settings file
2 |
3 | Room EQ V5,01
4 | Dated: 29.02.2012 20:04:50
5 |
6 | Notes:Simple bass boost
7 |
8 | Equaliser: Generic
9 | No measurement
10 | Filter 1: ON PK Fc 20,0 Hz Gain 4,0 dB Q 1,00
11 | Filter 2: ON PK Fc 45,0 Hz Gain 2,0 dB Q 1,00
12 | Filter 3: OFF None
13 | Filter 4: OFF None
14 | Filter 5: OFF None
15 | Filter 6: OFF None
16 | Filter 7: OFF None
17 | Filter 8: OFF None
18 | Filter 9: OFF None
19 | Filter 10: OFF None
20 | Filter 11: OFF None
21 | Filter 12: OFF None
22 | Filter 13: OFF None
23 | Filter 14: OFF None
24 | Filter 15: OFF None
25 | Filter 16: OFF None
26 | Filter 17: OFF None
27 | Filter 18: OFF None
28 | Filter 19: OFF None
29 | Filter 20: OFF None
30 |
31 |
--------------------------------------------------------------------------------
/Setup/config/iir_lowpass.txt:
--------------------------------------------------------------------------------
1 | # This shows how to create a lowpass biquad filter using the IIR filter type
2 | # The result should be equivalent to the command
3 | # Filter: ON LP Fc 3000 Hz
4 |
5 | Eval: freq = 3000
6 | Eval: Q = 1/sqrt(2)
7 | Eval: omega = 2 * pi * freq / sampleRate
8 | Eval: sn = sin(omega)
9 | Eval: cs = cos(omega)
10 | Eval: alpha = sin(omega) / (2 * Q)
11 | Eval: a0 = (1 - cs) / 2
12 | Eval: a1 = 1 - cs
13 | Eval: a2 = (1 - cs) / 2
14 | Eval: b0 = 1 + alpha
15 | Eval: b1 = -2 * cs
16 | Eval: b2 = 1 - alpha
17 |
18 | Filter: ON IIR Order 2 Coefficients `a0` `a1` `a2` `b0` `b1` `b2`
19 |
--------------------------------------------------------------------------------
/Setup/config/multichannel.txt:
--------------------------------------------------------------------------------
1 | #Common preamp
2 | Preamp: -6 dB
3 |
4 | Channel: L
5 | #Additional preamp for left channel
6 | Preamp: -5 dB
7 | #Filters only for left channel
8 | Include: demo.txt
9 |
10 | Channel: 2 C
11 | #Filters for second(right) and center channel
12 | Include: example.txt
--------------------------------------------------------------------------------
/Setup/config/selective_delay.txt:
--------------------------------------------------------------------------------
1 | # Copy channels to virtual channels to filter them while keeping the originals
2 | Copy: L2=L R2=R
3 | # Select channels for filtering
4 | Channel: L2 R2
5 | # Limit frequency range for delay
6 | Filter: ON HP Fc 200 Hz
7 | Filter: ON LP Fc 2000 Hz
8 | # Apply delay
9 | Delay: 500 ms
10 | # Add the delayed signal back to the original channels
11 | Copy: L=0.5*L+0.5*L2 R=0.5*R+0.5*R2
--------------------------------------------------------------------------------
/Setup/lib32/Qt6Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/Qt6Core.dll
--------------------------------------------------------------------------------
/Setup/lib32/Qt6Gui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/Qt6Gui.dll
--------------------------------------------------------------------------------
/Setup/lib32/Qt6Svg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/Qt6Svg.dll
--------------------------------------------------------------------------------
/Setup/lib32/Qt6Widgets.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/Qt6Widgets.dll
--------------------------------------------------------------------------------
/Setup/lib32/fftw3f.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/fftw3f.dll
--------------------------------------------------------------------------------
/Setup/lib32/msvcp140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/msvcp140.dll
--------------------------------------------------------------------------------
/Setup/lib32/msvcp140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/msvcp140_1.dll
--------------------------------------------------------------------------------
/Setup/lib32/msvcp140_2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/msvcp140_2.dll
--------------------------------------------------------------------------------
/Setup/lib32/qt/iconengines/qsvgicon.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/qt/iconengines/qsvgicon.dll
--------------------------------------------------------------------------------
/Setup/lib32/qt/imageformats/qico.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/qt/imageformats/qico.dll
--------------------------------------------------------------------------------
/Setup/lib32/qt/imageformats/qsvg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/qt/imageformats/qsvg.dll
--------------------------------------------------------------------------------
/Setup/lib32/qt/platforms/qwindows.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/qt/platforms/qwindows.dll
--------------------------------------------------------------------------------
/Setup/lib32/qt/styles/qmodernwindowsstyle.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/qt/styles/qmodernwindowsstyle.dll
--------------------------------------------------------------------------------
/Setup/lib32/sndfile.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/sndfile.dll
--------------------------------------------------------------------------------
/Setup/lib32/vcruntime140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib32/vcruntime140.dll
--------------------------------------------------------------------------------
/Setup/lib64/Qt6Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/Qt6Core.dll
--------------------------------------------------------------------------------
/Setup/lib64/Qt6Gui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/Qt6Gui.dll
--------------------------------------------------------------------------------
/Setup/lib64/Qt6Svg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/Qt6Svg.dll
--------------------------------------------------------------------------------
/Setup/lib64/Qt6Widgets.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/Qt6Widgets.dll
--------------------------------------------------------------------------------
/Setup/lib64/fftw3f.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/fftw3f.dll
--------------------------------------------------------------------------------
/Setup/lib64/msvcp140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/msvcp140.dll
--------------------------------------------------------------------------------
/Setup/lib64/msvcp140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/msvcp140_1.dll
--------------------------------------------------------------------------------
/Setup/lib64/msvcp140_2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/msvcp140_2.dll
--------------------------------------------------------------------------------
/Setup/lib64/qt/iconengines/qsvgicon.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/qt/iconengines/qsvgicon.dll
--------------------------------------------------------------------------------
/Setup/lib64/qt/imageformats/qico.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/qt/imageformats/qico.dll
--------------------------------------------------------------------------------
/Setup/lib64/qt/imageformats/qsvg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/qt/imageformats/qsvg.dll
--------------------------------------------------------------------------------
/Setup/lib64/qt/platforms/qwindows.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/qt/platforms/qwindows.dll
--------------------------------------------------------------------------------
/Setup/lib64/qt/styles/qmodernwindowsstyle.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/qt/styles/qmodernwindowsstyle.dll
--------------------------------------------------------------------------------
/Setup/lib64/sndfile.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/sndfile.dll
--------------------------------------------------------------------------------
/Setup/lib64/vcruntime140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/vcruntime140.dll
--------------------------------------------------------------------------------
/Setup/lib64/vcruntime140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/lib64/vcruntime140_1.dll
--------------------------------------------------------------------------------
/Setup/libARM64/Qt6Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/Qt6Core.dll
--------------------------------------------------------------------------------
/Setup/libARM64/Qt6Gui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/Qt6Gui.dll
--------------------------------------------------------------------------------
/Setup/libARM64/Qt6Svg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/Qt6Svg.dll
--------------------------------------------------------------------------------
/Setup/libARM64/Qt6Widgets.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/Qt6Widgets.dll
--------------------------------------------------------------------------------
/Setup/libARM64/fftw3f.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/fftw3f.dll
--------------------------------------------------------------------------------
/Setup/libARM64/msvcp140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/msvcp140.dll
--------------------------------------------------------------------------------
/Setup/libARM64/msvcp140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/msvcp140_1.dll
--------------------------------------------------------------------------------
/Setup/libARM64/msvcp140_2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/msvcp140_2.dll
--------------------------------------------------------------------------------
/Setup/libARM64/qt/iconengines/qsvgicon.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/qt/iconengines/qsvgicon.dll
--------------------------------------------------------------------------------
/Setup/libARM64/qt/imageformats/qico.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/qt/imageformats/qico.dll
--------------------------------------------------------------------------------
/Setup/libARM64/qt/imageformats/qsvg.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/qt/imageformats/qsvg.dll
--------------------------------------------------------------------------------
/Setup/libARM64/qt/platforms/qwindows.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/qt/platforms/qwindows.dll
--------------------------------------------------------------------------------
/Setup/libARM64/qt/styles/qmodernwindowsstyle.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/qt/styles/qmodernwindowsstyle.dll
--------------------------------------------------------------------------------
/Setup/libARM64/sndfile.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/sndfile.dll
--------------------------------------------------------------------------------
/Setup/libARM64/vcruntime140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/vcruntime140.dll
--------------------------------------------------------------------------------
/Setup/libARM64/vcruntime140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Setup/libARM64/vcruntime140_1.dll
--------------------------------------------------------------------------------
/VoicemeeterClient/VoicemeeterClient.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/VoicemeeterClient/VoicemeeterClient.rc
--------------------------------------------------------------------------------
/VoicemeeterClient/VoicemeeterClient.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | helpers
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | helpers
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {eb32c27d-e4c2-4cad-a72d-b798d4514714}
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/VoicemeeterClient/VoicemeeterRemote.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/VoicemeeterClient/VoicemeeterRemote.h
--------------------------------------------------------------------------------
/VoicemeeterClient/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by VoicemeeterClient.rc
4 |
5 | // Next default values for new objects
6 | //
7 | #ifdef APSTUDIO_INVOKED
8 | #ifndef APSTUDIO_READONLY_SYMBOLS
9 | #define _APS_NEXT_RESOURCE_VALUE 101
10 | #define _APS_NEXT_COMMAND_VALUE 40001
11 | #define _APS_NEXT_CONTROL_VALUE 1001
12 | #define _APS_NEXT_SYMED_VALUE 101
13 | #endif
14 | #endif
15 |
--------------------------------------------------------------------------------
/Wiki/EnhancementsTab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/EnhancementsTab.png
--------------------------------------------------------------------------------
/Wiki/NoEnhancementsTab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/NoEnhancementsTab.png
--------------------------------------------------------------------------------
/Wiki/RoomEQWizard-thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/RoomEQWizard-thumb.png
--------------------------------------------------------------------------------
/Wiki/RoomEQWizard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/RoomEQWizard.png
--------------------------------------------------------------------------------
/Wiki/RoomEQWizard.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/RoomEQWizard.xcf
--------------------------------------------------------------------------------
/Wiki/Stages.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/Stages.odg
--------------------------------------------------------------------------------
/Wiki/Stages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/Stages.png
--------------------------------------------------------------------------------
/Wiki/Transfer function.odf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/Transfer function.odf
--------------------------------------------------------------------------------
/Wiki/Transfer function.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/Transfer function.png
--------------------------------------------------------------------------------
/Wiki/UseOriginalAPO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/UseOriginalAPO.png
--------------------------------------------------------------------------------
/Wiki/UseOriginalAPO.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mirror/equalizerapo/53d885f7f1a097b457e17a5206b7d60f647877a8/Wiki/UseOriginalAPO.xcf
--------------------------------------------------------------------------------
/filters/BiQuadFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "IFilterFactory.h"
26 | #include "IFilter.h"
27 | #include "BiQuad.h"
28 |
29 | class BiQuadFilterFactory : public IFilterFactory
30 | {
31 | public:
32 | BiQuadFilterFactory();
33 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
34 |
35 | private:
36 | double getFreq(const std::wstring& freqString);
37 |
38 | std::unordered_map filterNameToTypeMap;
39 | std::unordered_map filterTypeToDescriptionMap;
40 | };
41 |
--------------------------------------------------------------------------------
/filters/ChannelFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "IFilter.h"
26 |
27 | #pragma AVRT_VTABLES_BEGIN
28 | class ChannelFilter : public IFilter
29 | {
30 | public:
31 | ChannelFilter(const std::vector& words);
32 | virtual ~ChannelFilter();
33 | bool getAllChannels() override {return true;}
34 | bool getSelectChannels() override {return true;}
35 | std::vector initialize(float sampleRate, unsigned maxFrameCount, std::vector channelNames) override;
36 | void process(float** output, float** input, unsigned frameCount) override;
37 |
38 | private:
39 | std::vector words;
40 | };
41 | #pragma AVRT_VTABLES_END
42 |
--------------------------------------------------------------------------------
/filters/ChannelFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class ChannelFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/ConvolutionFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "IFilter.h"
23 | #include "libHybridConv-0.1.1/libHybridConv_eapo.h"
24 |
25 | #pragma AVRT_VTABLES_BEGIN
26 | class ConvolutionFilter : public IFilter
27 | {
28 | public:
29 | ConvolutionFilter(std::wstring filename);
30 | virtual ~ConvolutionFilter();
31 | bool getInPlace() override {return true;}
32 | std::vector initialize(float sampleRate, unsigned maxFrameCount, std::vector channelNames) override;
33 | void process(float** output, float** input, unsigned frameCount) override;
34 |
35 | private:
36 | void cleanup();
37 |
38 | std::wstring filename;
39 | HConvSingle* filters;
40 | unsigned channelCount;
41 | };
42 | #pragma AVRT_VTABLES_END
43 |
--------------------------------------------------------------------------------
/filters/ConvolutionFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class ConvolutionFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/CopyFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class CopyFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/DelayFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "IFilter.h"
23 |
24 | #pragma AVRT_VTABLES_BEGIN
25 | class DelayFilter : public IFilter
26 | {
27 | public:
28 | DelayFilter(double delay, bool isMs);
29 | virtual ~DelayFilter();
30 | bool getInPlace() override {return false;}
31 | std::vector initialize(float sampleRate, unsigned maxFrameCount, std::vector channelNames) override;
32 | void process(float** output, float** input, unsigned frameCount) override;
33 |
34 | double getDelay() const;
35 | bool getIsMs() const;
36 |
37 | private:
38 | void cleanup();
39 |
40 | double delay;
41 | bool isMs;
42 | unsigned bufferLength;
43 | unsigned channelCount;
44 | float** buffers;
45 | unsigned bufferOffset;
46 | };
47 | #pragma AVRT_VTABLES_END
48 |
--------------------------------------------------------------------------------
/filters/DelayFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class DelayFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/DeviceFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class DeviceFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | #ifndef NO_FILTERENGINE
31 | void initialize(FilterEngine* engine) override;
32 | #endif
33 | std::vector startOfConfiguration() override;
34 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
35 | std::vector endOfFile(const std::wstring& configPath) override;
36 |
37 | static bool matchDevice(const std::wstring& deviceString, const std::wstring& pattern);
38 |
39 | private:
40 | bool deviceMatches;
41 | std::wstring deviceString;
42 | };
43 |
--------------------------------------------------------------------------------
/filters/ExpressionFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "IFilterFactory.h"
26 | #include "IFilter.h"
27 |
28 | class ExpressionFilterFactory : public IFilterFactory
29 | {
30 | public:
31 | void initialize(FilterEngine* engine) override;
32 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
33 |
34 | private:
35 | mup::ParserX* parser;
36 | };
37 |
--------------------------------------------------------------------------------
/filters/GraphicEQFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class GraphicEQFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/IIRFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "IFilter.h"
23 |
24 | #pragma AVRT_VTABLES_BEGIN
25 | class IIRFilter : public IFilter
26 | {
27 | public:
28 | IIRFilter(const std::vector& coefficients);
29 | virtual ~IIRFilter();
30 | bool getInPlace() override {return true;}
31 | std::vector initialize(float sampleRate, unsigned maxFrameCount, std::vector channelNames) override;
32 | void process(float** output, float** input, unsigned frameCount) override;
33 |
34 | private:
35 | unsigned order;
36 | double b0;
37 | double* a;
38 | double* b;
39 | unsigned channelCount;
40 | double* x;
41 | double* y;
42 | };
43 | #pragma AVRT_VTABLES_END
44 |
--------------------------------------------------------------------------------
/filters/IIRFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class IIRFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | IIRFilterFactory();
31 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
32 | };
33 |
--------------------------------------------------------------------------------
/filters/IfFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "IFilterFactory.h"
26 | #include "IFilter.h"
27 |
28 | class IfFilterFactory : public IFilterFactory
29 | {
30 | public:
31 | void initialize(FilterEngine* engine) override;
32 | std::vector startOfConfiguration() override;
33 | std::vector startOfFile(const std::wstring& configPath) override;
34 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
35 | std::vector endOfFile(const std::wstring& configPath) override;
36 |
37 | private:
38 | mup::ParserX* parser;
39 |
40 | unsigned trueCount;
41 | unsigned falseCount;
42 | bool executeElse;
43 | std::stack trueCountStack;
44 |
45 | bool toBoolean(const mup::Value& value);
46 | };
47 |
--------------------------------------------------------------------------------
/filters/IncludeFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class IncludeFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | void initialize(FilterEngine* engine) override;
31 |
32 | std::vector startOfConfiguration() override;
33 | std::vector startOfFile(const std::wstring& configPath) override;
34 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
35 | std::vector endOfFile(const std::wstring& configPath) override;
36 |
37 | private:
38 | FilterEngine* engine;
39 | int recursionDepth = -1;
40 | };
41 |
--------------------------------------------------------------------------------
/filters/PreampFilter.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 | #define _USE_MATH_DEFINES
22 | #include
23 |
24 | #include "PreampFilter.h"
25 |
26 | using namespace std;
27 |
28 | PreampFilter::PreampFilter(double dbGain)
29 | : dbGain(dbGain)
30 | {
31 | gain = (float)pow(10.0, dbGain / 20.0);
32 | }
33 |
34 | vector PreampFilter::initialize(float sampleRate, unsigned maxFrameCount, vector channelNames)
35 | {
36 | this->channelCount = channelNames.size();
37 |
38 | return channelNames;
39 | }
40 |
41 | #pragma AVRT_CODE_BEGIN
42 | void PreampFilter::process(float** output, float** input, unsigned frameCount)
43 | {
44 | for (size_t i = 0; i < channelCount; i++)
45 | {
46 | float* sampleChannel = input[i];
47 |
48 | for (unsigned j = 0; j < frameCount; j++)
49 | sampleChannel[j] *= gain;
50 | }
51 | }
52 | #pragma AVRT_CODE_END
53 |
--------------------------------------------------------------------------------
/filters/PreampFilter.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include "IFilter.h"
23 |
24 | #pragma AVRT_VTABLES_BEGIN
25 | class PreampFilter : public IFilter
26 | {
27 | public:
28 | PreampFilter(double dbGain);
29 | std::vector initialize(float sampleRate, unsigned maxFrameCount, std::vector channelNames) override;
30 | void process(float** output, float** input, unsigned frameCount) override;
31 |
32 | double getDbGain() const {return dbGain;}
33 |
34 | private:
35 | float gain;
36 | double dbGain;
37 | size_t channelCount;
38 | };
39 | #pragma AVRT_VTABLES_END
40 |
--------------------------------------------------------------------------------
/filters/PreampFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class PreampFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/StageFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "IFilterFactory.h"
26 | #include "IFilter.h"
27 |
28 | class StageFilterFactory : public IFilterFactory
29 | {
30 | public:
31 | void initialize(FilterEngine* engine) override;
32 | std::vector startOfConfiguration() override;
33 | std::vector startOfFile(const std::wstring& configPath) override;
34 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
35 | std::vector endOfFile(const std::wstring& configPath) override;
36 |
37 | private:
38 | bool preMix;
39 | bool capture;
40 | bool postMixInstalled;
41 |
42 | bool stageMatches;
43 | std::stack stageMatchesStack;
44 | };
45 |
--------------------------------------------------------------------------------
/filters/VSTPluginFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class VSTPluginFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters) override;
31 | };
32 |
--------------------------------------------------------------------------------
/filters/loudnessCorrection/LoudnessCorrectionFilterFactory.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Alexander Walch
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "IFilterFactory.h"
25 | #include "IFilter.h"
26 |
27 | class LoudnessCorrectionFilterFactory : public IFilterFactory
28 | {
29 | public:
30 | LoudnessCorrectionFilterFactory();
31 | virtual std::vector createFilter(const std::wstring& configPath, std::wstring& command, std::wstring& parameters);
32 | };
33 |
--------------------------------------------------------------------------------
/filters/loudnessCorrection/VolumeController.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Alexander Walch
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #define WIN32_LEAN_AND_MEAN
23 | #include
24 | #include
25 |
26 | class VolumeController
27 | {
28 | public:
29 | VolumeController();
30 | HRESULT getVolume(float& currentVolume);
31 | HRESULT setVolume(float volume);
32 | private:
33 | IAudioEndpointVolume* _endpointVolume;
34 | float _minVol;
35 | float _maxVol;
36 | };
37 |
--------------------------------------------------------------------------------
/helpers/AbstractLibrary.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class AbstractLibrary
25 | {
26 | public:
27 | static const int FILE_NOT_FOUND = -1;
28 | static const int LOADING_FAILED = -2;
29 | static const int FUNCTIONS_MISSING = -3;
30 | static const int WRONG_ARCHITECTURE = -4;
31 |
32 | virtual ~AbstractLibrary();
33 |
34 | int initialize();
35 | virtual std::wstring getLibPath() = 0;
36 |
37 | protected:
38 | virtual bool loadFunctions() = 0;
39 | virtual int customInitialize();
40 |
41 | HMODULE module = NULL;
42 |
43 | private:
44 | unsigned short getFileArchitecture(const std::wstring& filePath);
45 | };
46 |
--------------------------------------------------------------------------------
/helpers/ChannelHelper.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | class ChannelHelper
27 | {
28 | public:
29 | static int getDefaultChannelMask(int channelCount);
30 | static std::vector getChannelNames(int channelCount, int channelMask);
31 | static int getChannelIndex(std::wstring word, const std::vector& channelNames, bool allowNew = false);
32 |
33 | private:
34 | ChannelHelper();
35 | static ChannelHelper instance;
36 |
37 | static std::unordered_map channelNameToPosMap;
38 | static std::unordered_map channelPosToNameMap;
39 | };
40 |
--------------------------------------------------------------------------------
/helpers/GainIterator.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2015 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | struct FilterNode
25 | {
26 | double freq;
27 | double dbGain;
28 |
29 | FilterNode(double freq, double dbGain)
30 | {
31 | this->freq = freq;
32 | this->dbGain = dbGain;
33 | }
34 |
35 | bool operator<(FilterNode other)
36 | {
37 | return freq < other.freq;
38 | }
39 | };
40 |
41 | class GainIterator
42 | {
43 | public:
44 | GainIterator(const std::vector& nodes);
45 | double gainAt(double freq);
46 |
47 | private:
48 | std::vector nodes;
49 | FilterNode* nodeLeft;
50 | FilterNode* nodeRight;
51 | double logLeft;
52 | double logRightMinusLeft;
53 | };
54 |
--------------------------------------------------------------------------------
/helpers/MemoryHelper.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2013 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #ifdef USE_WINDDK
23 | #include
24 | #else
25 | #define AVRT_VTABLES_BEGIN
26 | #define AVRT_VTABLES_END
27 | #define AVRT_CODE_BEGIN
28 | #define AVRT_CODE_END
29 | #endif
30 |
31 | class MemoryHelper
32 | {
33 | public:
34 | static void* alloc(size_t size);
35 | static void free(void* ptr);
36 | };
37 |
--------------------------------------------------------------------------------
/helpers/PrecisionTimer.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2012 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #define WIN32_LEAN_AND_MEAN
23 | #include
24 |
25 | class PrecisionTimer
26 | {
27 | LARGE_INTEGER freq;
28 | LARGE_INTEGER startCount{};
29 |
30 | public:
31 | PrecisionTimer()
32 | {
33 | QueryPerformanceFrequency(&freq);
34 | }
35 |
36 | void start()
37 | {
38 | QueryPerformanceCounter(&startCount);
39 | }
40 |
41 | double stop()
42 | {
43 | LARGE_INTEGER stopCount;
44 | QueryPerformanceCounter(&stopCount);
45 |
46 | return double(stopCount.QuadPart - startCount.QuadPart) / freq.QuadPart;
47 | }
48 | };
49 |
--------------------------------------------------------------------------------
/libHybridConv-0.1.1/Makefile:
--------------------------------------------------------------------------------
1 | CC=gcc
2 |
3 | INCDIR=
4 | LIBDIR=
5 |
6 | #CFLAGS=-g -O0 -msse -msse2 -fomit-frame-pointer -funroll-loops -ffast-math -Wall -Wextra
7 | CFLAGS=-O2 -msse -msse2 -fomit-frame-pointer -funroll-loops -ffast-math -Wall -Wextra
8 | LFLAGS=-lm -lfftw3f
9 |
10 |
11 | OBJ=libHybridConv.o hcTest.o
12 |
13 |
14 | all : hcTest
15 |
16 | hcTest : $(OBJ)
17 | $(CC) -o hcTest $(OBJ) $(LIBDIR) $(LFLAGS)
18 |
19 | %.o:%.c
20 | $(CC) $(CFLAGS) -c $< $(INCDIR)
21 |
22 | install:
23 | echo Nothing to be done
24 |
25 | clean:
26 | rm $(OBJ) hcTest
27 |
28 |
--------------------------------------------------------------------------------
/parser/LogicalOperators.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2019 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
21 | #include "LogicalOperators.h"
22 |
23 | using namespace std;
24 | using namespace mup;
25 |
26 | NotOperator::NotOperator()
27 | : IOprtInfix(L"not", prINFIX)
28 | {}
29 |
30 | void NotOperator::Eval(ptr_val_type& ret, const ptr_val_type* arg, int argc)
31 | {
32 | assert(argc == 1);
33 | *ret = !arg[0]->GetBool();
34 | }
35 |
36 | const char_type* NotOperator::GetDesc() const
37 | {
38 | return L"logical not";
39 | }
40 |
41 | IToken* NotOperator::Clone() const
42 | {
43 | return new NotOperator(*this);
44 | }
45 |
--------------------------------------------------------------------------------
/parser/LogicalOperators.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2019 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | class NotOperator : public mup::IOprtInfix
26 | {
27 | public:
28 | NotOperator();
29 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
30 | const mup::char_type* GetDesc() const;
31 | mup::IToken* Clone() const override;
32 | };
33 |
--------------------------------------------------------------------------------
/parser/RegexFunctions.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class RegexSearchFunction : public mup::ICallback
25 | {
26 | public:
27 | RegexSearchFunction();
28 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
29 | const mup::char_type* GetDesc() const;
30 | mup::IToken* Clone() const override;
31 | };
32 |
33 | class RegexReplaceFunction : public mup::ICallback
34 | {
35 | public:
36 | RegexReplaceFunction();
37 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
38 | const mup::char_type* GetDesc() const;
39 | mup::IToken* Clone() const override;
40 | };
41 |
--------------------------------------------------------------------------------
/parser/RegistryFunctions.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | class FilterEngine;
25 |
26 | class ReadRegStringFunction : public mup::ICallback
27 | {
28 | public:
29 | ReadRegStringFunction(FilterEngine* engine);
30 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
31 | const mup::char_type* GetDesc() const override;
32 | mup::IToken* Clone() const override;
33 |
34 | private:
35 | FilterEngine* engine;
36 | };
37 |
38 | class ReadRegDWORDFunction : public mup::ICallback
39 | {
40 | public:
41 | ReadRegDWORDFunction(FilterEngine* engine);
42 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
43 | const mup::char_type* GetDesc() const override;
44 | mup::IToken* Clone() const override;
45 |
46 | private:
47 | FilterEngine* engine;
48 | };
49 |
--------------------------------------------------------------------------------
/parser/StringOperators.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of EqualizerAPO, a system-wide equalizer.
3 | Copyright (C) 2014 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | class AddOperator : public mup::OprtAdd
26 | {
27 | public:
28 | void Eval(mup::ptr_val_type& ret, const mup::ptr_val_type* arg, int argc) override;
29 | const mup::char_type* GetDesc() const;
30 | mup::IToken* Clone() const override;
31 | };
32 |
--------------------------------------------------------------------------------
/reformat.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | cd %~dp0
3 | for /r %%f in (*.cpp *.h) do (
4 | (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) || (
5 | uncrustify -c uncrustify.cfg -l CPP --replace --no-backup "%%f"
6 | )
7 | )
8 |
9 | pause
10 |
--------------------------------------------------------------------------------
/stdafx.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #include "stdafx.h"
--------------------------------------------------------------------------------
/stdafx.h:
--------------------------------------------------------------------------------
1 | /*
2 | This file is part of Equalizer APO, a system-wide equalizer.
3 | Copyright (C) 2017 Jonas Thedering
4 |
5 | This program is free software; you can redistribute it and/or modify
6 | it under the terms of the GNU General Public License as published by
7 | the Free Software Foundation; either version 2 of the License, or
8 | (at your option) any later version.
9 |
10 | This program is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | GNU General Public License for more details.
14 |
15 | You should have received a copy of the GNU General Public License along
16 | with this program; if not, write to the Free Software Foundation, Inc.,
17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 | */
19 |
20 | #define _USE_MATH_DEFINES
21 | #include
22 | #include