#include "viewModel/bMode/display/gray/KnobManager.h" #define caseReturnKnob(x) case x: \ if(_knob ## x == Q_NULLPTR) \ { \ knob ## x(new Knob); \ } \ return _knob ## x; /*************************************************************************************************/ Knob* KnobManager::getKnob(qint32 index) { switch(index) { caseReturnKnob(1) caseReturnKnob(2) caseReturnKnob(3) caseReturnKnob(4) caseReturnKnob(5) caseReturnKnob(6) caseReturnKnob(7) caseReturnKnob(8) } } /*************************************************************************************************/ void KnobManager::connectKnobs() { for(auto i = 1; i < 9; i++) { auto knob = getKnob(i); connect(knob, &Knob::knobDataReady, this, &KnobManager::newKnobData); } } /*************************************************************************************************/ void KnobManager::disconnectKnobs() { for(auto i = 1; i < 9; i++) { auto knob = getKnob(i); disconnect(knob, &Knob::knobDataReady, this, &KnobManager::newKnobData); } } /*************************************************************************************************/ KnobManager::KnobManager() { } /*************************************************************************************************/ void KnobManager::setKnobData(const QPoint& p1, const QPoint& p2, const QPoint& p3, const QPoint& p4, const QPoint& p5, const QPoint& p6, const QPoint& p7, const QPoint& p8) { disconnectKnobs(); _knob1->posX(p1.x()); _knob1->posY(p1.y()); _knob2->posX(p2.x()); _knob2->posY(p2.y()); _knob3->posX(p3.x()); _knob3->posY(p3.y()); _knob4->posX(p4.x()); _knob4->posY(p4.y()); _knob5->posX(p5.x()); _knob5->posY(p5.y()); _knob6->posX(p6.x()); _knob6->posY(p6.y()); _knob7->posX(p7.x()); _knob7->posY(p7.y()); _knob8->posX(p8.x()); _knob8->posY(p8.y()); connectKnobs(); } /*************************************************************************************************/ QList KnobManager::getKnobData() { auto pos1 = getKnob(1)->getPos(); auto pos2 = getKnob(2)->getPos(); auto pos3 = getKnob(3)->getPos(); auto pos4 = getKnob(4)->getPos(); auto pos5 = getKnob(5)->getPos(); auto pos6 = getKnob(6)->getPos(); auto pos7 = getKnob(7)->getPos(); auto pos8 = getKnob(8)->getPos(); QList knob; knob.append(pos1.x()); knob.append(pos2.x()); knob.append(pos3.x()); knob.append(pos4.x()); knob.append(pos5.x()); knob.append(pos6.x()); knob.append(pos7.x()); knob.append(pos8.x()); return knob; } /*************************************************************************************************/ void KnobManager::newKnobData() { auto pos1 = getKnob(1)->getPos(); auto pos2 = getKnob(2)->getPos(); auto pos3 = getKnob(3)->getPos(); auto pos4 = getKnob(4)->getPos(); auto pos5 = getKnob(5)->getPos(); auto pos6 = getKnob(6)->getPos(); auto pos7 = getKnob(7)->getPos(); auto pos8 = getKnob(8)->getPos(); }