diff --git a/MainWindow.cpp b/MainWindow.cpp deleted file mode 100644 index dbd5f0d..0000000 --- a/MainWindow.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "MainWindow.h" -#include -#include - -#include -#include -#include - -MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) -{ - tabWidget = new QTabWidget(this); - - pianoKeyBoard = new PianoKeyBoard(-350, 175, 700, 500, this); - circleOfFifths = new CircleOfFifths(-250, 0, 500, 500, this); - scene_Demo = new QGraphicsScene(-250,0,500,500, this); - - gV_Keyboard = new QGraphicsView(pianoKeyBoard, tabWidget); - gV_CircleOfFifths = new QGraphicsView(circleOfFifths, tabWidget); - gV_Demo = new QGraphicsView(scene_Demo, tabWidget); - midiLog = new QPlainTextEdit(); - - - tabWidget->addTab(gV_Keyboard, "Keyboard"); - tabWidget->addTab(gV_CircleOfFifths, "Circle of Fifths"); - tabWidget->addTab(gV_Demo, "Lightshow Demonstration"); - tabWidget->addTab(midiLog, "Midi Messages Log"); - - setCentralWidget(tabWidget); - midiPiano = new MidiListener; - - midiPiano->moveToThread(&midiThread); - - connect(this, &MainWindow::stopMidi, midiPiano, &MidiListener::stop); - // Wenn THIS das signal "startMidiListener" abgibt, wird Slot midiPiano->start ausgeführt - connect(this, &MainWindow::startMidiListener, midiPiano, &MidiListener::start); - connect(this, &MainWindow::nextMidiMessage, midiPiano, &MidiListener::listen); - // Wenn midiPiano das signal "newMidiMessage" abgibt, wird this.handlemidimessage ausgeführt - connect(midiPiano, &MidiListener::newMidiMessage, this, &MainWindow::handleMidiMessage); - midiThread.start(); - MidiProbe * probe = new MidiProbe(); - emit startMidiListener(probe->getPort()); - -} - -void MainWindow::lightShowDemonstration(int b1, int b2, int b3) -{ - if(b1==0x90) - { - if(b2>108 || b2<21) return; //no valid piano-key - scene_Demo->setBackgroundBrush(colorScale.getToneByKeyboardPosition(b2)->getColor()); - } - else if(b1==0x80) - { - if(b2>108 || b2<21) return; //no valid piano key - if(scene_Demo->backgroundBrush().color() == colorScale.getToneByKeyboardPosition(b2)->getColor()) //only reset color if current color still is same tone - scene_Demo->setBackgroundBrush(Qt::white); - } - -} - -void MainWindow::handleMidiMessage(int b1, int b2, int b3){ - if(b1 != 0) - { - midiLog->appendPlainText(QString::asprintf("Byte 1: %x, Byte 2: %x, Byte 3: %x", b1, b2, b3)); - lightShowDemonstration(b1, b2, b3); - } - midiThread.msleep(10); - emit nextMidiMessage(); -} - -MainWindow::~MainWindow() -{ - emit stopMidi(); - midiThread.quit(); - midiThread.wait(); -} -