// Set up the controls in the ofxControlPanel void testApp::setupControlPanel(){ gui.setup("Gateway", 10, 10, 350, 640); gui.addPanel("Hand", 1); gui.setWhichPanel("Hand"); gui.addLabel("'f' to toggle fullscreen \n'h' to toggle this panel \n"); gui.addSlider("Min Beam Magnitude", "MIN_BEAM_MAGNITUDE", 100.0, 10.0, 200.0, false); //gui.addChartPlotter(string name, guiStatVarPointer varPtr, float width, float height, int maxNum, float minYVal, float maxYVal) //guiStatVarPointer(string displayNameIn, void *varPtr, guiVarType theDataType, bool autoUpdateGraph) gui.addChartPlotter("L Hand Chart", guiStatVarPointer("Left Hand Magnitude", &leftHandMagnitude, GUI_VAR_FLOAT, true), 200, 100, 200, 0.f, 200.f); gui.addChartPlotter("R Hand Chart", guiStatVarPointer("Right Hand Magnitude", &rightHandMagnitude, GUI_VAR_FLOAT, true), 200, 100, 200, 0.f, 200.f); gui.addSlider("Velocity scale factor", "VELOCITY_SCALE", 1.f, 0.f, 20.f, false); gui.addSlider("Width scale factor", "WIDTH_SCALE", 1.f, 0.f, 4.f, false); gui.addSlider("Min Width", "MIN_WIDTH", 2, 0, 40, true); gui.addToggle("Clear Beams", "CLEAR_BEAMS", false); gui.loadSettings("controlPanelSettings.xml"); }
void testApp::setupGUI(){ ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 30, 200)); ofxControlPanel::setTextColor(simpleColor(240, 240, 240, 255)); int guiWidth = 800; int guiHeight = 800; gui.setup("Sync", 0, 0, guiWidth, guiHeight, true); // string controlPanelName, float panelX, float panelY, float width, float height, bool doSaveRestore gui.addPanel("Line", 3, false); // name, number of columns, locked gui.addPanel("Tracking", 3, false); // name, number of columns, locked gui.addPanel("App", 3, false); //just doing playback/recording on keyboard for now..... //--------- PANEL 0, Line Variables gui.setWhichPanel("Line"); gui.setWhichColumn(0); gui.addSlider("Length of History", "HISTORY_LENGTH", 100, 2, 200, true); gui.addToggle("Fade History?", "DO_HISTORY_FADE", 1); gui.addSlider("Line scale", "LINE_SCALE", 1.f, 1.f, 1000.f, false); gui.addSlider("Line width", "LINE_WIDTH", 1.f, 1.f, 20.f, false); gui.addSlider("Line alpha", "LINE_ALPHA", 128, 1, 255, true); //--------- PANEL 1, Tracking Variables gui.setWhichPanel("Tracking"); gui.setWhichColumn(0); skeletonDrawer.setTheOpenNI(theOpenNI); //gui.addDrawableRect("Video Image", &theOpenNI->getimageTextureReference(), 320, 240); gui.addCustomRect("Video and skeleton", &skeletonDrawer, 320, 240); gui.addDrawableRect("Depth Image", &theOpenNI->getDepthTextureReference(), 320, 240); gui.setWhichColumn(2); gui.addToggle("All points tracking?", "DISPLAY_ALL_POINTS", 1); gui.addToggle("Hip Line?", "HIP_LINE", 0); gui.addToggle("Shoulder Line?", "SHOULDER_LINE", 0); gui.addToggle("Hands Line", "HANDS_LINE", 0); gui.addToggle("Hip Line to edge?", "HIP_LINE_EDGE", 0); gui.addToggle("Shoulder Line to edge?", "SHOULDER_LINE_EDGE", 0); gui.addToggle("Hands Line to edge", "HANDS_LINE_EDGE", 0); gui.addToggle("All points: vertical lines", "DRAW_VERTICAL_LINES", 0); gui.addToggle("All points: horizontal lines", "DRAW_HORIZONTAL_LINES", 0); gui.addToggle("All points: circles", "DRAW_CIRCLES", 0); gui.addToggle("All points: ribbon ", "DRAW_RIBBON", 0); //--------- PANEL 2, App Variables gui.setWhichPanel("App"); gui.setWhichColumn(0); // gui.addToggle("Live?", "SHOULD_BE_LIVE", 1); // gui.addToggle("Record?", "SHOULD_BE_RECORDING", 0); //some dummy vars we will update to show the variable lister object elapsedTime = ofGetElapsedTimef(); appFrameCount = ofGetFrameNum(); appFrameRate = ofGetFrameRate(); vector <guiVariablePointer> vars; vars.push_back( guiVariablePointer("elapsed time", &elapsedTime, GUI_VAR_FLOAT, 2) ); vars.push_back( guiVariablePointer("elapsed frames", &appFrameCount, GUI_VAR_INT) ); vars.push_back( guiVariablePointer("app fps", &appFrameRate, GUI_VAR_FLOAT, 2) ); vars.push_back( guiVariablePointer("mouse x", &mouseX, GUI_VAR_INT) ); vars.push_back( guiVariablePointer("mouse y", &mouseY, GUI_VAR_INT) ); gui.addVariableLister("app vars", vars); gui.addChartPlotter("App FPS", guiStatVarPointer("app fps", &appFrameRate, GUI_VAR_FLOAT, true, 2), 200, 100, 200, 10, 50); //SETTINGS AND EVENTS //load from xml! gui.loadSettings("controlPanelSettings.xml"); //if you want to use events call this after you have added all your gui elements gui.setupEvents(); gui.enableEvents(); bShowMouse = true; //gui.toggleView(); //show it by default }
//#define TEST_COUNTER //-------------------------------------------------------------- void testApp::setup(){ #ifdef TEST_COUNTER ofSetLogLevel(OF_LOG_SILENT); cout << "Start test Count 10000" << endl; cout << "--------------------------------------------------------------" << endl; for(int i = 0 ; i < 10000 ; i++) { stateMachine.getSharedData().load(); cout << "Count = "<< stateMachine.getSharedData().counter <<endl; stateMachine.getSharedData().counter+=1; stateMachine.getSharedData().save(); } cout << "End test Count 10000" << endl; cout << "--------------------------------------------------------------" << endl; std::exit(0); #endif ofEnableSmoothing(); ofEnableAlphaBlending(); ofSetVerticalSync(true); glDisable(GL_DEPTH_TEST); ofxXmlSettings xml = stateMachine.getSharedData().xml; if(xml.loadFile(settingFileName)) { if(xml.pushTag("DATA")) { stateMachine.getSharedData().bDebug = xml.getValue("DEBUG", true); float width = xml.getValue("WIDTH", 1280); float height = xml.getValue("HEIGHT", 720); sndPlayer.loadSound(xml.getValue("SOUND_PATH", "sounds/Zone 5 - Door Creak, scream and witchly laugh.wav")); sndPlayer.setLoop(true); sndPlayer.play(); stateMachine.getSharedData(). wRatio = width/1920; stateMachine.getSharedData(). hRatio = height/1080; ofSetFullscreen(xml.getValue("FULLSCREEN", 0)); ofSetWindowShape(width, height); stateMachine.getSharedData().path_to_save = xml.getValue("CAPTURE_PATH", "./captures"); stateMachine.getSharedData().filesXml.loadFile(stateMachine.getSharedData().path_to_save+"/files.xml"); if(!stateMachine.getSharedData().filesXml.pushTag("XML")) { stateMachine.getSharedData().filesXml.addTag("XML"); stateMachine.getSharedData().filesXml.pushTag("XML"); } stateMachine.getSharedData().numDigi = xml.getValue("DIGI", 5); stateMachine.getSharedData().font.loadFont(xml.getValue("FONT_PATH", "fonts/LunacyMore.ttf"),xml.getValue("FONT_SIZE", 128)); ofDirectory dir; if(dir.listDir(stateMachine.getSharedData().path_to_save)<1) { dir.createDirectory(stateMachine.getSharedData().path_to_save); } xml.popTag(); } } else { ofLog(OF_LOG_ERROR,"Faile to load "+ settingFileName); } // // setup shared data ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 60, 100)); ofxControlPanel::setTextColor(simpleColor(240, 50, 50, 255)); stateMachine.getSharedData().panel.setup(ofGetWidth(),ofGetHeight()); stateMachine.getSharedData().panel.loadFont("MONACO.TTF", 8); stateMachine.getSharedData().panel.addPanel("General", 4,false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking", 5, false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking0", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking1", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(70, 70, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceMapEdit", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 30, 100)); //some dummy vars we will update to show the variable lister object appFrameRate = ofGetFrameRate(); stateMachine.getSharedData().panel.setWhichPanel("General"); stateMachine.getSharedData().panel.setWhichColumn(0); stateMachine.getSharedData().panel.addChartPlotter("some chart", guiStatVarPointer("app fps", &appFrameRate, GUI_VAR_FLOAT, true, 2), 200, 50, 200, 5, 80); vector<string> loglevel; loglevel.push_back("OF_LOG_VERBOSE"); loglevel.push_back("OF_LOG_NOTICE"); loglevel.push_back("OF_LOG_WARNING"); loglevel.push_back("OF_LOG_ERROR"); loglevel.push_back("OF_LOG_FATAL_ERROR"); loglevel.push_back("OF_LOG_SILENT"); stateMachine.getSharedData().panel.addTextDropDown("LogLevel","LogLevel", 0, loglevel); // initialise state machine stateMachine.addState(new IndexState()); stateMachine.addState(new SelectPlayerState()); stateMachine.addState(new CaptureState()); stateMachine.addState(new EditState()); stateMachine.addState(new EndState()); stateMachine.addState(new LicenseState()); stateMachine.changeState(xml.getValue("DATA:INIT_STATE", "IndexState")); stateMachine.getSharedData().panel.loadSettings("settings.xml"); stateMachine.getSharedData().panel.hide(); // if(!stateMachine.getSharedData().bDebug) // { //// stateMachine.getSharedData().panel.unregisterKeyboardEvent(); // } stateMachine.getSharedData().numPlayer = 1; for(int i = 0 ; i < NUM_SEQ ;i++) { image[i].loadSequence("images/bat/bat_", "png", 0, 154, 5); image[i].setFrameRate(60); } int num = 3000; stateMachine.getSharedData().p.assign(num, Particle()); resetParticles(); }
//-------------------------------------------------------------- void testApp::setup(){ ofSetVerticalSync(true); ofBackground(0, 0, 0); //audio // 0 output channels, // 2 input channels // 22050 samples per second // 256 samples per buffer // 4 num buffers (latency) ofSoundStreamSetup(0,2,this, 44100, 256, 4); left = new float[256]; right = new float[256]; audioLevel = 0.f; //box2d box2d.init(); box2d.setGravity(0,0); box2d.createBounds(); box2d.setFPS(30); box2d.registerGrabbing(); box2d.createGround();//defaults to the bottom of the screen, nice ofEnableSmoothing(); ofSetFrameRate(30); clearBack = true; ofSetBackgroundAuto(clearBack); // shapeDirLister.setVerbose(false); // shapeDirLister.allowExt("xml"); // int nShapes = shapeDirLister.listDir("shapes"); // // cout << nShapes << " found." << endl; ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 60, 200)); ofxControlPanel::setTextColor(simpleColor(240, 50, 50, 255)); gui.loadFont("MONACO.TTF", 8); gui.setup("Hellicar&Lewis Norwegian Wood Audio Reactive Projection", 0, 0, ofGetWidth(), 700); gui.addPanel("Basic Settings", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 30, 200)); //--------- PANEL 1 gui.setWhichPanel(0); gui.setWhichColumn(0); //some dummy vars we will update to show the variable lister object elapsedTime = ofGetElapsedTimef(); appFrameCount = ofGetFrameNum(); appFrameRate = ofGetFrameRate(); vector <guiVariablePointer> vars; vars.push_back( guiVariablePointer("ellapsed time", &elapsedTime, GUI_VAR_FLOAT, 2) ); vars.push_back( guiVariablePointer("ellapsed frames", &appFrameCount, GUI_VAR_INT) ); vars.push_back( guiVariablePointer("app fps", &appFrameRate, GUI_VAR_FLOAT, 2) ); vars.push_back( guiVariablePointer("mouse x", &mouseX, GUI_VAR_INT) ); vars.push_back( guiVariablePointer("mouse y", &mouseY, GUI_VAR_INT) ); gui.addVariableLister("app vars", vars); gui.addChartPlotter("Audio level", guiStatVarPointer("Audio Level", &audioLevel, GUI_VAR_FLOAT, true, 2), 200, 100, 200, 0.f, 1.f); gui.addSlider("Audio Cut Down", "AUDIO_CUT_DOWN", 0.1f, 0.f,1.f, false); gui.addSlider("Audio Cut Up", "AUDIO_CUT_UP", 0.9f, 0.f,1.f, false); gui.addSlider("Audio Boost ", "AUDIO_BOOST", 0.0f, 0.f,1.f, false); timeOfLastFrame = ofGetElapsedTimef(); bShowMouse = false; ofHideCursor(); loadPolyShapeFromXML("shapes/blossom.xml"); loadPolyShapeFromXML("shapes/leaf.xml"); //now the scenes spring.setup("Spring", &gui, &box2d, polyShapes[0]); summer.setup("Summer", &gui, &box2d); autumn.setup("Autumn", &gui, &box2d, polyShapes[1]); winter.setup("Winter", &gui, &box2d); currentScene = &spring; spring.init(); //SETTINGS AND EVENTS //load from xml! gui.loadSettings("controlPanelSettings.xml"); //if you want to use events call this after you have added all your gui elements gui.setupEvents(); gui.enableEvents(); gui.hide(); }
//-------------------------------------------------------------------------- void testApp::setupControlPanel(){ ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 30, 200)); ofxControlPanel::setTextColor(simpleColor(80, 240, 240, 255)); panel.setup("controls", 0, 0, 300, 750); panel.addPanel("general controls", 4, false); panel.addPanel("animation controls", 4, false); panel.addPanel("render controls", 4, false); panel.addPanel("camera params", 4, false); panel.addPanel("debug params", 4, false); //--------- general params panel.setWhichPanel("general controls"); panel.setWhichColumn(0); panel.addToggle("export screenshots", "exportScreenshots", false); panel.addToggle("convert to png after load", "bConvertToPng", false); panel.addToggle("auto change face", "bAutoChange", false); panel.addSlider("change face time", "changeTime", 28.2, 8.0, 60.0, false); panel.addChartPlotter("fps", guiStatVarPointer("app fps", &appFps, GUI_VAR_FLOAT, true, 2), 200, 80, 200, 8, 100); panel.addToggle("restart at 3.00am", "bRestart", false); panel.addSlider("restart hour", "restartHour", 3, 1, 23, true); panel.addSlider("restart minute", "restartMinute", 0, 0, 59, true); panel.addToggle("player mode", "toggle_mode", false); //--------- animation params panel.setWhichPanel("animation controls"); panel.setWhichColumn(0); panel.addSlider("particle targetForce", "particle_targetForce", 1.0, 0.0, 1.0, false); panel.addSlider("noise scale in", "noise_scale_input", 0.57, 0.0, 1.0, false); panel.addSlider("noise scale out", "noise_scale_output", 0.5, 0.0, 1.0, false); panel.addChartPlotter("fps", guiStatVarPointer("app fps", &appFps, GUI_VAR_FLOAT, true, 2), 200, 80, 200, 8, 100); panel.addSlider("random offset", "randomOffset", 0, 0, 10, false); panel.addSlider("slow momentum", "slowMomentum", .3, 0, 1, false); panel.addSlider("particle speed", "particle_speed", 24.7, 0, 50, false); panel.addSlider("particle spread", "particle_spread", 100, 2, 100, false); panel.addSlider("particle viscosity", "particle_viscosity", 0.167, 0.0, 0.5, false); panel.addSlider("particle independence", "particle_independence", 0.178, 0.0, 0.8, false); panel.addSlider("particle neighborhood", "particle_neighborhood", 1292, 100, 2000, false); //--------- render params panel.setWhichPanel("render controls"); panel.setWhichColumn(0); panel.addToggle("do ghetto fbo trails", "do_trails", false); panel.addSlider("fboTrails scale", "fboScale", 0.04, 0.001, 0.5, false); panel.addChartPlotter("fps", guiStatVarPointer("app fps", &appFps, GUI_VAR_FLOAT, true, 2), 200, 80, 200, 8, 100); panel.addSlider("max brightness", "maxBrightness", 0, 0, 255, true); panel.addSlider("rgb brightness", "rgbBrightness", 3, 0, 10, false); panel.addSlider("point brightness", "point_brightness", 10, 0, 20.0, false); panel.addSlider("dof focus offset", "focus_offset", 0, -1000, 1000, false); panel.addSlider("aberration", "aberration", 0.021, 0.005, 0.2, false); panel.addSlider("aperture", "aperture", 0.025, 0.001, 0.2, false); panel.addSlider("max point size", "maxPointSize", 21.3, 5, 40, false); panel.addSlider("sphere alpha", "sphere_alpha", 0.66, 0.0, 1.0, false); panel.addSlider("sphere red", "sphere_red", 0, 0.0, 1.0, false); panel.addSlider("sphere green", "sphere_green", 0.35, 0.0, 1.0, false); panel.addSlider("sphere blue", "sphere_blue", 0.47, 0.0, 1.0, false); // - - -- - --- - camera param eters panel.setWhichPanel("camera params"); panel.setWhichColumn(0); panel.addToggle("persistent mode", "persistentMode", true); panel.addSlider("rotation momentum", "rotationMomentum", .9, .5, 1, false); panel.addSlider("position momentum", "positionMomentum", .99, .5, 1, false); panel.addSlider("zoom momentum", "zoomMomentum", .99, .5, 1, false); panel.addSlider("fov", "fov", 60, 1, 180, false); panel.addSlider("min zoom", "minZoom", 400, 0, 400, false); panel.addSlider("max zoom", "maxZoom", 10000, 400, 20000, false); panel.addSlider("reset delay", "resetDelay", 4, 0, 10, false); panel.addSlider("reset length", "resetLength", 2, 0, 10, false); panel.addSlider("rotation speed", "rotationSpeed", .0005, 0, .001, false); panel.addSlider("zoom speed", "zoomSpeed", 1, 0, 4, false); panel.addSlider("zoom scale factor", "zoomScaleFactor", .005, 0, .01, false); panel.addToggle("smart focal plane", "smartFocalPlane", true); //--------- general params panel.setWhichPanel("debug params"); panel.setWhichColumn(0); panel.addToggle("draw particles", "bDrawParticles", true); panel.addToggle("freeze particles", "bFreezeParticles", false); panel.addToggle("draw white", "drawWhite", false); panel.selectedPanel = 0; panel.loadSettings("appSettings.xml"); panel.setValueB("toggle_mode", false); panel.setValueB("bAutoChange", ofDirectory(scanFolder).exists()); //Particle::globalOffset.set(0, 1. / 3, 2. / 3); }
//-------------------------------------------------------------- void testApp::setup(){ ofEnableAlphaBlending(); ofxXmlSettings xml = stateMachine.getSharedData().xml; if(xml.loadFile(settingFileName)) { if(xml.pushTag("DATA")) { stateMachine.getSharedData().counter = xml.getValue("COUNTER", 0); stateMachine.getSharedData().path_to_save = xml.getValue("CAPTURE_PATH", "./captures"); stateMachine.getSharedData().numDigi = xml.getValue("DIGI", 5); ofDirectory dir; if(dir.listDir(stateMachine.getSharedData().path_to_save)<1) { dir.createDirectory(stateMachine.getSharedData().path_to_save); } xml.popTag(); } } else { ofLog(OF_LOG_ERROR,"Faile to load "+ settingFileName); } // // setup shared data ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 60, 100)); ofxControlPanel::setTextColor(simpleColor(240, 50, 50, 255)); stateMachine.getSharedData().panel.setup(ofGetWidth(),ofGetHeight()); stateMachine.getSharedData().panel.loadFont("MONACO.TTF", 8); stateMachine.getSharedData().panel.addPanel("General", 4,false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking", 5, false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking0", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(60, 30, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceTracking1", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(70, 70, 30, 100)); stateMachine.getSharedData().panel.addPanel("FaceMapEdit", 4, false); ofxControlPanel::setBackgroundColor(simpleColor(30, 30, 30, 100)); //some dummy vars we will update to show the variable lister object appFrameRate = ofGetFrameRate(); stateMachine.getSharedData().panel.setWhichPanel("General"); stateMachine.getSharedData().panel.setWhichColumn(0); stateMachine.getSharedData().panel.addChartPlotter("some chart", guiStatVarPointer("app fps", &appFrameRate, GUI_VAR_FLOAT, true, 2), 200, 50, 200, 5, 80); vector<string> loglevel; loglevel.push_back("OF_LOG_VERBOSE"); loglevel.push_back("OF_LOG_NOTICE"); loglevel.push_back("OF_LOG_WARNING"); loglevel.push_back("OF_LOG_ERROR"); loglevel.push_back("OF_LOG_FATAL_ERROR"); loglevel.push_back("OF_LOG_SILENT"); stateMachine.getSharedData().panel.addTextDropDown("LogLevel","LogLevel", 0, loglevel); // initialise state machine stateMachine.addState(new IndexState()); stateMachine.addState(new SelectPlayerState()); stateMachine.addState(new PlayState()); stateMachine.addState(new EditState()); stateMachine.changeState("PlayState"); stateMachine.getSharedData().panel.loadSettings("settings.xml"); stateMachine.getSharedData().panel.hide(); stateMachine.getSharedData().numPlayer = 2; }
//-------------------------------------------------------- void captureApp::setup(){ ofSetLogLevel(OF_LOG_NOTICE); serial.enumerateDevices(); ofxXmlSettings serialSetup; serialSetup.loadFile("serialSettings.xml"); string serialPort = serialSetup.getValue("serialPort", ""); serial.setup(serialPort, 9600); // < this should be set // to whatever com port // your serial device is // connected to. // (ie, COM4 on a pc, dev/tty.... on a mac) // arduino users check in arduino app.... serial.flush(); state = CAP_STATE_WAITING; debugState = CAP_NORMAL; camState = CAMERA_CLOSED; prevCamState = CAMERA_CLOSED; preCamMode = 0; cameraFrameNum = 0; sdk = NULL; settings = NULL; timeToEndCapture = 0.0; bNeedsToLeaveFrame = false; bOscSetup = false; fadeInStartTime = 0.0; spotLightAlpha = 1.0; bDoThreadedRSync = false; bDoThreadedFrameSave = false; camera3D.disableMouseEvents(); if( !ofxFileHelper::doesFileExist(CAPTURE_MAIN_FOLDER) ){ printf("making folder %s\n", CAPTURE_MAIN_FOLDER.c_str()); ofxFileHelper::makeDirectory(CAPTURE_MAIN_FOLDER); } if( !ofxFileHelper::doesFileExist(EXPORT_FOLDER) ){ printf("making folder %s\n", EXPORT_FOLDER.c_str()); ofxFileHelper::makeDirectory(EXPORT_FOLDER); if( !ofxFileHelper::doesFileExist(DECODE_FOLDER) ){ ofxFileHelper::makeDirectory(DECODE_FOLDER); } } ofxXmlSettings xml; xml.loadFile("locationSettings.xml"); currentCity = xml.getValue("city_name", "NYC"); transformSpaces(currentCity); //remove space and add underscores currentDecodePath = DECODE_FOLDER; currentCaptureFolder = string(CAPTURE_MAIN_FOLDER) + FRAME_CAPTURE_FOLDER; currentTimestamp = (ofxTimeStamp()).getUnixTimeAsString(); // setup panel panel.setup("control", 0, 0, 300, 768); panel.setBackgroundColor(simpleColor(10, 10, 10, 0)); //panel.loadFont("resources/myFont.ttf", 9); panel.addPanel("app/capture settings", 1); panel.addPanel("app settings", 1); panel.addPanel("face trigger settings", 1); panel.addPanel("pattern settings", 1); panel.addPanel("misc settings", 1); panel.setWhichPanel("app/capture settings"); panel.addToggle("use face trigger", "B_FACE_TRIGGER", false); vector <string> camModes; camModes.push_back("camera off"); camModes.push_back("camera qt"); camModes.push_back("camera dc1394"); panel.addMultiToggle("camera mode", "camMode", 0, camModes); panel.addToggle("camera settings", "cameraSettings", false); panel.addToggle("overide light", "bOverideLight", true); panel.addToggle("show red clipping", "SHOW_RED", true); panel.addToggle("fullscreen", "fullscreen", false); panel.addToggle("spot light image", "bSpotLight", true); panel.addSlider("spotlight %", "spotLightBrightness", 1.0, 0.0, 1.0, false); panel.addToggle("frame by frame", "frameByFrame", false); panel.addToggle("large video", "largeVideo", false); panel.addSlider("min brightness", "minBrightness", 0, 0, 255, true); panel.addSlider("max brightness", "maxBrightness", 255, 0, 255, true); panel.addSlider("3 phase - wavelength", "wavelength", 64, 8, 512, true); panel.addToggle("use projector lut", "projectorLut", false); panel.setWhichPanel("app settings"); panel.addSlider("fade in time", "fadeInTime", 2.0, 0.0, 5.0, false); vector<string> postCapModes; postCapModes.push_back("save frames"); postCapModes.push_back("decode and frames"); postCapModes.push_back("decode, export and frames"); postCapModes.push_back("all above + notify"); panel.addMultiToggle("post capture:", "postCapture", 2, postCapModes); panel.addToggle("notify with osc", "use_osc", false); panel.addSlider("decode skip frames", "decodeSkipFrame", 2, 0, 5, true); panel.addSlider("capture time f", "CAPTURE_TIME_F", 4.0, 2.0, 15.0, false); panel.setWhichPanel("pattern settings"); panel.addSlider("pattern rate", "patternRate", 1, 1, 6, true); panel.addSlider("camera rate", "cameraRate", 1, 1, 6, true); panel.addSlider("camera offset", "cameraOffset", 0, 0, 5, true); panel.addToggle("reverse", "reverse", false); vector<string> orientations; orientations.push_back("vertical"); orientations.push_back("horizonal"); panel.addMultiToggle("orientation", "orientation", 0, orientations); panel.setWhichPanel("face trigger settings"); panel.addSlider("face trigger fps", "FACE_FPS", 10, 3, 30, false); panel.addSlider("face detected time", "FACE_DETECT_TIME", 2.0, 0.1, 10.0, false); panel.addSlider("face forget time", "FACE_FORGET_TIME", 2.0, 0.1, 10.0, false); guiStatVarPointer varPtr; varPtr.setup("num faces", &face.numFaces, GUI_VAR_INT, true); panel.addChartPlotter("num faces", varPtr, 240, 60, 240, -1, 3); panel.addChartPlotter("face confidence", guiStatVarPointer("confidence", &face.confidence, GUI_VAR_FLOAT, true, 2), 240, 70, 240, -0.2, 1.2); panel.addDrawableRect("state", &face, 240, 40); panel.addSlider("confidence add amnt", "confidence_add", 0.1, 0.05, 1.0, false); panel.addSlider("confidence fade amnt", "confidence_fade", 0.95, 0.8, 0.995, false); panel.addSlider("confidence gate start val", "confidence_gate_start", 0.65, 0.15, 1.0, false); panel.addSlider("confidence gate stop val", "confidence_gate_stop", 0.4, 0.0, 1.0, false); panel.setWhichPanel("misc settings"); panel.addToggle("brightness setting", "brightnessSetting", false); panel.addSlider("check brigheness", "checkBrightness", 0, 0, 255, true); panel.addToggle("delete after transfer", "bDeleteAfterSend", false); panel.addToggle("restart at 3.00am", "bRestart", false); panel.addSlider("restart hour", "restartHour", 3, 1, 23, true); panel.addSlider("restart minute", "restartMinute", 0, 0, 59, true); panel.loadSettings("controlCapture.xml"); if( panel.getValueB("use_osc") ){ setupOsc(); } //overides //panel.setValueI("camMode", 0); panel.setValueI("fullscreen", 1); panel.setValueI("cameraSettings", 0); panel.setValueI("frameByFrame", 0); panel.setValueI("largeVideo", 0); panel.setValueI("brightnessSetting",0); panel.setValueI("bOverideLight",0); panel.setValueI("bSpotLight", 1); cameraWidth = 640; cameraHeight = 480; int n = 3; // no patterns have more than 3 frames for(int i = 0; i < n; i++) { recent.push_back(ofImage()); recent.back().allocate( cameraWidth, cameraHeight, OF_IMAGE_COLOR); needsUpdate.push_back(false); } curGenerator = &threePhase; int captureTime = 15; imageSaver.setup(cameraWidth, cameraHeight, captureTime * 60); ofSetVerticalSync(true); ofSetFrameRate(60); ofBackground(0, 0, 0); scanningSound.loadSound("resources/scanningPlaceholder.mp3"); scanningSound.setLoop(true); spotLightImage.loadImage("resources/captureMask.jpg"); generateSpotlight(spotLightImage); spotLightImage.setAnchorPercent(0.5, 0.5); face.setup("faceHaar/haarcascade_frontalface_alt.xml", 320, 240, 2.0, 2.0); prevFaceCheckTimeF = ofGetElapsedTimef(); threePhase.setSize(1024, 768); updateGenerator(); light.setup(0); }