diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f14ecc9..98d27f0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -100,6 +100,7 @@ void mainWindow::onMidiMessageReceive(QMidiMessage *message) case SINGLE_DUMP: { + this->updatePreset(message); break; } case VERSION_ANS: @@ -118,7 +119,8 @@ void mainWindow::openSettingsWindow() _settingsWindow->show(); } -void mainWindow::updateDeviceConfig(){ +void mainWindow::updateDeviceConfig() +{ if(!_midiOut->isPortOpen()) return; std::bitset<3> *thru = _settingsWindow->_thruBitset; @@ -135,6 +137,14 @@ void mainWindow::updateDeviceConfig(){ } +void mainWindow::updatePreset(QMidiMessage *message) +{ + int presetNum = message->getRawMessage().at(7); + for(int i=0; i<48; i++){ + _preset[presetNum][i] = message->getRawMessage().at(9+i); + } +} + void mainWindow::openMidiPorts(){ _midiIn->closePort(); _midiOut->closePort(); diff --git a/src/mainwindow.h b/src/mainwindow.h index b30be73..e0857f6 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -41,6 +41,8 @@ public: QMidiMessage* _midiMessage; deviceCommandByte _deviceCommandByte; + unsigned char _preset[128][48]; + std::vector _presetSettings; private: @@ -57,7 +59,8 @@ public slots: void onMidiMessageReceive(QMidiMessage* message); void openSettingsWindow(); void updateDeviceConfig(); - //void updatePresetSettings(std::vector* presetSettings); + void updatePreset(QMidiMessage* message); + private slots: void openMidiPorts(); void sendThruMasterChnRequest();