Code cleanup of editcallbacks.h/.cc for more safety

This commit is contained in:
Hombre
2019-03-24 01:40:25 +01:00
parent 108b69ae22
commit f60711b65b
14 changed files with 262 additions and 176 deletions

View File

@@ -89,7 +89,7 @@ void Crop::setListener(DetailedCropListener* il)
EditUniqueID Crop::getCurrEditID()
{
EditSubscriber *subscriber = PipetteBuffer::dataProvider ? PipetteBuffer::dataProvider->getCurrSubscriber() : nullptr;
const EditSubscriber *subscriber = PipetteBuffer::dataProvider ? PipetteBuffer::dataProvider->getCurrSubscriber() : nullptr;
return subscriber ? subscriber->getEditID() : EUID_None;
}
@@ -102,7 +102,7 @@ void Crop::setEditSubscriber(EditSubscriber* newSubscriber)
MyMutex::MyLock lock(cropMutex);
// At this point, editCrop.dataProvider->currSubscriber is the old subscriber
EditSubscriber *oldSubscriber = PipetteBuffer::dataProvider ? PipetteBuffer::dataProvider->getCurrSubscriber() : nullptr;
const EditSubscriber *oldSubscriber = PipetteBuffer::dataProvider ? PipetteBuffer::dataProvider->getCurrSubscriber() : nullptr;
if (newSubscriber == nullptr || (oldSubscriber != nullptr && oldSubscriber->getPipetteBufferType() != newSubscriber->getPipetteBufferType())) {
if (PipetteBuffer::imgFloatBuffer != nullptr) {

View File

@@ -1113,7 +1113,7 @@ public:
}
}
void getPipetteData (T &valueR, T &valueG, T &valueB, int posX, int posY, int squareSize, int tran) const
void getPipetteData (T &valueR, T &valueG, T &valueB, int posX, int posY, const int squareSize, int tran) const
{
int x;
int y;

View File

@@ -134,13 +134,17 @@ bool PipetteBuffer::bufferCreated()
return false;
}
void PipetteBuffer::getPipetteData(float* v, int x, int y, int squareSize)
void PipetteBuffer::getPipetteData(int x, int y, const int squareSize)
{
if (ready && dataProvider && dataProvider->getCurrSubscriber()) {
switch (dataProvider->getCurrSubscriber()->getPipetteBufferType()) {
case (BT_IMAGEFLOAT):
if (imgFloatBuffer) {
float v[3];
imgFloatBuffer->getPipetteData(v[0], v[1], v[2], x, y, squareSize, 0);
dataProvider->setPipetteVal1(v[0]);
dataProvider->setPipetteVal2(v[1]);
dataProvider->setPipetteVal3(v[2]);
return;
}
@@ -148,7 +152,11 @@ void PipetteBuffer::getPipetteData(float* v, int x, int y, int squareSize)
case (BT_LABIMAGE):
if (LabBuffer) {
float v[3];
LabBuffer->getPipetteData(v[0], v[1], v[2], x, y, squareSize);
dataProvider->setPipetteVal1(v[0]);
dataProvider->setPipetteVal2(v[1]);
dataProvider->setPipetteVal3(v[2]);
return;
}
@@ -156,14 +164,19 @@ void PipetteBuffer::getPipetteData(float* v, int x, int y, int squareSize)
case (BT_SINGLEPLANE_FLOAT):
if (singlePlaneBuffer.data != nullptr) {
singlePlaneBuffer.getPipetteData(v[0], x, y, squareSize, 0);
v[1] = v[2] = -1.f;
float v;
singlePlaneBuffer.getPipetteData(v, x, y, squareSize, 0);
dataProvider->setPipetteVal1(v);
dataProvider->setPipetteVal2(-1.f);
dataProvider->setPipetteVal3(-1.f);
return;
}
}
}
v[0] = v[1] = v[2] = -1.f;
dataProvider->setPipetteVal1(-1.f);
dataProvider->setPipetteVal2(-1.f);
dataProvider->setPipetteVal3(-1.f);
}
}

View File

@@ -90,7 +90,7 @@ public:
bool bufferCreated();
// get the pipette values
void getPipetteData(float* v, int x, int y, int squareSize);
void getPipetteData(int x, int y, const int squareSize);
};
}