summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2014-04-02 20:36:57 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2014-04-02 20:36:57 +0200
commit60aaa8343c04908da31f031781ca16c01ab51049 (patch)
treebee411546e87c4185d63f446f91a88f6f136528e
parenta50452f0159d882348a8456cf50d72b758355332 (diff)
Added presets of slider values.
-rw-r--r--dgedit/mainwindow.cc69
-rw-r--r--dgedit/mainwindow.h17
-rw-r--r--dgedit/presets.ini12
3 files changed, 79 insertions, 19 deletions
diff --git a/dgedit/mainwindow.cc b/dgedit/mainwindow.cc
index 30cd626..adf1321 100644
--- a/dgedit/mainwindow.cc
+++ b/dgedit/mainwindow.cc
@@ -39,10 +39,8 @@
#include <QToolBar>
#include <QAction>
#include <QMenuBar>
-#include <QSlider>
#include "canvastool.h"
-#include "canvastoolselections.h"
#include "canvastoolthreshold.h"
#include "canvastoollisten.h"
@@ -76,7 +74,7 @@ MainWindow::MainWindow()
addTool(toolbar, canvas, listen);
CanvasTool *threshold = new CanvasToolThreshold(canvas);
addTool(toolbar, canvas, threshold);
- CanvasTool *selections = new CanvasToolSelections(canvas);
+ selections = new CanvasToolSelections(canvas);
connect(threshold, SIGNAL(thresholdChanged(double)),
selections, SLOT(thresholdChanged(double)));
addTool(toolbar, canvas, selections);
@@ -152,28 +150,33 @@ MainWindow::MainWindow()
configs->addLayout(btns);
+ configs->addWidget(new QLabel("Presets:"));
+ presets = new QComboBox();
+ connect(presets, SIGNAL(currentIndexChanged(int)), this, SLOT(setPreset(int)));
+ configs->addWidget(presets);
+
configs->addWidget(new QLabel("Attack length:"));
- QSlider *slider = new QSlider(Qt::Horizontal);
- slider->setRange(10, 1000);
- connect(slider, SIGNAL(sliderMoved(int)), sorter, SLOT(setAttackLength(int)));
- slider->setValue(666);
- configs->addWidget(slider);
+ slider_attacklength = new QSlider(Qt::Horizontal);
+ slider_attacklength->setRange(10, 1000);
+ connect(slider_attacklength, SIGNAL(sliderMoved(int)), sorter, SLOT(setAttackLength(int)));
+ slider_attacklength->setValue(666);
+ configs->addWidget(slider_attacklength);
configs->addWidget(new QLabel("Falloff:"));
- QSlider *slider2 = new QSlider(Qt::Horizontal);
- slider2->setRange(1, 10000);
- connect(slider2, SIGNAL(sliderMoved(int)),
+ slider_falloff = new QSlider(Qt::Horizontal);
+ slider_falloff->setRange(1, 10000);
+ connect(slider_falloff, SIGNAL(sliderMoved(int)),
selections, SLOT(noiseFloorChanged(int)));
- slider2->setValue(666);
- configs->addWidget(slider2);
+ slider_falloff->setValue(666);
+ configs->addWidget(slider_falloff);
configs->addWidget(new QLabel("Fadelength:"));
- QSlider *slider3 = new QSlider(Qt::Horizontal);
- slider3->setRange(1, 2000);
- connect(slider3, SIGNAL(sliderMoved(int)),
+ slider_fadelength = new QSlider(Qt::Horizontal);
+ slider_fadelength->setRange(1, 2000);
+ connect(slider_fadelength, SIGNAL(sliderMoved(int)),
selections, SLOT(fadeoutChanged(int)));
- slider3->setValue(666);
- configs->addWidget(slider3);
+ slider_fadelength->setValue(666);
+ configs->addWidget(slider_fadelength);
configs->addWidget(new QLabel("Player volume:"));
QSlider *slider4 = new QSlider(Qt::Horizontal);
@@ -224,8 +227,24 @@ MainWindow::MainWindow()
yoffset->setValue(MAXVAL/2);
xscale->setValue(0);
xoffset->setValue(0);
-
+
loadSettings();
+
+ QSettings settings("presets.ini", QSettings::IniFormat);
+ QStringList list = settings.childGroups();
+ for(int i = 0; i != list.size(); i++) {
+ QString presetname = list.at(i);
+ Preset p;
+ settings.beginGroup(presetname);
+ p.attacklength = settings.value("attacklength", 0).toInt();
+ p.falloff = settings.value("falloff", 0).toInt();
+ p.fadelength = settings.value("fadelength", 0).toInt();
+ settings.endGroup();
+ QVariant v;
+ v.setValue(p);
+ presets->addItem(presetname, v);
+ }
+
statusBar()->showMessage("Ready");
}
@@ -302,3 +321,15 @@ void MainWindow::loadFile(QString filename)
statusBar()->showMessage("Ready");
setCursor(Qt::ArrowCursor);
}
+
+void MainWindow::setPreset(int index)
+{
+ QVariant v = presets->itemData(index);
+ Preset p = v.value<Preset>();
+ slider_attacklength->setValue(p.attacklength);
+ slider_falloff->setValue(p.falloff);
+ slider_fadelength->setValue(p.fadelength);
+// sorter->setAttackLength(p.attacklength);
+// selections->noiseFloorChanged(p.falloff);
+// selections->fadeoutChanged(p.fadeout);
+}
diff --git a/dgedit/mainwindow.h b/dgedit/mainwindow.h
index f6fff27..c358d3c 100644
--- a/dgedit/mainwindow.h
+++ b/dgedit/mainwindow.h
@@ -29,11 +29,22 @@
#include <QMainWindow>
#include <QScrollBar>
+#include <QComboBox>
+#include <QSlider>
#include "canvas.h"
#include "audioextractor.h"
#include "samplesorter.h"
#include "filelist.h"
+#include "canvastoolselections.h"
+
+class Preset {
+public:
+ int attacklength;
+ int falloff;
+ int fadelength;
+};
+Q_DECLARE_METATYPE(Preset)
class MainWindow : public QMainWindow {
Q_OBJECT
@@ -47,6 +58,7 @@ public slots:
void setYOffset(int);
void doExport();
void loadFile(QString filename);
+ void setPreset(int);
protected:
void closeEvent(QCloseEvent*);
@@ -57,12 +69,17 @@ private:
SampleSorter *sorter;
Canvas *canvas;
+ CanvasToolSelections *selections;
AudioExtractor *extractor;
FileList *filelist;
QScrollBar *yoffset;
QScrollBar *yscale;
QScrollBar *xscale;
QScrollBar *xoffset;
+ QComboBox *presets;
+ QSlider *slider_attacklength;
+ QSlider *slider_falloff;
+ QSlider *slider_fadelength;
};
#endif/*__DRUMGIZMO_MAINWINDOW_H__*/
diff --git a/dgedit/presets.ini b/dgedit/presets.ini
new file mode 100644
index 0000000..4ef75ee
--- /dev/null
+++ b/dgedit/presets.ini
@@ -0,0 +1,12 @@
+[Snare]
+ attacklength = 1
+ falloff = 2
+ fadelength = 3
+[Tom]
+ attacklength = 10
+ falloff = 20
+ fadelength = 30
+[Kickdrum]
+ attacklength = 100
+ falloff = 200
+ fadelength = 300