/
SetupDialog.h
207 lines (178 loc) · 5.2 KB
/
SetupDialog.h
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/*
* SetupDialog.h - dialog for setting up LMMS
*
* Copyright (c) 2005-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#ifndef SETUP_DIALOG_H
#define SETUP_DIALOG_H
#include <QDialog>
#include <QtCore/QMap>
#include "AudioDevice.h"
#include "AudioDeviceSetupWidget.h"
#include "LedCheckbox.h"
#include "lmmsconfig.h"
#include "MidiClient.h"
#include "MidiSetupWidget.h"
class QComboBox;
class QLabel;
class QLineEdit;
class QSlider;
class TabBar;
class SetupDialog : public QDialog
{
Q_OBJECT
public:
enum ConfigTabs
{
GeneralSettings,
PerformanceSettings,
AudioSettings,
MidiSettings,
PathsSettings
};
SetupDialog(ConfigTabs tab_to_open = GeneralSettings);
virtual ~SetupDialog();
protected slots:
void accept() override;
private slots:
// General settings widget.
void toggleDisplaydBFS(bool enabled);
void toggleTooltips(bool enabled);
void toggleDisplayWaveform(bool enabled);
void toggleNoteLabels(bool enabled);
void toggleCompactTrackButtons(bool enabled);
void toggleOneInstrumentTrackWindow(bool enabled);
void toggleSideBarOnRight(bool enabled);
void toggleSoloLegacyBehavior(bool enabled);
void toggleMMPZ(bool enabled);
void toggleDisableBackup(bool enabled);
void toggleOpenLastProject(bool enabled);
void setLanguage(int lang);
// Performance settings widget.
void setAutoSaveInterval(int time);
void resetAutoSave();
void toggleAutoSave(bool enabled);
void toggleRunningAutoSave(bool enabled);
void toggleSmoothScroll(bool enabled);
void toggleAnimateAFP(bool enabled);
void toggleSyncVSTPlugins(bool enabled);
void vstEmbedMethodChanged();
void toggleVSTAlwaysOnTop(bool en);
void toggleDisableAutoQuit(bool enabled);
// Audio settings widget.
void audioInterfaceChanged(const QString & driver);
void toggleHQAudioDev(bool enabled);
void setBufferSize(int value);
void resetBufferSize();
// MIDI settings widget.
void midiInterfaceChanged(const QString & driver);
// Paths settings widget.
void openWorkingDir();
void setWorkingDir(const QString & workingDir);
void openVSTDir();
void setVSTDir(const QString & vstDir);
void openLADSPADir();
void setLADSPADir(const QString & ladspaDir);
void openSF2Dir();
void setSF2Dir(const QString & sf2Dir);
void openSF2File();
void setSF2File(const QString & sf2File);
void openGIGDir();
void setGIGDir(const QString & gigDir);
void openThemeDir();
void setThemeDir(const QString & themeDir);
void openBackgroundPicFile();
void setBackgroundPicFile(const QString & backgroundPicFile);
void showRestartWarning();
private:
TabBar * m_tabBar;
// General settings widgets.
bool m_displaydBFS;
bool m_tooltips;
bool m_displayWaveform;
bool m_printNoteLabels;
bool m_compactTrackButtons;
bool m_oneInstrumentTrackWindow;
bool m_sideBarOnRight;
bool m_soloLegacyBehavior;
bool m_MMPZ;
bool m_disableBackup;
bool m_openLastProject;
QString m_lang;
QStringList m_languages;
// Performance settings widgets.
int m_saveInterval;
bool m_enableAutoSave;
bool m_enableRunningAutoSave;
QSlider * m_saveIntervalSlider;
QLabel * m_saveIntervalLbl;
LedCheckBox * m_autoSave;
LedCheckBox * m_runningAutoSave;
bool m_smoothScroll;
bool m_animateAFP;
QLabel * m_vstEmbedLbl;
QComboBox* m_vstEmbedComboBox;
QString m_vstEmbedMethod;
LedCheckBox * m_vstAlwaysOnTopCheckBox;
bool m_vstAlwaysOnTop;
bool m_syncVSTPlugins;
bool m_disableAutoQuit;
typedef QMap<QString, AudioDeviceSetupWidget *> AswMap;
typedef QMap<QString, MidiSetupWidget *> MswMap;
typedef QMap<QString, QString> trMap;
// Audio settings widgets.
QComboBox * m_audioInterfaces;
AswMap m_audioIfaceSetupWidgets;
trMap m_audioIfaceNames;
bool m_NaNHandler;
bool m_hqAudioDev;
int m_bufferSize;
QSlider * m_bufferSizeSlider;
QLabel * m_bufferSizeLbl;
// MIDI settings widgets.
QComboBox * m_midiInterfaces;
MswMap m_midiIfaceSetupWidgets;
trMap m_midiIfaceNames;
QComboBox * m_assignableMidiDevices;
// Paths settings widgets.
QString m_workingDir;
QString m_vstDir;
QString m_ladspaDir;
QString m_gigDir;
QString m_sf2Dir;
#ifdef LMMS_HAVE_FLUIDSYNTH
QString m_sf2File;
#endif
QString m_themeDir;
QString m_backgroundPicFile;
QLineEdit * m_workingDirLineEdit;
QLineEdit * m_vstDirLineEdit;
QLineEdit * m_themeDirLineEdit;
QLineEdit * m_ladspaDirLineEdit;
QLineEdit * m_gigDirLineEdit;
QLineEdit * m_sf2DirLineEdit;
#ifdef LMMS_HAVE_FLUIDSYNTH
QLineEdit * m_sf2FileLineEdit;
#endif
QLineEdit * m_backgroundPicFileLineEdit;
QLabel * restartWarningLbl;
};
#endif