diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-03-18 18:18:57 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-03-18 18:18:57 +0100 |
commit | 57f4d38841c40cad3c206abdd16eebaed753aa1c (patch) | |
tree | c7e5a40b457845b2fb296563add9599d2e81384e /src/mainwindow.cc | |
parent | 9364b9bb84f607d8603f60b86f965b77e03d8c70 (diff) |
Update all fiels to adhere to style-guide
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r-- | src/mainwindow.cc | 870 |
1 files changed, 438 insertions, 432 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 59fc26a..81beae0 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -54,178 +54,175 @@ #define MAXVAL 10000000L -/* -#define SINGLESTEP MAXVAL/100000 -#define PAGESTEP MAXVAL/10000 -*/ +//#define SINGLESTEP MAXVAL/100000 +//#define PAGESTEP MAXVAL/10000 -static void addTool(QToolBar *toolbar, Canvas *canvas, CanvasTool *tool) +static void addTool(QToolBar* toolbar, Canvas* canvas, CanvasTool* tool) { - QAction *action = new QAction(tool->name(), toolbar); - action->setCheckable(true); - toolbar->addAction(action); - tool->connect(action, SIGNAL(toggled(bool)), tool, SLOT(setActive(bool))); - tool->setActive(false); - canvas->tools.push_back(tool); + QAction* action = new QAction(tool->name(), toolbar); + action->setCheckable(true); + toolbar->addAction(action); + tool->connect(action, SIGNAL(toggled(bool)), tool, SLOT(setActive(bool))); + tool->setActive(false); + canvas->tools.push_back(tool); } MainWindow::MainWindow() { - { - int start = 44100 * 60; - Selection p(start, start + 44100 * 60, 0, 0); // one minute selection - selections_preview.add(p); - } - - QWidget *central = new QWidget(); - QHBoxLayout *lh = new QHBoxLayout(); - QVBoxLayout *lv = new QVBoxLayout(); - central->setLayout(lv); - setCentralWidget(central); - - extractor = new AudioExtractor(selections, this); - //canvas = new Canvas(this); - canvaswidget = new CanvasWidget(this); - - QToolBar *toolbar = addToolBar("Tools"); - listen = new CanvasToolListen(canvaswidget->canvas, player); - addTool(toolbar, canvaswidget->canvas, listen); - threshold = new CanvasToolThreshold(canvaswidget->canvas); - canvaswidget->canvas->tools.push_back(threshold);//addTool(toolbar, canvaswidget->canvas, threshold); - tool_selections = new CanvasToolSelections(canvaswidget->canvas, selections, - selections_preview); - connect(threshold, SIGNAL(thresholdChanged(double)), - tool_selections, SLOT(thresholdChanged(double))); - connect(threshold, SIGNAL(thresholdChanging(double)), - tool_selections, SLOT(thresholdChanged(double))); - connect(&selections, SIGNAL(activeChanged(sel_id_t)), - canvaswidget->canvas, SLOT(update())); - connect(&selections, SIGNAL(updated(sel_id_t)), - canvaswidget->canvas, SLOT(update())); - addTool(toolbar, canvaswidget->canvas, tool_selections); - - QMenu *fileMenu = menuBar()->addMenu("&File"); - QAction *act_quit = new QAction("&Quit", this); - fileMenu->addAction(act_quit); - connect(act_quit, SIGNAL(triggered()), this, SLOT(close())); - - // QWidget *dock = new QWidget(); - /* - yoffset = new QScrollBar(Qt::Vertical); - yoffset->setRange(0, MAXVAL); - yoffset->setPageStep(PAGESTEP); - yoffset->setSingleStep(SINGLESTEP); - connect(yoffset, SIGNAL(valueChanged(int)), this, SLOT(setYOffset(int))); - - yscale = new ZoomSlider(Qt::Vertical); - yscale->setRange(0.9, 30); - yscale->setTickWidth(0.1); - connect(yscale, SIGNAL(valueChanged(float)), this, SLOT(setYScale(float))); - - xscale = new ZoomSlider(Qt::Horizontal); - xscale->setRange(1, 0.0001); - xscale->setTickWidth(0.0001); - connect(xscale, SIGNAL(valueChanged(float)), this, SLOT(setXScale(float))); - - xoffset = new QScrollBar(Qt::Horizontal); - xoffset->setRange(0, MAXVAL); - xoffset->setPageStep(PAGESTEP); - xoffset->setSingleStep(SINGLESTEP); - connect(xoffset, SIGNAL(valueChanged(int)), this, SLOT(setXOffset(int))); - */ - sorter = new SampleSorter(selections, selections_preview); - connect(&selections, SIGNAL(added(sel_id_t)), - sorter, SLOT(addSelection(sel_id_t))); - connect(&selections_preview, SIGNAL(added(sel_id_t)), - sorter, SLOT(addSelectionPreview(sel_id_t))); - connect(&selections, SIGNAL(updated(sel_id_t)), sorter, SLOT(relayout())); - connect(&selections_preview, SIGNAL(updated(sel_id_t)), - sorter, SLOT(relayout())); - connect(&selections, SIGNAL(removed(sel_id_t)), sorter, SLOT(relayout())); - connect(&selections_preview, SIGNAL(removed(sel_id_t)), - sorter, SLOT(relayout())); - connect(&selections, SIGNAL(activeChanged(sel_id_t)), - sorter, SLOT(relayout())); - - QPushButton *btn_playsamples = new QPushButton("Play samples"); - connect(btn_playsamples, SIGNAL(clicked()), this, SLOT(playSamples())); - - sb_playsamples = new QScrollBar(Qt::Horizontal); - sb_playsamples->setRange(100, 4000); // ms - - - lh->addWidget(canvaswidget); - //lh->addWidget(yscale); - //lh->addWidget(yoffset); - lv->addLayout(lh, 100); - //lv->addWidget(xscale, 100); - //lv->addWidget(xoffset, 100); - lv->addWidget(sorter, 15); - lv->addWidget(btn_playsamples); - lv->addWidget(sb_playsamples); - - - QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this); - dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - - dockWidget->setWidget(new QWidget()); - dockWidget->widget()->setLayout(new QVBoxLayout()); - -// dockWidget->widget()->layout()->addWidget(new QLabel("Presets:")); -// presets = new QComboBox(); -// connect(presets, SIGNAL(currentIndexChanged(int)), -// this, SLOT(setPreset(int))); -// dockWidget->widget()->layout()->addWidget(presets); - - tabs = new QTabWidget(this); - tabs->addTab(createFilesTab(), "Files"); - generateTabId = tabs->addTab(createGenerateTab(), "Generate"); - tabs->addTab(createEditTab(), "Edit"); - tabs->addTab(createExportTab(), "Export"); - connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); - tabChanged(tabs->currentIndex()); - - dockWidget->widget()->layout()->addWidget(tabs); - - VolumeFader *vol = new VolumeFader(); - connect(vol, SIGNAL(volumeChangedDb(double)), - &player, SLOT(setGainDB(double))); - connect(&player, SIGNAL(peakUpdate(double)), - vol, SLOT(updatePeakPower(double))); -// connect(&player, SIGNAL(peakUpdateDB(double)), -// vol, SLOT(updatePeakDb(double))); - - vol->setVolumeDb(0); - dockWidget->widget()->layout()->addWidget(vol); - - addDockWidget(Qt::LeftDockWidgetArea, dockWidget); - - canvaswidget->yscale->setValue(0.9); - canvaswidget->yoffset->setValue(MAXVAL/2); - canvaswidget->xscale->setValue(0); - canvaswidget->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"); + { + int start = 44100 * 60; + Selection p(start, start + 44100 * 60, 0, 0); // one minute selection + selections_preview.add(p); + } + + QWidget* central = new QWidget(); + QHBoxLayout* lh = new QHBoxLayout(); + QVBoxLayout* lv = new QVBoxLayout(); + central->setLayout(lv); + setCentralWidget(central); + + extractor = new AudioExtractor(selections, this); + //canvas = new Canvas(this); + canvaswidget = new CanvasWidget(this); + + QToolBar* toolbar = addToolBar("Tools"); + listen = new CanvasToolListen(canvaswidget->canvas, player); + addTool(toolbar, canvaswidget->canvas, listen); + threshold = new CanvasToolThreshold(canvaswidget->canvas); + canvaswidget->canvas->tools.push_back(threshold);//addTool(toolbar, canvaswidget->canvas, threshold); + tool_selections = new CanvasToolSelections(canvaswidget->canvas, selections, + selections_preview); + connect(threshold, SIGNAL(thresholdChanged(double)), + tool_selections, SLOT(thresholdChanged(double))); + connect(threshold, SIGNAL(thresholdChanging(double)), + tool_selections, SLOT(thresholdChanged(double))); + connect(&selections, SIGNAL(activeChanged(sel_id_t)), + canvaswidget->canvas, SLOT(update())); + connect(&selections, SIGNAL(updated(sel_id_t)), + canvaswidget->canvas, SLOT(update())); + addTool(toolbar, canvaswidget->canvas, tool_selections); + + QMenu* fileMenu = menuBar()->addMenu("&File"); + QAction* act_quit = new QAction("&Quit", this); + fileMenu->addAction(act_quit); + connect(act_quit, SIGNAL(triggered()), this, SLOT(close())); + + // QWidget* dock = new QWidget(); + + //yoffset = new QScrollBar(Qt::Vertical); + //yoffset->setRange(0, MAXVAL); + //yoffset->setPageStep(PAGESTEP); + //yoffset->setSingleStep(SINGLESTEP); + //connect(yoffset, SIGNAL(valueChanged(int)), this, SLOT(setYOffset(int))); + // + //yscale = new ZoomSlider(Qt::Vertical); + //yscale->setRange(0.9, 30); + //yscale->setTickWidth(0.1); + //connect(yscale, SIGNAL(valueChanged(float)), this, SLOT(setYScale(float))); + // + //xscale = new ZoomSlider(Qt::Horizontal); + //xscale->setRange(1, 0.0001); + //xscale->setTickWidth(0.0001); + //connect(xscale, SIGNAL(valueChanged(float)), this, SLOT(setXScale(float))); + // + //xoffset = new QScrollBar(Qt::Horizontal); + //xoffset->setRange(0, MAXVAL); + //xoffset->setPageStep(PAGESTEP); + //xoffset->setSingleStep(SINGLESTEP); + //connect(xoffset, SIGNAL(valueChanged(int)), this, SLOT(setXOffset(int))); + + sorter = new SampleSorter(selections, selections_preview); + connect(&selections, SIGNAL(added(sel_id_t)), + sorter, SLOT(addSelection(sel_id_t))); + connect(&selections_preview, SIGNAL(added(sel_id_t)), + sorter, SLOT(addSelectionPreview(sel_id_t))); + connect(&selections, SIGNAL(updated(sel_id_t)), sorter, SLOT(relayout())); + connect(&selections_preview, SIGNAL(updated(sel_id_t)), + sorter, SLOT(relayout())); + connect(&selections, SIGNAL(removed(sel_id_t)), sorter, SLOT(relayout())); + connect(&selections_preview, SIGNAL(removed(sel_id_t)), + sorter, SLOT(relayout())); + connect(&selections, SIGNAL(activeChanged(sel_id_t)), + sorter, SLOT(relayout())); + + QPushButton* btn_playsamples = new QPushButton("Play samples"); + connect(btn_playsamples, SIGNAL(clicked()), this, SLOT(playSamples())); + + sb_playsamples = new QScrollBar(Qt::Horizontal); + sb_playsamples->setRange(100, 4000); // ms + + + lh->addWidget(canvaswidget); + //lh->addWidget(yscale); + //lh->addWidget(yoffset); + lv->addLayout(lh, 100); + //lv->addWidget(xscale, 100); + //lv->addWidget(xoffset, 100); + lv->addWidget(sorter, 15); + lv->addWidget(btn_playsamples); + lv->addWidget(sb_playsamples); + + + QDockWidget* dockWidget = new QDockWidget(tr("Dock Widget"), this); + dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + + dockWidget->setWidget(new QWidget()); + dockWidget->widget()->setLayout(new QVBoxLayout()); + + //dockWidget->widget()->layout()->addWidget(new QLabel("Presets:")); + //presets = new QComboBox(); + //connect(presets, SIGNAL(currentIndexChanged(int)), + // this, SLOT(setPreset(int))); + //dockWidget->widget()->layout()->addWidget(presets); + + tabs = new QTabWidget(this); + tabs->addTab(createFilesTab(), "Files"); + generateTabId = tabs->addTab(createGenerateTab(), "Generate"); + tabs->addTab(createEditTab(), "Edit"); + tabs->addTab(createExportTab(), "Export"); + connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); + tabChanged(tabs->currentIndex()); + + dockWidget->widget()->layout()->addWidget(tabs); + + VolumeFader* vol = new VolumeFader(); + connect(vol, SIGNAL(volumeChangedDb(double)), + &player, SLOT(setGainDB(double))); + connect(&player, SIGNAL(peakUpdate(double)), + vol, SLOT(updatePeakPower(double))); + //connect(&player, SIGNAL(peakUpdateDB(double)), + // vol, SLOT(updatePeakDb(double))); + + vol->setVolumeDb(0); + dockWidget->widget()->layout()->addWidget(vol); + + addDockWidget(Qt::LeftDockWidgetArea, dockWidget); + + canvaswidget->yscale->setValue(0.9); + canvaswidget->yoffset->setValue(MAXVAL/2); + canvaswidget->xscale->setValue(0); + canvaswidget->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"); } MainWindow::~MainWindow() @@ -234,329 +231,338 @@ MainWindow::~MainWindow() void MainWindow::tabChanged(int tabid) { - tool_selections->setShowPreview(tabid == generateTabId); - sorter->setShowPreview(tabid == generateTabId); - tool_selections->autoCreateSelectionsPreview(); - threshold->setActive(tabid == generateTabId); + tool_selections->setShowPreview(tabid == generateTabId); + sorter->setShowPreview(tabid == generateTabId); + tool_selections->autoCreateSelectionsPreview(); + threshold->setActive(tabid == generateTabId); } -QWidget *MainWindow::createFilesTab() +QWidget* MainWindow::createFilesTab() { - QWidget *w = new QWidget(); - QVBoxLayout *l = new QVBoxLayout(); - w->setLayout(l); - - l->addWidget(new QLabel("Files: (double-click to set as master)")); - QPushButton *loadbtn = new QPushButton(); - loadbtn->setText("Add files..."); - l->addWidget(loadbtn); - - filelist = new FileList(); - connect(filelist, SIGNAL(masterFileChanged(QString)), - this, SLOT(loadFile(QString))); - connect(loadbtn, SIGNAL(clicked()), filelist, SLOT(addFiles())); - connect(filelist, SIGNAL(fileAdded(QString, QString)), - extractor, SLOT(addFile(QString, QString))); - connect(filelist, SIGNAL(fileRemoved(QString, QString)), - extractor, SLOT(removeFile(QString, QString))); - connect(filelist, SIGNAL(nameChanged(QString, QString)), - extractor, SLOT(changeName(QString, QString))); - l->addWidget(filelist); - - return w; + QWidget* w = new QWidget(); + QVBoxLayout* l = new QVBoxLayout(); + w->setLayout(l); + + l->addWidget(new QLabel("Files: (double-click to set as master)")); + QPushButton* loadbtn = new QPushButton(); + loadbtn->setText("Add files..."); + l->addWidget(loadbtn); + + filelist = new FileList(); + connect(filelist, SIGNAL(masterFileChanged(QString)), + this, SLOT(loadFile(QString))); + connect(loadbtn, SIGNAL(clicked()), filelist, SLOT(addFiles())); + connect(filelist, SIGNAL(fileAdded(QString, QString)), + extractor, SLOT(addFile(QString, QString))); + connect(filelist, SIGNAL(fileRemoved(QString, QString)), + extractor, SLOT(removeFile(QString, QString))); + connect(filelist, SIGNAL(nameChanged(QString, QString)), + extractor, SLOT(changeName(QString, QString))); + l->addWidget(filelist); + + return w; } -QWidget *MainWindow::createEditTab() +QWidget* MainWindow::createEditTab() { - SelectionEditor *se = new SelectionEditor(selections); + SelectionEditor* se = new SelectionEditor(selections); - connect(&selections, SIGNAL(added(sel_id_t)), se, SLOT(added(sel_id_t))); - connect(&selections, SIGNAL(updated(sel_id_t)), se, SLOT(updated(sel_id_t))); - connect(&selections, SIGNAL(removed(sel_id_t)), se, SLOT(removed(sel_id_t))); - connect(&selections, SIGNAL(activeChanged(sel_id_t)), - se, SLOT(activeChanged(sel_id_t))); + connect(&selections, SIGNAL(added(sel_id_t)), se, SLOT(added(sel_id_t))); + connect(&selections, SIGNAL(updated(sel_id_t)), se, SLOT(updated(sel_id_t))); + connect(&selections, SIGNAL(removed(sel_id_t)), se, SLOT(removed(sel_id_t))); + connect(&selections, SIGNAL(activeChanged(sel_id_t)), + se, SLOT(activeChanged(sel_id_t))); - return se; + return se; } -QSlider *createAttribute(QWidget *parent, QString name, +QSlider* createAttribute(QWidget* parent, QString name, int range_from, int range_to) { - QSlider *slider; + QSlider* slider; + + QGridLayout* l = new QGridLayout(); - QGridLayout *l = new QGridLayout(); - - l->addWidget(new QLabel(name), 0, 0, 1, 2); + l->addWidget(new QLabel(name), 0, 0, 1, 2); - QSpinBox *spin = new QSpinBox(); - spin->setRange(range_from, range_to); - l->addWidget(spin, 1, 0, 1, 1); + QSpinBox* spin = new QSpinBox(); + spin->setRange(range_from, range_to); + l->addWidget(spin, 1, 0, 1, 1); - slider = new QSlider(Qt::Horizontal); - slider->setRange(range_from, range_to); - l->addWidget(slider, 1, 1, 1,1); + slider = new QSlider(Qt::Horizontal); + slider->setRange(range_from, range_to); + l->addWidget(slider, 1, 1, 1,1); - QObject::connect(spin, SIGNAL(valueChanged(int)), - slider, SLOT(setValue(int))); - QObject::connect(slider, SIGNAL(valueChanged(int)), - spin, SLOT(setValue(int))); + QObject::connect(spin, SIGNAL(valueChanged(int)), + slider, SLOT(setValue(int))); + QObject::connect(slider, SIGNAL(valueChanged(int)), + spin, SLOT(setValue(int))); - ((QBoxLayout *)parent->layout())->addLayout(l); + ((QBoxLayout*)parent->layout())->addLayout(l); - return slider; + return slider; } -QWidget *MainWindow::createGenerateTab() +QWidget* MainWindow::createGenerateTab() { - QWidget *w = new QWidget(); - QVBoxLayout *l = new QVBoxLayout(); - w->setLayout(l); - - QHBoxLayout *btns = new QHBoxLayout(); - - QPushButton *autosel = new QPushButton(); - autosel->setText("Generate"); - connect(autosel, SIGNAL(clicked()), - tool_selections, SLOT(clearSelections())); - connect(autosel, SIGNAL(clicked()), - tool_selections, SLOT(autoCreateSelections())); - - connect(threshold, SIGNAL(thresholdChanged(double)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - connect(threshold, SIGNAL(thresholdChanging(double)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - - QPushButton *clearsel = new QPushButton(); - clearsel->setText("Clear"); - connect(clearsel, SIGNAL(clicked()), - tool_selections, SLOT(clearSelections())); - - btns->addWidget(autosel); - btns->addWidget(clearsel); - - l->addLayout(btns); - - slider_attacklength = createAttribute(w, "Attack length:", 10, 1000); - connect(slider_attacklength, SIGNAL(valueChanged(int)), - sorter, SLOT(setAttackLength(int))); - connect(slider_attacklength, SIGNAL(valueChanged(int)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - slider_attacklength->setValue(300); - - slider_spread = createAttribute(w, "Power spread:", 1, 2000); - connect(slider_spread, SIGNAL(valueChanged(int)), - sorter, SLOT(setSpreadFactor(int))); - connect(slider_spread, SIGNAL(valueChanged(int)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - slider_spread->setValue(1000); - - slider_hold = createAttribute(w, "Minimum size (samples):", 0, 200000); - connect(slider_hold, SIGNAL(valueChanged(int)), - tool_selections, SLOT(holdChanged(int))); - connect(slider_hold, SIGNAL(valueChanged(int)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - slider_hold->setValue(100); - - slider_falloff = createAttribute(w, "Falloff:", 10, 5000); - connect(slider_falloff, SIGNAL(valueChanged(int)), - tool_selections, SLOT(noiseFloorChanged(int))); - connect(slider_falloff, SIGNAL(valueChanged(int)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - slider_falloff->setValue(300); - - slider_fadelength = createAttribute(w, "Fadelength:", 0, 2000); - connect(slider_fadelength, SIGNAL(valueChanged(int)), - tool_selections, SLOT(fadeoutChanged(int))); - connect(slider_fadelength, SIGNAL(valueChanged(int)), - tool_selections, SLOT(autoCreateSelectionsPreview())); - slider_fadelength->setValue(666); - - l->addStretch(); - - return w; + QWidget* w = new QWidget(); + QVBoxLayout* l = new QVBoxLayout(); + w->setLayout(l); + + QHBoxLayout* btns = new QHBoxLayout(); + + QPushButton* autosel = new QPushButton(); + autosel->setText("Generate"); + connect(autosel, SIGNAL(clicked()), + tool_selections, SLOT(clearSelections())); + connect(autosel, SIGNAL(clicked()), + tool_selections, SLOT(autoCreateSelections())); + + connect(threshold, SIGNAL(thresholdChanged(double)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + connect(threshold, SIGNAL(thresholdChanging(double)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + + QPushButton* clearsel = new QPushButton(); + clearsel->setText("Clear"); + connect(clearsel, SIGNAL(clicked()), + tool_selections, SLOT(clearSelections())); + + btns->addWidget(autosel); + btns->addWidget(clearsel); + + l->addLayout(btns); + + slider_attacklength = createAttribute(w, "Attack length:", 10, 1000); + connect(slider_attacklength, SIGNAL(valueChanged(int)), + sorter, SLOT(setAttackLength(int))); + connect(slider_attacklength, SIGNAL(valueChanged(int)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + slider_attacklength->setValue(300); + + slider_spread = createAttribute(w, "Power spread:", 1, 2000); + connect(slider_spread, SIGNAL(valueChanged(int)), + sorter, SLOT(setSpreadFactor(int))); + connect(slider_spread, SIGNAL(valueChanged(int)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + slider_spread->setValue(1000); + + slider_hold = createAttribute(w, "Minimum size (samples):", 0, 200000); + connect(slider_hold, SIGNAL(valueChanged(int)), + tool_selections, SLOT(holdChanged(int))); + connect(slider_hold, SIGNAL(valueChanged(int)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + slider_hold->setValue(100); + + slider_falloff = createAttribute(w, "Falloff:", 10, 5000); + connect(slider_falloff, SIGNAL(valueChanged(int)), + tool_selections, SLOT(noiseFloorChanged(int))); + connect(slider_falloff, SIGNAL(valueChanged(int)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + slider_falloff->setValue(300); + + slider_fadelength = createAttribute(w, "Fadelength:", 0, 2000); + connect(slider_fadelength, SIGNAL(valueChanged(int)), + tool_selections, SLOT(fadeoutChanged(int))); + connect(slider_fadelength, SIGNAL(valueChanged(int)), + tool_selections, SLOT(autoCreateSelectionsPreview())); + slider_fadelength->setValue(666); + + l->addStretch(); + + return w; } -QWidget *MainWindow::createExportTab() +QWidget* MainWindow::createExportTab() { - QWidget *w = new QWidget(); - QVBoxLayout *l = new QVBoxLayout(); - w->setLayout(l); - - l->addWidget(new QLabel("Prefix:")); - prefix = new QLineEdit(); - connect(prefix, SIGNAL(textChanged(const QString &)), - extractor, SLOT(setOutputPrefix(const QString &))); - l->addWidget(prefix); - - l->addWidget(new QLabel("Export path:")); - QHBoxLayout *lo_exportp = new QHBoxLayout(); - lineed_exportp = new QLineEdit(); - connect(lineed_exportp, SIGNAL(textChanged(const QString &)), - extractor, SLOT(setExportPath(const QString &))); - lo_exportp->addWidget(lineed_exportp); - QPushButton *btn_browse = new QPushButton("..."); - connect(btn_browse, SIGNAL(clicked()), this, SLOT(browse())); - lo_exportp->addWidget(btn_browse); - - l->addLayout(lo_exportp); - - QPushButton *exportsel = new QPushButton(); - exportsel->setText("Export"); - connect(exportsel, SIGNAL(clicked()), this, SLOT(doExport())); - l->addWidget(exportsel); - - QProgressBar *bar = new QProgressBar(); - connect(extractor, SIGNAL(progressUpdate(int)), bar, SLOT(setValue(int))); - connect(extractor, SIGNAL(setMaximumProgress(int)), - bar, SLOT(setMaximum(int))); - l->addWidget(bar); - - l->addStretch(); - - return w; + QWidget* w = new QWidget(); + QVBoxLayout* l = new QVBoxLayout(); + w->setLayout(l); + + l->addWidget(new QLabel("Prefix:")); + prefix = new QLineEdit(); + connect(prefix, SIGNAL(textChanged(const QString &)), + extractor, SLOT(setOutputPrefix(const QString &))); + l->addWidget(prefix); + + l->addWidget(new QLabel("Export path:")); + QHBoxLayout* lo_exportp = new QHBoxLayout(); + lineed_exportp = new QLineEdit(); + connect(lineed_exportp, SIGNAL(textChanged(const QString &)), + extractor, SLOT(setExportPath(const QString &))); + lo_exportp->addWidget(lineed_exportp); + QPushButton* btn_browse = new QPushButton("..."); + connect(btn_browse, SIGNAL(clicked()), this, SLOT(browse())); + lo_exportp->addWidget(btn_browse); + + l->addLayout(lo_exportp); + + QPushButton* exportsel = new QPushButton(); + exportsel->setText("Export"); + connect(exportsel, SIGNAL(clicked()), this, SLOT(doExport())); + l->addWidget(exportsel); + + QProgressBar* bar = new QProgressBar(); + connect(extractor, SIGNAL(progressUpdate(int)), bar, SLOT(setValue(int))); + connect(extractor, SIGNAL(setMaximumProgress(int)), + bar, SLOT(setMaximum(int))); + l->addWidget(bar); + + l->addStretch(); + + return w; } void MainWindow::playSamples() { - Selections *sels = &selections; - if(tabs->currentIndex() == generateTabId) sels = &selections_preview; - - QVector<sel_id_t> ids = sels->ids(); - for(int v1 = 0; v1 < ids.size(); v1++) { - for(int v2 = 0; v2 < ids.size(); v2++) { - - Selection sel1 = sels->get(ids[v1]); - Selection sel2 = sels->get(ids[v2]); - - if(sel1.energy < sel2.energy) { - sel_id_t vtmp = ids[v1]; - ids[v1] = ids[v2]; - ids[v2] = vtmp; - } - } - } - - QVector<sel_id_t>::iterator i = ids.begin(); - while(i != ids.end()) { - Selection sel = sels->get(*i); - - unsigned int length = sb_playsamples->value() * 44100 / 1000; - - unsigned int sample_length = sel.to - sel.from; - - unsigned int to = sel.to; - - if(sample_length > length) to = sel.from + length; - - sels->setActive(*i); - - connect(&player, SIGNAL(positionUpdate(size_t)), - listen, SLOT(update(size_t))); - - player.playSelection(sel, to - sel.from); - QTime t; - t.start(); - while(t.elapsed() < sb_playsamples->value()) { - qApp->processEvents(); - q_usleep(25 * 1000); - } - player.stop(); - - disconnect(&player, SIGNAL(positionUpdate(size_t)), - listen, SLOT(update(size_t))); - i++; - } + Selections* sels = &selections; + if(tabs->currentIndex() == generateTabId) + { + sels = &selections_preview; + } + + QVector<sel_id_t> ids = sels->ids(); + for(int v1 = 0; v1 < ids.size(); v1++) + { + for(int v2 = 0; v2 < ids.size(); v2++) + { + Selection sel1 = sels->get(ids[v1]); + Selection sel2 = sels->get(ids[v2]); + + if(sel1.energy < sel2.energy) + { + sel_id_t vtmp = ids[v1]; + ids[v1] = ids[v2]; + ids[v2] = vtmp; + } + } + } + + QVector<sel_id_t>::iterator i = ids.begin(); + while(i != ids.end()) + { + Selection sel = sels->get(*i); + + unsigned int length = sb_playsamples->value() * 44100 / 1000; + + unsigned int sample_length = sel.to - sel.from; + + unsigned int to = sel.to; + + if(sample_length > length) + { + to = sel.from + length; + } + + sels->setActive(*i); + + connect(&player, SIGNAL(positionUpdate(size_t)), + listen, SLOT(update(size_t))); + + player.playSelection(sel, to - sel.from); + QTime t; + t.start(); + while(t.elapsed() < sb_playsamples->value()) + { + qApp->processEvents(); + q_usleep(25 * 1000); + } + player.stop(); + + disconnect(&player, SIGNAL(positionUpdate(size_t)), + listen, SLOT(update(size_t))); + i++; + } } -void MainWindow::closeEvent(QCloseEvent *) +void MainWindow::closeEvent(QCloseEvent*) { - saveSettings(); - QApplication::quit(); + saveSettings(); + QApplication::quit(); } void MainWindow::loadSettings() { - QSettings settings; + QSettings settings; - settings.beginGroup("MainWindow"); - lineed_exportp->setText(settings.value("exportpath", "").toString()); - resize(settings.value("size", QSize(700, 800)).toSize()); - move(settings.value("pos", QPoint(0, 0)).toPoint()); - settings.endGroup(); + settings.beginGroup("MainWindow"); + lineed_exportp->setText(settings.value("exportpath", "").toString()); + resize(settings.value("size", QSize(700, 800)).toSize()); + move(settings.value("pos", QPoint(0, 0)).toPoint()); + settings.endGroup(); } void MainWindow::saveSettings() { - QSettings settings; + QSettings settings; - settings.beginGroup("MainWindow"); - settings.setValue("exportpath", lineed_exportp->text()); - settings.setValue("size", size()); - settings.setValue("pos", pos()); - settings.endGroup(); -} -/* -void MainWindow::setXScale(float val) -{ - canvaswidget->canvas->setXScale(val); + settings.beginGroup("MainWindow"); + settings.setValue("exportpath", lineed_exportp->text()); + settings.setValue("size", size()); + settings.setValue("pos", pos()); + settings.endGroup(); } -void MainWindow::setYScale(float val) -{ - canvaswidget->canvas->setYScale(val); -} - -void MainWindow::setXOffset(int of) -{ - // range 0.0 - 1.0 - float val = (float)of/(float)MAXVAL; - canvaswidget->canvas->setXOffset(val); -} +//void MainWindow::setXScale(float val) +//{ +// canvaswidget->canvas->setXScale(val); +//} +// +//void MainWindow::setYScale(float val) +//{ +// canvaswidget->canvas->setYScale(val); +//} +// +//void MainWindow::setXOffset(int of) +//{ +// // range 0.0 - 1.0 +// float val = (float)of/(float)MAXVAL; +// canvaswidget->canvas->setXOffset(val); +//} +// +//void MainWindow::setYOffset(int of) +//{ +// // range 0.0 - 1.0 +// float val = (float)(of * -1 + MAXVAL)/(float)MAXVAL; +// canvaswidget->canvas->setYOffset(val); +//} -void MainWindow::setYOffset(int of) -{ - // range 0.0 - 1.0 - float val = (float)(of * -1 + MAXVAL)/(float)MAXVAL; - canvaswidget->canvas->setYOffset(val); -} -*/ void MainWindow::doExport() { - extractor->exportSelections(); + extractor->exportSelections(); } void MainWindow::loadFile(QString filename) { - setCursor(Qt::WaitCursor); - statusBar()->showMessage("Loading..."); - qApp->processEvents(); + setCursor(Qt::WaitCursor); + statusBar()->showMessage("Loading..."); + qApp->processEvents(); - sorter->setWavData(NULL, 0); - player.setPcmData(NULL, 0); + sorter->setWavData(NULL, 0); + player.setPcmData(NULL, 0); - canvaswidget->canvas->load(filename); + canvaswidget->canvas->load(filename); - sorter->setWavData(canvaswidget->canvas->data, canvaswidget->canvas->size); - player.setPcmData(canvaswidget->canvas->data, canvaswidget->canvas->size); + sorter->setWavData(canvaswidget->canvas->data, canvaswidget->canvas->size); + player.setPcmData(canvaswidget->canvas->data, canvaswidget->canvas->size); - statusBar()->showMessage("Ready"); - setCursor(Qt::ArrowCursor); + statusBar()->showMessage("Ready"); + setCursor(Qt::ArrowCursor); } -void MainWindow::setPreset(int index) +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); - */ + //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); } -void MainWindow::browse() { - QString path = QFileDialog::getExistingDirectory(this, "Select export path", - lineed_exportp->text()); - lineed_exportp->setText(path); +void MainWindow::browse() +{ + QString path = QFileDialog::getExistingDirectory(this, "Select export path", + lineed_exportp->text()); + lineed_exportp->setText(path); } |