From 63971c9b5e2dcfa1b7e254cac9cac5629c776835 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 23 May 2013 18:19:13 +0100 Subject: rearrange folders: working vamp host --- 02_rec/src/testApp.cpp | 199 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 02_rec/src/testApp.cpp (limited to '02_rec/src/testApp.cpp') diff --git a/02_rec/src/testApp.cpp b/02_rec/src/testApp.cpp new file mode 100644 index 0000000..376d357 --- /dev/null +++ b/02_rec/src/testApp.cpp @@ -0,0 +1,199 @@ +#include "testApp.h" + +//-------------------------------------------------------------- +void testApp::setup() { + + ofSetLogLevel(OF_LOG_NOTICE); + + numDevices = openNIRecorders[0].getNumDevices(); + + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + //openNIRecorders[deviceID].setLogLevel(OF_LOG_VERBOSE); + openNIRecorders[deviceID].setup(false); + openNIRecorders[deviceID].addDepthGenerator(); + openNIRecorders[deviceID].addImageGenerator(); + openNIRecorders[deviceID].setRegister(true); // this registers all the image pixels to the depth pixels + openNIRecorders[deviceID].setMirror(true); // flips the image and depth sensors + openNIRecorders[deviceID].start(); + + openNIPlayers[deviceID].setup(false); + openNIPlayers[deviceID].start(); + + filenames[deviceID]=""; + } + + isLive=true; + isRecording=false; + + verdana.loadFont(ofToDataPath("verdana.ttf"), 10); + + startSound.loadSound("tone1.wav"); + stopSound.loadSound("tone0.wav");; +} + + +string testApp::generateFileName(int cam) { + + string _root = "kinectRecord_"; + + string _timestamp = ofToString(ofGetDay()) + + ofToString(ofGetMonth()) + + ofToString(ofGetYear()) + + ofToString(ofGetHours()) + + ofToString(ofGetMinutes()) + + ofToString(ofGetSeconds()); + + string _filename = (_root + ofToString(cam)+"_"+_timestamp + ".oni"); + + return _filename; + +} + +//-------------------------------------------------------------- +void testApp::update(){ + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + if (isLive) { + openNIRecorders[deviceID].update(); + if (isRecording){ + recorded++; + } + } + else { + openNIPlayers[deviceID].update(); + } + } +} + +//-------------------------------------------------------------- +void testApp::draw(){ + ofBackground(0, 0, 0); + ofSetColor(255, 255, 255); + + ofPushMatrix(); + + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + ofTranslate(0, deviceID * 450); + if (isLive) { + //openNIRecorders[deviceID].drawDebug(); // draws all generators + openNIRecorders[deviceID].drawDepth(200, 0,600,450); + openNIRecorders[deviceID].drawImage(800, 0,600,450); + } + else { + //openNIPlayers[deviceID].drawDebug(); + openNIPlayers[deviceID].drawDepth(200, 0,600,450); + openNIPlayers[deviceID].drawImage(800, 0,600,450); + } + } + + ofPopMatrix(); + + ofSetColor(255, 255, 255); + string msg = "MILLIS: " + ofToString(ofGetElapsedTimeMillis()) + "\nFPS: " + ofToString(ofGetFrameRate()); + if (isRecording) { + msg +="\nrecorded "+ofToString(recorded); + } + if (!isLive) { + msg +="\n"+filenames[0]; + } + verdana.drawString(msg, 10, 10); +} + +//-------------------------------------------------------------- +void testApp::exit(){ + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIRecorders[deviceID].stop(); + openNIPlayers[deviceID].stop(); + } +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key){ + switch (key) { + case 's': + case 'S': + if (isRecording) { + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIRecorders[deviceID].stopRecording(); + stopSound.play(); + } + isRecording = false; + break; + } else { + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + filenames[deviceID]=generateFileName(deviceID); + openNIRecorders[deviceID].startRecording(generateFileName(deviceID)); + startSound.play(); + } + isRecording = true; + recorded=0; + break; + } + break; + case 'p': + case 'P': + if (filenames[0] != "" && !isRecording && isLive) { + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIRecorders[deviceID].stopRecording(); + } + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIPlayers[deviceID].startPlayer(filenames[deviceID]); + } + isLive = false; + //whichUser=&playUser; + //whichImage=&playImage; + } else { + isLive = true; + //whichUser=&recordUser; + //whichImage=&recordImage; + } + break; + } + + /* why do this? + switch (key) { + case 't': + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIRecorders[deviceID].toggleRegister(); + } + break; + case 'x': + for (int deviceID = 0; deviceID < numDevices; deviceID++){ + openNIRecorders[deviceID].stop(); + } + break; + default: + break; + } + */ +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + -- cgit v1.2.3