From 94c2ce8ed922e956bc2221e6815d94d1823310c5 Mon Sep 17 00:00:00 2001 From: Yohann Dedy Date: Sun, 30 Oct 2016 20:16:06 +0100 Subject: [PATCH] added slots and widgets to get single preset (currently selected) and all presets --- src/mainwindow.cpp | 34 ++++++++++++++++++++++++++++++++++ src/mainwindow.h | 3 ++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6a78532..f14ecc9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,6 +1,7 @@ #include "mainwindow.h" #include #include +#include #include #include @@ -27,6 +28,14 @@ mainWindow::mainWindow(QWidget *parent) : QMenu* mainMenu = new QMenu("File", _menuBar); QAction* settings = mainMenu->addAction("Settings"); mainMenu->addSeparator(); + + QMenu* get = mainMenu->addMenu("Get"); + QAction* getSingle = get->addAction("Get this preset"); + connect(getSingle,SIGNAL(triggered(bool)),this,SLOT(sendSingleDumpRequest())); + + QAction* getAll = get->addAction("Get all presets"); + connect(getAll,SIGNAL(triggered(bool)),this,SLOT(sendAllDumpRequest())); + QMenu* send = mainMenu->addMenu("Send"); QAction* sendSingle = send->addAction("Send this preset"); QAction* sendAll = send->addAction("Send all presets"); @@ -34,6 +43,12 @@ mainWindow::mainWindow(QWidget *parent) : _menuBar->addMenu(mainMenu); mainLayout->addWidget(_menuBar); + QPushButton *getPresetButton = new QPushButton; + getPresetButton->setText("Get preset"); + mainLayout->addWidget(getPresetButton); + connect(getPresetButton, SIGNAL(clicked(bool)),this,SLOT(sendSingleDumpRequest())); + + // Table for(int i=0; i<128; i++){ QString defaultCelString = QString("Preset #%1").arg(i+1); @@ -142,3 +157,22 @@ void mainWindow::sendThruMasterChnRequest(){ rawRequest.push_back(0xF7); if(_midiOut->isPortOpen()) _midiOut->sendRawMessage(rawRequest); } + +void mainWindow::sendSingleDumpRequest(){ + std::vector rawRequest; + rawRequest = _prefixPocketC; + rawRequest.push_back(0x26); + rawRequest.push_back(_presetsList->currentRow()); + rawRequest.push_back(0x00); + rawRequest.push_back(0xF7); + if(_midiOut->isPortOpen()) _midiOut->sendRawMessage(rawRequest); +} + +void mainWindow::sendAllDumpRequest(){ + _presetsList->setCurrentRow(0); + for(int i=0; i<_presetsList->count(); i++){ + _presetsList->setCurrentRow(i); + sendSingleDumpRequest(); + } + +} diff --git a/src/mainwindow.h b/src/mainwindow.h index 2281690..c08bcf5 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -63,7 +63,8 @@ public slots: private slots: void openMidiPorts(); void sendThruMasterChnRequest(); - + void sendSingleDumpRequest(); + void sendAllDumpRequest(); };