diff options
-rw-r--r-- | dgedit/audioextractor.cc | 4 | ||||
-rw-r--r-- | dgedit/audioextractor.h | 4 | ||||
-rw-r--r-- | dgedit/canvas.cc | 3 | ||||
-rw-r--r-- | dgedit/mainwindow.cc | 85 | ||||
-rw-r--r-- | dgedit/mainwindow.h | 9 |
5 files changed, 87 insertions, 18 deletions
diff --git a/dgedit/audioextractor.cc b/dgedit/audioextractor.cc index bde661a..8a08135 100644 --- a/dgedit/audioextractor.cc +++ b/dgedit/audioextractor.cc @@ -141,12 +141,12 @@ void AudioExtractor::removeFile(QString file) } } -void AudioExtractor::setOutputPrefix(QString p) +void AudioExtractor::setOutputPrefix(const QString &p) { prefix = p; } -void AudioExtractor::setExportPath(QString path) +void AudioExtractor::setExportPath(const QString &path) { exportpath = path; } diff --git a/dgedit/audioextractor.h b/dgedit/audioextractor.h index 40fc8fd..5254aa4 100644 --- a/dgedit/audioextractor.h +++ b/dgedit/audioextractor.h @@ -41,11 +41,11 @@ public: void addFile(QString file, QString name); void removeFile(QString file); - void setExportPath(QString path); - void setOutputPrefix(QString prefix); public slots: void exportSelections(Selections selections); + void setExportPath(const QString &path); + void setOutputPrefix(const QString &prefix); private: float *load(QString file, size_t *size); diff --git a/dgedit/canvas.cc b/dgedit/canvas.cc index a487e27..23cd96e 100644 --- a/dgedit/canvas.cc +++ b/dgedit/canvas.cc @@ -132,6 +132,9 @@ void Canvas::load(QString file) mipmaps[dev] = lookup; } + + updateWav(); + update(); } diff --git a/dgedit/mainwindow.cc b/dgedit/mainwindow.cc index db442e6..a15bf73 100644 --- a/dgedit/mainwindow.cc +++ b/dgedit/mainwindow.cc @@ -30,6 +30,12 @@ #include <QVBoxLayout> #include <QPushButton> +#include <QLineEdit> +#include <QLabel> +#include <QFileDialog> +#include <QStatusBar> +#include <QApplication> +#include <QDockWidget> #define MAXVAL 10000000L #define SINGLESTEP MAXVAL/100000 @@ -37,14 +43,17 @@ MainWindow::MainWindow() { + QWidget *central = new QWidget(); QHBoxLayout *lh = new QHBoxLayout(); QVBoxLayout *lv = new QVBoxLayout(); - setLayout(lv); + central->setLayout(lv); + setCentralWidget(central); extractor = new AudioExtractor(this); canvas = new Canvas(this); lh->addWidget(canvas); + QWidget *dock = new QWidget(); yoffset = new QScrollBar(Qt::Vertical); yoffset->setRange(0, MAXVAL); yoffset->setPageStep(PAGESTEP); @@ -69,6 +78,8 @@ MainWindow::MainWindow() xoffset->setSingleStep(SINGLESTEP); connect(xoffset, SIGNAL(valueChanged(int)), this, SLOT(setXOffset(int))); + QHBoxLayout *btns = new QHBoxLayout(); + QPushButton *autosel = new QPushButton(); autosel->setText("Auto"); connect(autosel, SIGNAL(clicked()), canvas, SLOT(clearSelections())); @@ -82,23 +93,51 @@ MainWindow::MainWindow() exportsel->setText("Export"); connect(exportsel, SIGNAL(clicked()), this, SLOT(doExport())); + QPushButton *loadbtn = new QPushButton(); + loadbtn->setText("Load"); + connect(loadbtn, SIGNAL(clicked()), this, SLOT(loadFile())); + + btns->addWidget(autosel); + btns->addWidget(clearsel); + btns->addWidget(exportsel); + btns->addWidget(loadbtn); + + QVBoxLayout *configs = new QVBoxLayout(); + + configs->addWidget(new QLabel("Prefix:")); + QLineEdit *prefix = new QLineEdit(); + connect(prefix, SIGNAL(textChanged(const QString &)), + extractor, SLOT(setOutputPrefix(const QString &))); + prefix->setText("china"); + configs->addWidget(prefix); + + configs->addWidget(new QLabel("Export path:")); + QLineEdit *exportp = new QLineEdit(); + connect(exportp, SIGNAL(textChanged(const QString &)), + extractor, SLOT(setExportPath(const QString &))); + exportp->setText("/home/deva/tmp/drumgizmoexport"); + configs->addWidget(exportp); + + configs->addWidget(new QLabel("Files:")); + filelist = new QListWidget(); + addFile("/home/deva/aasimonster/tmp/china/Amb L-20.wav", "amb-l"); + addFile("/home/deva/aasimonster/tmp/china/Amb R-20.wav", "amb-r"); + addFile("/home/deva/aasimonster/tmp/china/OH L-20.wav", "oh-l"); + addFile("/home/deva/aasimonster/tmp/china/OH R-20.wav", "oh-r"); + configs->addWidget(filelist); + lh->addWidget(yscale); lh->addWidget(yoffset); lv->addLayout(lh); lv->addWidget(xscale); lv->addWidget(xoffset); - lv->addWidget(autosel); - lv->addWidget(clearsel); - lv->addWidget(exportsel); - - extractor->setExportPath("/home/deva/tmp/drumgizmoexport"); - extractor->setOutputPrefix("china"); - extractor->addFile("/home/deva/aasimonster/tmp/china/Amb L-20.wav", "amb-l"); - extractor->addFile("/home/deva/aasimonster/tmp/china/Amb R-20.wav", "amb-r"); - extractor->addFile("/home/deva/aasimonster/tmp/china/OH L-20.wav", "oh-l"); - extractor->addFile("/home/deva/aasimonster/tmp/china/OH R-20.wav", "oh-r"); + lv->addLayout(btns); - canvas->load("/home/deva/aasimonster/tmp/china/OH L-20.wav"); + QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this); + dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + dockWidget->setWidget(dock); + addDockWidget(Qt::LeftDockWidgetArea, dockWidget); + dock->setLayout(configs); yscale->setValue(MAXVAL); yoffset->setValue(MAXVAL/2); @@ -106,6 +145,7 @@ MainWindow::MainWindow() xoffset->setValue(0); resize(800, 600); + statusBar()->showMessage("Ready"); } void MainWindow::setXScale(int sz) @@ -143,3 +183,24 @@ void MainWindow::doExport() { extractor->exportSelections(canvas->selections()); } + +void MainWindow::loadFile() +{ + QString filename = + QFileDialog::getOpenFileName(this, tr("Open file"), + "", tr("Audio Files (*.wav)")); + statusBar()->showMessage("Loading..."); + qApp->processEvents(); + canvas->load(filename); + statusBar()->showMessage("Ready"); +} + +void MainWindow::addFile(QString file, QString name) +{ + QListWidgetItem *item = new QListWidgetItem(); + item->setText(file); + item->setData(Qt::UserRole, name); + filelist->addItem(item); + + extractor->addFile(file, name); +} diff --git a/dgedit/mainwindow.h b/dgedit/mainwindow.h index af17970..246a40f 100644 --- a/dgedit/mainwindow.h +++ b/dgedit/mainwindow.h @@ -27,23 +27,27 @@ #ifndef __DRUMGIZMO_MAINWINDOW_H__ #define __DRUMGIZMO_MAINWINDOW_H__ -#include <QWidget> +#include <QMainWindow> #include <QScrollBar> +#include <QListWidget> #include "canvas.h" #include "audioextractor.h" -class MainWindow : public QWidget { +class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); + void addFile(QString file, QString name); + public slots: void setXScale(int); void setYScale(int); void setXOffset(int); void setYOffset(int); void doExport(); + void loadFile(); private: Canvas *canvas; @@ -52,6 +56,7 @@ private: QScrollBar *yscale; QScrollBar *xscale; QScrollBar *xoffset; + QListWidget *filelist; }; #endif/*__DRUMGIZMO_MAINWINDOW_H__*/ |