changed implementation of BayerProcess::FrameCountChanged to use IdleRegister
This commit is contained in:
parent
0f0f76df0b
commit
5d4bd4b352
@ -945,21 +945,53 @@ void BayerProcess::pixelShiftMotionMethodChanged ()
|
|||||||
|
|
||||||
void BayerProcess::FrameCountChanged(int n, int frameNum)
|
void BayerProcess::FrameCountChanged(int n, int frameNum)
|
||||||
{
|
{
|
||||||
GThreadLock lock;
|
struct Data {
|
||||||
imageNumber->block (true);
|
BayerProcess *me;
|
||||||
|
int n;
|
||||||
|
int frameNum;
|
||||||
|
};
|
||||||
|
const auto func = [](gpointer data) -> gboolean {
|
||||||
|
Data *d = static_cast<Data *>(data);
|
||||||
|
BayerProcess *me = d->me;
|
||||||
|
me->imageNumber->block (true);
|
||||||
|
int n = d->n;
|
||||||
|
int frameNum = d->frameNum;
|
||||||
|
|
||||||
imageNumber->remove_all();
|
me->imageNumber->remove_all();
|
||||||
imageNumber->append("1");
|
me->imageNumber->append("1");
|
||||||
for(int i = 2; i <= std::min(n, 4); ++i) {
|
for(int i = 2; i <= std::min(n, 4); ++i) {
|
||||||
std::ostringstream entry;
|
std::ostringstream entry;
|
||||||
entry << i;
|
entry << i;
|
||||||
imageNumber->append(entry.str());
|
me->imageNumber->append(entry.str());
|
||||||
}
|
}
|
||||||
imageNumber->set_active(std::min(frameNum, n - 1));
|
me->imageNumber->set_active(std::min(frameNum, n - 1));
|
||||||
if(n == 1) {
|
if(n == 1) {
|
||||||
imageNumberBox->hide();
|
me->imageNumberBox->hide();
|
||||||
} else {
|
} else {
|
||||||
imageNumberBox->show();
|
me->imageNumberBox->show();
|
||||||
}
|
}
|
||||||
imageNumber->block (false);
|
me->imageNumber->block (false);
|
||||||
|
delete d;
|
||||||
|
return FALSE;
|
||||||
|
};
|
||||||
|
|
||||||
|
idle_register.add(func, new Data { this, n, frameNum });
|
||||||
|
|
||||||
|
// GThreadLock lock;
|
||||||
|
// imageNumber->block (true);
|
||||||
|
|
||||||
|
// imageNumber->remove_all();
|
||||||
|
// imageNumber->append("1");
|
||||||
|
// for(int i = 2; i <= std::min(n, 4); ++i) {
|
||||||
|
// std::ostringstream entry;
|
||||||
|
// entry << i;
|
||||||
|
// imageNumber->append(entry.str());
|
||||||
|
// }
|
||||||
|
// imageNumber->set_active(std::min(frameNum, n - 1));
|
||||||
|
// if(n == 1) {
|
||||||
|
// imageNumberBox->hide();
|
||||||
|
// } else {
|
||||||
|
// imageNumberBox->show();
|
||||||
|
// }
|
||||||
|
// imageNumber->block (false);
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,8 @@ protected:
|
|||||||
Adjuster* pixelShiftRedBlueWeight;
|
Adjuster* pixelShiftRedBlueWeight;
|
||||||
#endif
|
#endif
|
||||||
int oldMethod;
|
int oldMethod;
|
||||||
|
|
||||||
|
IdleRegister idle_register;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
BayerProcess ();
|
BayerProcess ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user