Renamed the QTableWidget / added slots and signals

master
Yohann Dedy 2016-07-12 20:58:40 +02:00
parent 2cd987fd2d
commit 93b0d837a4
2 changed files with 86 additions and 14 deletions

View File

@ -1,40 +1,73 @@
#include "mainwindow.h"
#include <QHBoxLayout>
#include <vector>
#include <QDebug>
mainWindow::mainWindow(QWidget *parent) :
QMainWindow(parent),
_presets(new QTableWidget),
_presetSettings(new QTableWidget)
_presetsTable(new QTableWidget),
_presetSettingsTable(new QTableWidget)
{
QWidget *mainWidget = new QWidget(this);
QHBoxLayout *mainLayout = new QHBoxLayout(mainWidget);
_presets->setRowCount(128);
_presets->setColumnCount(1);
_presetsTable->setRowCount(128);
_presetsTable->setColumnCount(1);
for(int i=0; i<_presets->rowCount(); i++){
for(int i=0; i<_presetsTable->rowCount(); i++){
QString defaultCelString = QString("Preset #%1").arg(i+1);
QTableWidgetItem *celContent = new QTableWidgetItem(defaultCelString);
_presets->setItem(i, 0, celContent);
_presetsTable->setItem(i, 0, celContent);
}
_presets->horizontalHeader()->setVisible(false);
_presetsTable->horizontalHeader()->setVisible(false);
QStringList settingsList;
settingsList << "Channel" << "Description"<< "Type" << "Parameter";
_presetSettings->setRowCount(16);
_presetSettings->setColumnCount(4);
_presetSettings->setHorizontalHeaderLabels(settingsList);
_presetSettingsTable->setRowCount(16);
_presetSettingsTable->setColumnCount(4);
_presetSettingsTable->setHorizontalHeaderLabels(settingsList);
mainLayout->addWidget(_presets);
mainLayout->addWidget(_presetSettings);
mainLayout->addWidget(_presetsTable);
mainLayout->addWidget(_presetSettingsTable);
mainWidget->setLayout(mainLayout);
setCentralWidget(mainWidget);
connect(_midiIn, SIGNAL(midiMessageReceived(QMidiMessage*)), this, SLOT(onMidiMessageReceive(QMidiMessage*)));
}
mainWindow::~mainWindow()
{
}
void mainWindow::onMidiMessageReceive(QMidiMessage *message)
{
std::vector<unsigned char> rawMessage = message->getRawMessage();
// MAKE SURE THE RECEIVED MESSAGE IS COMING FROM A POCKETC (F0 00 20 20 14 00) AND THAT message.size() > 7 BYTES
if(rawMessage.size() > 7)
{
// PROCESS THE MESSAGE ACCORDING TO THE BYTE #7
switch(rawMessage.at(6))
{
case THRU_MC_DUMP:
{
break;
}
case SINGLE_DUMP:
{
break;
}
case VERSION_ANS:
{
break;
}
}
}
//qDebug() << "BYTE #7 : " << rawMessage.at(6) ; // DEBUG
}

View File

@ -5,18 +5,57 @@
#include <QMainWindow>
#include <QtWidgets>
#include <QTableWidget>
#include <vector>
#include <bitset>
#include "qmidimessage.h"
#include "qmidiin.h"
#include "qmidiout.h"
enum deviceCommandByte {
SINGLE_DUMP = 0x20,
SINGLE_STORE = 0x30,
SINGLE_STORE_REQ = 0x26,
THRU_MC_DUMP = 0x50,
THRU_MC_DUMP_REQ = 0x56,
VERSION_REQ = 0x06,
VERSION_ANS = 0x00,
};
class mainWindow : public QMainWindow
{
Q_OBJECT
public:
mainWindow(QWidget *parent = 0);
QTableWidget* _presets;
QTableWidget* _presetSettings;
QTableWidget* _presetsTable;
QTableWidget* _presetSettingsTable;
~mainWindow();
QMidiMessage* _midiMessage;
deviceCommandByte _deviceCommandByte;
int _currentPreset;
int _masterChannel;
std::vector<unsigned int> _presetSettings;
private:
QMidiIn *_midiIn;
QMidiOut *_midiOut;
signals:
void singleDumpReceived(QMidiMessage* message);
void thruMasterChnDumpReceived(QMidiMessage* message);
void versionAnswerReceived(QMidiMessage* message);
public slots:
void onMidiMessageReceive(QMidiMessage* message);
//void updateDeviceConfig(std::bitset<3> thru, int mastChn);
//void updatePresetSettings(std::vector<unsigned int>* presetSettings);
};
#endif // MAINWINDOW_H