-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.h
More file actions
140 lines (107 loc) · 4.1 KB
/
mainwindow.h
File metadata and controls
140 lines (107 loc) · 4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "AudioHandling.h"
#include "AudioFile.h"
#include "Macro.h"
#include "ClickFolder.h"
#include <vector>
#include <array>
#include <QMainWindow>
#include <QFileDialog>
#include <QCloseEvent>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
constexpr int CLICK_TYPE_COUNT{4}; // normal, soft, hard, etc
constexpr int CLICK_FOLDER_COUNT{CLICK_TYPE_COUNT * 12}; // the 12 comes from there being 2 folders per click type (click and release) * 6 buttons total for p1 and p2
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_loadMacrosButton_clicked();
void on_unloadMacrosButton_clicked();
void on_unloadAllMacrosButton_clicked();
void on_loadClickpackButton_clicked();
void on_noiseCheckBox_clicked();
void on_microClickThresholdTextEdit_textChanged();
void on_microClickAfterReleaseThresholdTextEdit_textChanged();
void on_softClickThresholdTextEdit_textChanged();
void on_softClickAfterReleaseThresholdTextEdit_textChanged();
void on_hardClickThresholdTextEdit_textChanged();
void on_hardClickAfterReleaseThresholdTextEdit_textChanged();
void on_saveConfigButton_clicked();
void on_loadConfigButton_clicked();
void on_renderButton_clicked();
private:
Ui::MainWindow *ui;
QString dialogOpenPath = QDir::currentPath();
QString clickpackPath;
std::vector<Macro> macroVector;
std::array<std::vector<AudioFile>, CLICK_FOLDER_COUNT> clickFiles;
AudioFile noiseFile;
std::array<std::vector<const char *>, CLICK_FOLDER_COUNT> clickFolderNames {
{
{"player1/clicks", "clicks"},
{"player1/releases", "releases"},
{"player1/softclicks", "player1/softClicks", "softclicks", "softClicks"},
{"player1/softreleases", "player1/softReleases", "softreleases", "softReleases"},
{"player1/hardclicks", "player1/hardClicks", "hardclicks", "hardClicks"},
{"player1/hardreleases", "player1/hardReleases", "hardreleases", "hardReleases"},
{"player1/microclicks", "player1/microClicks", "microclicks", "microClicks"},
{"player1/microreleases","player1/microReleases", "microreleases","microReleases"},
{"left1/clicks"},
{"left1/releases"},
{"left1/softclicks"},
{"left1/softreleases"},
{"left1/hardclicks"},
{"left1/hardreleases"},
{"left1/microclicks"},
{"left1/microreleases"},
{"right1/clicks"},
{"right1/releases"},
{"right1/softclicks"},
{"right1/softreleases"},
{"right1/hardclicks"},
{"right1/hardreleases"},
{"right1/microclicks"},
{"right1/microreleases"},
{"player2/clicks"},
{"player2/releases"},
{"player2/softclicks", "player2/softClicks"},
{"player2/softreleases", "player2/softReleases"},
{"player2/hardclicks", "player2/hardClicks"},
{"player2/hardreleases", "player2/hardReleases"},
{"player2/microclicks", "player2/microClicks"},
{"player2/microreleases","player2/microReleases"},
{"left2/clicks"},
{"left2/releases"},
{"left2/softclicks"},
{"left2/softreleases"},
{"left2/hardclicks"},
{"left2/hardreleases"},
{"left2/microclicks"},
{"left2/microreleases"},
{"right2/clicks"},
{"right2/releases"},
{"right2/softclicks"},
{"right2/softreleases"},
{"right2/hardclicks"},
{"right2/hardreleases"},
{"right2/microclicks"},
{"right2/microreleases"}
}
};
bool generateAudio(Macro ¯o);
void getClicks(ClickFolder clickType, std::vector<const char*> folderPaths);
void checkFields();
void loadClickpackFromConfig(const QString& absoluteFilePath);
void loadDefaultSettings();
protected:
void closeEvent(QCloseEvent *event) override;
};
#endif // MAINWINDOW_H