Cleaner layout for the Settings window

Slots for Midi in/out port open
master
Yohann Dedy 2016-07-17 19:16:47 +02:00
parent 4bbee5293f
commit 53b28ae6cb
4 changed files with 68 additions and 6 deletions

View File

@ -10,9 +10,9 @@ mainWindow::mainWindow(QWidget *parent) :
_presetsTable(new QTableWidget), _presetsTable(new QTableWidget),
_presetSettingsTable(new QTableWidget), _presetSettingsTable(new QTableWidget),
_menuBar(new QMenuBar), _menuBar(new QMenuBar),
_midiIn(new QMidiIn), _midiMessage(new QMidiMessage),
_midiOut(new QMidiOut), _midiIn(new QMidiIn(this)),
_midiMessage(new QMidiMessage) _midiOut(new QMidiOut(this))
{ {
//_midiIn->openPort(NULL); //_midiIn->openPort(NULL);
//_midiOut->openPort(NULL); //_midiOut->openPort(NULL);
@ -74,6 +74,8 @@ mainWindow::~mainWindow()
} }
// SLOTS
void mainWindow::onMidiMessageReceive(QMidiMessage *message) void mainWindow::onMidiMessageReceive(QMidiMessage *message)
{ {
std::vector<unsigned char> rawMessage = message->getRawMessage(); std::vector<unsigned char> rawMessage = message->getRawMessage();
@ -102,9 +104,24 @@ void mainWindow::onMidiMessageReceive(QMidiMessage *message)
//qDebug() << "BYTE #7 : " << rawMessage.at(6) ; // DEBUG //qDebug() << "BYTE #7 : " << rawMessage.at(6) ; // DEBUG
} }
void mainWindow::openSettingsWindow(){ void mainWindow::openSettingsWindow()
{
qDebug() << "Open settings window here" ; qDebug() << "Open settings window here" ;
_settingsWindow->setWindowModality(Qt::ApplicationModal); _settingsWindow->setWindowModality(Qt::ApplicationModal);
_settingsWindow->show(); _settingsWindow->show();
} }
void mainWindow::openMidiOutPort(unsigned int port)
{
if(_midiOut->isPortOpen()) _midiOut->closePort();
_midiOut->openPort(port);
}
void mainWindow::openMidiInPort(unsigned int port)
{
if(_midiIn->isPortOpen()) _midiIn->closePort();
_midiIn->openPort(port);
}

View File

@ -60,6 +60,9 @@ public slots:
void openSettingsWindow(); void openSettingsWindow();
//void updateDeviceConfig(std::bitset<3> thru, int mastChn); //void updateDeviceConfig(std::bitset<3> thru, int mastChn);
//void updatePresetSettings(std::vector<unsigned int>* presetSettings); //void updatePresetSettings(std::vector<unsigned int>* presetSettings);
void openMidiOutPort(unsigned int port);
void openMidiInPort(unsigned int port);
}; };

View File

@ -2,14 +2,22 @@
#include <QPushButton> #include <QPushButton>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QDebug> #include <QDebug>
#include <QGroupBox>
#include <QCheckBox>
#include <QSpinBox>
#include <QLabel> #include <QLabel>
#include <bitset>
settingsWindow::settingsWindow(QWidget *parent) : settingsWindow::settingsWindow(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
_midiIn(new QMidiIn), _midiIn(new QMidiIn),
_midiOut(new QMidiOut), _midiOut(new QMidiOut),
_midiMessage(new QMidiMessage), _midiMessage(new QMidiMessage),
_inPortComboBox(new QComboBox(this)), _inPortComboBox(new QComboBox(this)),
_outPortComboBox(new QComboBox(this)) _outPortComboBox(new QComboBox(this)),
_channelThruCheckBox(new QCheckBox(this)),
_sysexThruCheckBox(new QCheckBox(this)),
_realtimeThruCheckBox(new QCheckBox(this)),
_masterChannelSpinBox(new QSpinBox(this))
{ {
this->setWindowTitle("Configuration"); this->setWindowTitle("Configuration");
@ -24,17 +32,42 @@ settingsWindow::settingsWindow(QWidget *parent) :
QPushButton *bouton = new QPushButton(); QPushButton *bouton = new QPushButton();
bouton->setText("OK"); bouton->setText("Apply");
// THRU MASTER CHANNEL
QGroupBox *thruChnBox = new QGroupBox("Thru Settings");
_channelThruCheckBox->setText("Channel Events Thru (BIT0)");
_sysexThruCheckBox->setText("Sysex Events Thru (BIT1)");
_realtimeThruCheckBox->setText("Realtim Events Thru (BIT2)");
_masterChannelSpinBox->setValue(1);
QPushButton *getConfigButton = new QPushButton;
getConfigButton->setText("Get configuration");
QPushButton *setConfigButton = new QPushButton;
setConfigButton->setText("Set configuration");
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(_channelThruCheckBox);
vbox->addWidget(_sysexThruCheckBox);
vbox->addWidget(_realtimeThruCheckBox);
vbox->addWidget(_masterChannelSpinBox);
vbox->addWidget(getConfigButton);
vbox->addWidget(setConfigButton);
thruChnBox->setLayout(vbox);
// END THRU MASTER CHANNEL
mainLayout->addWidget(new QLabel("Midi IN")); mainLayout->addWidget(new QLabel("Midi IN"));
mainLayout->addWidget(_inPortComboBox); mainLayout->addWidget(_inPortComboBox);
mainLayout->addWidget(new QLabel("Midi OUT")); mainLayout->addWidget(new QLabel("Midi OUT"));
mainLayout->addWidget(_outPortComboBox); mainLayout->addWidget(_outPortComboBox);
mainLayout->addWidget(bouton); mainLayout->addWidget(bouton);
mainLayout->addWidget(thruChnBox);
mainWidget->setLayout(mainLayout); mainWidget->setLayout(mainLayout);
setCentralWidget(mainWidget); setCentralWidget(mainWidget);
} }

View File

@ -4,6 +4,9 @@
#include <QWidget> #include <QWidget>
#include <QMainWindow> #include <QMainWindow>
#include <QComboBox> #include <QComboBox>
#include <QGroupBox>;
#include <QCheckBox>
#include <QSpinBox>
#include "qmidimessage.h" #include "qmidimessage.h"
#include "qmidiin.h" #include "qmidiin.h"
@ -19,6 +22,12 @@ public:
QComboBox *_inPortComboBox; QComboBox *_inPortComboBox;
QComboBox *_outPortComboBox; QComboBox *_outPortComboBox;
QCheckBox *_channelThruCheckBox;
QCheckBox *_sysexThruCheckBox;
QCheckBox *_realtimeThruCheckBox;
QSpinBox *_masterChannelSpinBox;
private: private:
QMidiIn *_midiIn; QMidiIn *_midiIn;
QMidiOut *_midiOut; QMidiOut *_midiOut;