Commit 4aeb8751 authored by Pierre Bürki's avatar Pierre Bürki
Browse files

Create basic file watcher

parent 88c21b4e
Loading
Loading
Loading
Loading
+43 −18
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ void ofApp::setup(){
    capMesh.reSize(4);
    
	ofLog(OF_LOG_NOTICE) << "Setup over";

	lastSettingsWriteTime = boost::filesystem::last_write_time(networkSettingsPath);
}

//--------------------------------------------------------------
@@ -247,6 +249,8 @@ void ofApp::update(){

	ofBackground(100, 100, 100);

	checkSettingsUpdate();

#ifdef BLOB
	if(realSense->update(ofxRealSenseTwo::PointCloud::VIDEO)) {

@@ -271,6 +275,43 @@ void ofApp::update(){
	networkMng.update(tracker);
}

void ofApp::saveSettings()
{
	tracker.panel->saveToFile("trackings.xml");
	networkMng.panel->saveToFile("broadcast.xml");
	guitransform->saveToFile("transformation.xml");

#ifdef BLOB
	tracker.saveMask();
	post->saveToFile("postprocessing.xml");
	device->saveToFile(realSense->getSerialNumber(-1) + ".xml");
#endif
}

void ofApp::loadSettings()
{
	tracker.panel->loadFromFile("trackings.xml");
	networkMng.panel->loadFromFile("broadcast.xml");
	guitransform->loadFromFile("transformation.xml");
	reloadTransformMatrix();
#ifdef BLOB
	tracker.loadMask();
	post->loadFromFile("postprocessing.xml");
	// This seems to make the app crash on Linux
	//device->loadFromFile(realSense->getSerialNumber(-1) + ".xml");
#endif
}

void ofApp::checkSettingsUpdate() {
	std::time_t newLastWriteTime = boost::filesystem::last_write_time(networkSettingsPath);

	if (newLastWriteTime > lastSettingsWriteTime) {
		lastSettingsWriteTime = newLastWriteTime;

		loadSettings();
	}
}

void ofApp::draw() {
	ofSetColor(255, 255, 255);

@@ -444,27 +485,11 @@ void ofApp::keyPressed(int key){
            break;
 
        case 's':
            tracker.panel->saveToFile("trackings.xml");
			networkMng.panel->saveToFile("broadcast.xml");
			guitransform->saveToFile("transformation.xml");
#ifdef BLOB
			tracker.saveMask();
			post->saveToFile("postprocessing.xml");
			device->saveToFile(realSense->getSerialNumber(-1) + ".xml");
#endif
            saveSettings();
			break;

        case 'l':
            tracker.panel->loadFromFile("trackings.xml");
            networkMng.panel->loadFromFile("broadcast.xml");
			guitransform->loadFromFile("transformation.xml");
			reloadTransformMatrix();
#ifdef BLOB
			tracker.loadMask();
			post->loadFromFile("postprocessing.xml");
			// This seems to make the app crash on Linux
			//device->loadFromFile(realSense->getSerialNumber(-1) + ".xml");
#endif
            loadSettings();
			break;
           
		case 'h':
+10 −2
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include "Frustum.h"
#include "CaptureMeshArray.h"
#include "PointCloudManager.h"
#include <ofMatrix4x4.h>

#include "DetectionMethod.h"
#ifdef BLOB
@@ -23,7 +24,7 @@
    #include "SkeletonFinder.h"
#endif

#include <ofMatrix4x4.h>
#include <boost/filesystem/operations.hpp>

#define N_CAMERAS 3

@@ -166,6 +167,13 @@ public:
    ofParameter<int> blobGrain;
    ofParameter<bool> captureVideo;

    void saveSettings();
    void loadSettings();

    void checkSettingsUpdate();
    const boost::filesystem::path networkSettingsPath = ofFilePath::getAbsolutePath("broadcast.xml");
    std::time_t lastSettingsWriteTime;    

    //////////
    // HELP //
    //////////