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
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();
|
||
|
|
||
|
|
||
|
}
|