diff --git a/src/pipeline/abstract/pipelineNode.hpp b/src/pipeline/abstract/pipelineNode.hpp index 98e6d72..c9d0cf7 100644 --- a/src/pipeline/abstract/pipelineNode.hpp +++ b/src/pipeline/abstract/pipelineNode.hpp @@ -27,6 +27,7 @@ class PipelineNode{ bool isRunning(); void stop(); void start(); + virtual std::string getName()=0; std::thread* joinThread(); void setThreadToCore(int core); void addSubNode(SubNode* sn); diff --git a/src/pipeline/members/cameraPickerNode.cpp b/src/pipeline/members/cameraPickerNode.cpp index aada1e7..4387592 100644 --- a/src/pipeline/members/cameraPickerNode.cpp +++ b/src/pipeline/members/cameraPickerNode.cpp @@ -18,4 +18,8 @@ void cameraPickerNode::processFrame(){ _sourceManager->accessLocks[0]->unlock(); outputLock.unlock(); DEBUG_LOG("cameraPickerNode on thread " << localThread->get_id() << " is done picking its camera frame"); +} + +std::string cameraPickerNode::getName(){ + return "camera Picker"; } \ No newline at end of file diff --git a/src/pipeline/members/cameraPickerNode.hpp b/src/pipeline/members/cameraPickerNode.hpp index 816602b..b4c0586 100644 --- a/src/pipeline/members/cameraPickerNode.hpp +++ b/src/pipeline/members/cameraPickerNode.hpp @@ -5,6 +5,7 @@ /// @brief this node will pick the right camera UMat from the ones available in its _sourceManager class cameraPickerNode : public PipelineNode{ public: + std::string getName() override; cameraPickerNode(cameraManager* sourceManager); protected: void processFrame() override; diff --git a/src/pipeline/members/displayOutputNode.cpp b/src/pipeline/members/displayOutputNode.cpp index 595aa74..9d71f3c 100644 --- a/src/pipeline/members/displayOutputNode.cpp +++ b/src/pipeline/members/displayOutputNode.cpp @@ -25,4 +25,8 @@ void DisplayOutputNode::processFrame() _managed->drawSurface = previous->getOutput(); _managed->drawAccess.unlock(); _managed->draw(); +} + +std::string DisplayOutputNode::getName(){ + return "display output"; } \ No newline at end of file diff --git a/src/pipeline/members/displayOutputNode.hpp b/src/pipeline/members/displayOutputNode.hpp index fac5490..5335d77 100644 --- a/src/pipeline/members/displayOutputNode.hpp +++ b/src/pipeline/members/displayOutputNode.hpp @@ -6,7 +6,7 @@ class DisplayOutputNode : public PipelineNode { public: DisplayOutputNode(PipelineNode* predecessor, Window* managed); - + std::string getName() override; protected: void processFrame() override; bool inited = false; diff --git a/src/pipeline/members/uiDrawerNode.cpp b/src/pipeline/members/uiDrawerNode.cpp index 309c989..ac0f7de 100644 --- a/src/pipeline/members/uiDrawerNode.cpp +++ b/src/pipeline/members/uiDrawerNode.cpp @@ -25,9 +25,8 @@ void UiDrawerNode::processFrame() cv::rectangle(MenuMat, cv::Rect2i(0, 0, wd, he), cv::Scalar(255, 0, 0), 5, 8, 0); _backController->update(); cv::putText(MenuMat, _backController->menuTitle, cv::Point2i(5, stackerIndex += 20), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 1, Scalar(255, 255, 255), 1, 8, false); - for (std::map>::iterator iter = _backController->menuItems.begin(); iter != _backController->menuItems.end(); ++iter) + for (String str : _backController->menuItemNames) { - std::string str = iter->first; cv::putText(MenuMat, str, cv::Point2i(5, stackerIndex += 20), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 1, Scalar(255, 255, 255), 1, 8, false); } Point2d pc = Point2d(0,stackerIndex); @@ -44,4 +43,8 @@ void UiDrawerNode::processFrame() std::cerr << "\033[1;31m caught DrawUi::drawMenu thread exception \033[0m" << std::endl; exit(1); } +} + +std::string UiDrawerNode::getName(){ + return "ui drawer"; } \ No newline at end of file diff --git a/src/pipeline/members/uiDrawerNode.hpp b/src/pipeline/members/uiDrawerNode.hpp index 0752c7d..7ffc4ca 100644 --- a/src/pipeline/members/uiDrawerNode.hpp +++ b/src/pipeline/members/uiDrawerNode.hpp @@ -4,6 +4,7 @@ class UiDrawerNode : public PipelineNode{ public: UiDrawerNode(UiController* backController); + std::string getName() override; protected: void processFrame() override; UiController* _backController; diff --git a/src/pipeline/members/uiMergerNode.cpp b/src/pipeline/members/uiMergerNode.cpp index 5d65ce5..5334f62 100644 --- a/src/pipeline/members/uiMergerNode.cpp +++ b/src/pipeline/members/uiMergerNode.cpp @@ -29,4 +29,8 @@ void UiMergerNode::processFrame() outputLock.lock(); output = finished; // write the final image to the psvr UI buffer outputLock.unlock(); +} + +std::string UiMergerNode::getName(){ + return "ui merger"; } \ No newline at end of file diff --git a/src/pipeline/members/uiMergerNode.hpp b/src/pipeline/members/uiMergerNode.hpp index a123477..2efd2f2 100644 --- a/src/pipeline/members/uiMergerNode.hpp +++ b/src/pipeline/members/uiMergerNode.hpp @@ -5,6 +5,7 @@ class UiMergerNode : public PipelineNode { public: UiMergerNode(PipelineNode* previous,PipelineNode* menuDrawer, UiController* backController); + std::string getName() override; protected: void processFrame() override; PipelineNode* _menuDrawer; diff --git a/src/pipeline/pipeline.cpp b/src/pipeline/pipeline.cpp index b86877d..3ffd33b 100644 --- a/src/pipeline/pipeline.cpp +++ b/src/pipeline/pipeline.cpp @@ -18,14 +18,14 @@ Pipeline::Pipeline(){ nodes.push_back(new cameraPickerNode(cm)); nodes.push_back(new UiDrawerNode(uc)); nodes.at(1)->addSubNode(fc); + nodes.at(1)->fpsLimit = 30; nodes.push_back(new UiMergerNode(nodes.at(0),nodes.at(1),uc)); nodes.push_back(new DisplayOutputNode(nodes.at(2), wm->managedUIs.at(0))); - fc->addChecker("camera picker",nodes.at(0)->localES); - fc->addChecker("ui drawer",nodes.at(1)->localES); - fc->addChecker("ui merger",nodes.at(2)->localES); - fc->addChecker("display output",nodes.at(3)->localES); + for(PipelineNode* pn : nodes) + fc->addChecker(pn->getName(),pn->localES); for(PipelineNode* pn : nodes) pn->start(); + } \ No newline at end of file diff --git a/src/prog b/src/prog index 8ee1376..008201a 100755 Binary files a/src/prog and b/src/prog differ