summaryrefslogtreecommitdiff
path: root/02_rec/src/testApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to '02_rec/src/testApp.cpp')
-rw-r--r--02_rec/src/testApp.cpp199
1 files changed, 199 insertions, 0 deletions
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){
+
+}
+