diff options
Diffstat (limited to 'dgedit')
-rw-r--r-- | dgedit/mainwindow.cc | 74 | ||||
-rw-r--r-- | dgedit/mainwindow.h | 20 | ||||
-rw-r--r-- | dgedit/presets.ini | 15 |
3 files changed, 88 insertions, 21 deletions
diff --git a/dgedit/mainwindow.cc b/dgedit/mainwindow.cc index 5a901c7..dfc150c 100644 --- a/dgedit/mainwindow.cc +++ b/dgedit/mainwindow.cc @@ -30,7 +30,6 @@ #include <QVBoxLayout> #include <QPushButton> -#include <QLineEdit> #include <QLabel> #include <QStatusBar> #include <QApplication> @@ -39,10 +38,8 @@ #include <QToolBar> #include <QAction> #include <QMenuBar> -#include <QSlider> #include "canvastool.h" -#include "canvastoolselections.h" #include "canvastoolthreshold.h" #include "canvastoollisten.h" @@ -78,7 +75,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); @@ -162,28 +159,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); @@ -194,7 +196,7 @@ MainWindow::MainWindow() configs->addWidget(slider4); configs->addWidget(new QLabel("Prefix:")); - QLineEdit *prefix = new QLineEdit(); + prefix = new QLineEdit(); connect(prefix, SIGNAL(textChanged(const QString &)), extractor, SLOT(setOutputPrefix(const QString &))); prefix->setText("kick-r"); @@ -234,8 +236,25 @@ 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.prefix = settings.value("prefix", "unknown").toString(); + 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"); } @@ -334,3 +353,16 @@ 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); + prefix->setText(p.prefix); +// sorter->setAttackLength(p.attacklength); +// selections->noiseFloorChanged(p.falloff); +// selections->fadeoutChanged(p.fadeout); +} diff --git a/dgedit/mainwindow.h b/dgedit/mainwindow.h index 886f9cb..c7ce3fb 100644 --- a/dgedit/mainwindow.h +++ b/dgedit/mainwindow.h @@ -29,11 +29,24 @@ #include <QMainWindow> #include <QScrollBar> +#include <QComboBox> +#include <QSlider> +#include <QLineEdit> #include "canvas.h" #include "audioextractor.h" #include "samplesorter.h" #include "filelist.h" +#include "canvastoolselections.h" + +class Preset { +public: + QString prefix; + int attacklength; + int falloff; + int fadelength; +}; +Q_DECLARE_METATYPE(Preset) class MainWindow : public QMainWindow { Q_OBJECT @@ -48,6 +61,7 @@ public slots: void doExport(); void loadFile(QString filename); void playSamples(); + void setPreset(int); protected: void closeEvent(QCloseEvent*); @@ -58,6 +72,7 @@ private: SampleSorter *sorter; Canvas *canvas; + CanvasToolSelections *selections; AudioExtractor *extractor; FileList *filelist; QScrollBar *yoffset; @@ -65,6 +80,11 @@ private: QScrollBar *xscale; QScrollBar *xoffset; QScrollBar *sb_playsamples; + QComboBox *presets; + QSlider *slider_attacklength; + QSlider *slider_falloff; + QSlider *slider_fadelength; + QLineEdit *prefix; }; #endif/*__DRUMGIZMO_MAINWINDOW_H__*/ diff --git a/dgedit/presets.ini b/dgedit/presets.ini new file mode 100644 index 0000000..6434f05 --- /dev/null +++ b/dgedit/presets.ini @@ -0,0 +1,15 @@ +[Bright snare] + prefix = "Snare" + attacklength = 1 + falloff = 2 + fadelength = 3 +[Tommy gun] + prefix = "Tom" + attacklength = 10 + falloff = 20 + fadelength = 30 +[Kickdrum] + prefix = "Kickass" + attacklength = 100 + falloff = 200 + fadelength = 300 |