You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.1 KiB

3 years ago
#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<qint32> 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<qint32> 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();
}