ACMX 2.139.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
gpufilter.hpp
Go to the documentation of this file.
1#ifndef __GPUFILTER_HPP__
2#define __GPUFILTER_HPP__
3
4/**
5 * @file gpufilter.hpp
6 * @brief UI dialog for configuring chained GPU filter indices.
7 */
8
9#include <QCheckBox>
10#include <QComboBox>
11#include <QDialog>
12#include <QFile>
13#include <QFileDialog>
14#include <QGroupBox>
15#include <QHBoxLayout>
16#include <QLabel>
17#include <QLineEdit>
18#include <QListWidget>
19#include <QProcess>
20#include <QPushButton>
21#include <QSortFilterProxyModel>
22#include <QSpinBox>
23#include <QStandardItemModel>
24#include <QStringList>
25#include <QTextStream>
26#include <QVBoxLayout>
27
28/**
29 * @brief Dialog that manages optional GPU filter list and buffer settings.
30 */
31class GPUFilterDialog : public QDialog {
32 Q_OBJECT
33 public:
34 explicit GPUFilterDialog(const QString &executablePath, QWidget *parent = nullptr);
35
36 /// @brief Return whether GPU filtering is enabled.
37 bool isGPUFilterEnabled() const;
38 /// @brief Return selected filter indices in playback order.
39 QStringList getSelectedFilterIndices() const;
40 /// @brief Return frame-buffer depth used by filter chain.
41 int getBufferSize() const;
42 /// @brief Build CLI argument payload for the selected filter state.
43 QString getFilterArgument() const;
44
45 signals:
46 /// @brief Emitted when settings should be applied without closing the dialog.
47 void settingsApplied(bool enabled, const QString &filterArgument, int bufferSize);
48
49 public slots:
50 void addFilter();
51 void removeFilter();
52 void moveUp();
53 void moveDown();
54 void clearAll();
55 void filterSearchChanged(const QString &text);
56 void saveFilterList();
57 void loadFilterList();
58
59 private:
61 void setupUI();
62 void loadUiState();
63 void saveUiState();
64
65 QString execPath;
66 QCheckBox *enableCheckBox;
67 QComboBox *filterComboBox;
68 QLineEdit *searchLineEdit;
69 QListWidget *selectedFiltersList;
71 QPushButton *addButton;
72 QPushButton *removeButton;
73 QPushButton *upButton;
74 QPushButton *downButton;
75 QPushButton *clearButton;
76 QPushButton *okButton;
77 QPushButton *applyButton;
78 QPushButton *cancelButton;
79 QPushButton *saveButton;
80 QPushButton *loadButton;
81
82 QStandardItemModel *filterModel;
83 QSortFilterProxyModel *proxyModel;
84
85 QMap<QString, int> filterNameToIndex;
86 QStringList filterNames;
87};
88
89#endif
bool isGPUFilterEnabled() const
Return whether GPU filtering is enabled.
QSortFilterProxyModel * proxyModel
Definition gpufilter.hpp:83
QPushButton * upButton
Definition gpufilter.hpp:73
QPushButton * removeButton
Definition gpufilter.hpp:72
QListWidget * selectedFiltersList
Definition gpufilter.hpp:69
QString getFilterArgument() const
Build CLI argument payload for the selected filter state.
QStringList getSelectedFilterIndices() const
Return selected filter indices in playback order.
QPushButton * addButton
Definition gpufilter.hpp:71
QComboBox * filterComboBox
Definition gpufilter.hpp:67
QPushButton * clearButton
Definition gpufilter.hpp:75
int getBufferSize() const
Return frame-buffer depth used by filter chain.
QLineEdit * searchLineEdit
Definition gpufilter.hpp:68
QMap< QString, int > filterNameToIndex
Definition gpufilter.hpp:85
QCheckBox * enableCheckBox
Definition gpufilter.hpp:66
QPushButton * downButton
Definition gpufilter.hpp:74
QPushButton * loadButton
Definition gpufilter.hpp:80
void filterSearchChanged(const QString &text)
GPUFilterDialog(const QString &executablePath, QWidget *parent=nullptr)
Definition gpufilter.cpp:11
void loadFilterList()
QPushButton * cancelButton
Definition gpufilter.hpp:78
QSpinBox * bufferSizeSpinBox
Definition gpufilter.hpp:70
void saveFilterList()
void loadFiltersFromExecutable()
QStringList filterNames
Definition gpufilter.hpp:86
QPushButton * saveButton
Definition gpufilter.hpp:79
QPushButton * okButton
Definition gpufilter.hpp:76
void settingsApplied(bool enabled, const QString &filterArgument, int bufferSize)
Emitted when settings should be applied without closing the dialog.
QPushButton * applyButton
Definition gpufilter.hpp:77
QStandardItemModel * filterModel
Definition gpufilter.hpp:82