diff options
Diffstat (limited to 'dgedit')
| -rw-r--r-- | dgedit/mainwindow.cc | 69 | ||||
| -rw-r--r-- | dgedit/mainwindow.h | 17 | ||||
| -rw-r--r-- | dgedit/presets.ini | 12 | 
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 | 
