X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=PackRecalage%2Fsrc%2FbbPackRecalageImageSwitcherBox.cxx;h=bf4afe9c36f04ff79c5f6ba47b3e538de4034c8e;hb=8b1a19e083976bd9d80693030b7216704555a64f;hp=c5eee38fd2f570b769e6fc72512dd6737a57d11b;hpb=deb98a98f9b2006b9f21f2bd953efa369ce31939;p=creaRigidRegistration.git diff --git a/PackRecalage/src/bbPackRecalageImageSwitcherBox.cxx b/PackRecalage/src/bbPackRecalageImageSwitcherBox.cxx index c5eee38..bf4afe9 100644 --- a/PackRecalage/src/bbPackRecalageImageSwitcherBox.cxx +++ b/PackRecalage/src/bbPackRecalageImageSwitcherBox.cxx @@ -4,25 +4,55 @@ namespace bbPackRecalage { MyTimer::MyTimer(ImageSwitcherBox *box): wxTimer() { - _box = box; + _box = box; } MyTimer::~MyTimer() { + //delete this; } void MyTimer::Notify() { - _box->Process(); - } - - + _box->Change(); + _box->bbSignalOutputModification(std::string("Out")); + } BBTK_ADD_BLACK_BOX_TO_PACKAGE(PackRecalage,ImageSwitcherBox) BBTK_BLACK_BOX_IMPLEMENTATION(ImageSwitcherBox,bbtk::WxBlackBox); + +void ImageSwitcherBox::Change() +{ + if(change == false) + { + bbSetOutputOut(bbGetInputIn2()); + change = true; + } + else + { + bbSetOutputOut(bbGetInputIn1()); + change = false; + } +} + void ImageSwitcherBox::Process() { time = bbGetInputTime(); + _on = bbGetInputOn(); + + if(firstTime == true) + { + if(bbGetInputIn1() != NULL) + { + bbSetOutputOut(bbGetInputIn1()); + firstTime = false; + } + else if(bbGetInputIn2() != NULL) + { + bbSetOutputOut(bbGetInputIn2()); + firstTime = false; + } + } if(myTimer == NULL) { @@ -30,33 +60,42 @@ void ImageSwitcherBox::Process() myTimer->Start(time); oldTime = time; } - else if(oldTime != time) + /* + if(oldTime != time && myTimer !=NULL) { + myTimer->Stop(); myTimer->Start(time); oldTime = time; - } + }*/ - if(change == false) + if(!_on) { - bbSetOutputOut(bbGetInputIn1()); - change = true; + myTimer->Stop(); } - else + else if(!myTimer->IsRunning()) { - bbSetOutputOut(bbGetInputIn2()); - change = false; + myTimer->Start(time); + oldTime = time; + } + else if(oldTime != time) + { + myTimer->Stop(); + myTimer->Start(time); + oldTime=time; } } void ImageSwitcherBox::CreateWidget(wxWindow* parent) { - bbSetOutputWidget( new wxButton ( parent , -1 , _T("Start/Stop Image Change") ) ); + bbSetOutputWidget( new wxStaticText(parent, -1, _T("Image Switcher")) ); } void ImageSwitcherBox::bbUserSetDefaultValues() { myTimer = NULL; change = false; - time = -1; - oldTime = -1; + time = 500; + oldTime = 500; + firstTime = true; + _on=false; } void ImageSwitcherBox::bbUserInitializeProcessing() { @@ -68,4 +107,5 @@ void ImageSwitcherBox::bbUserFinalizeProcessing() delete myTimer; } } -// EO namespace bbPackRecalage \ No newline at end of file +// EO namespace bbPackRecalage +