diff options
Diffstat (limited to '02_rec')
| -rwxr-xr-x | 02_rec/Makefile | 2 | ||||
| -rw-r--r-- | 02_rec/addons.make | 5 | ||||
| -rw-r--r-- | 02_rec/bin/data/verdana.ttf | bin | 0 -> 171792 bytes | |||
| -rwxr-xr-x | 02_rec/config.make | 56 | ||||
| -rw-r--r-- | 02_rec/src/main.cpp | 17 | ||||
| -rw-r--r-- | 02_rec/src/testApp.cpp | 199 | ||||
| -rw-r--r-- | 02_rec/src/testApp.h | 42 |
7 files changed, 321 insertions, 0 deletions
diff --git a/02_rec/Makefile b/02_rec/Makefile new file mode 100755 index 0000000..2d83a77 --- /dev/null +++ b/02_rec/Makefile @@ -0,0 +1,2 @@ +include config.make +include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/Makefile.examples diff --git a/02_rec/addons.make b/02_rec/addons.make new file mode 100644 index 0000000..0b4df47 --- /dev/null +++ b/02_rec/addons.make @@ -0,0 +1,5 @@ +ofxOpenNI +ofxFenster +ofxGui +ofxXmlSettings +ofxMayaCam diff --git a/02_rec/bin/data/verdana.ttf b/02_rec/bin/data/verdana.ttf Binary files differnew file mode 100644 index 0000000..8f25a64 --- /dev/null +++ b/02_rec/bin/data/verdana.ttf diff --git a/02_rec/config.make b/02_rec/config.make new file mode 100755 index 0000000..821a73a --- /dev/null +++ b/02_rec/config.make @@ -0,0 +1,56 @@ +# add custom variables to this file + +# OF_ROOT allows to move projects outside apps/* just set this variable to the +# absoulte path to the OF root folder + +OF_ROOT = ../../openFrameworks + + +# USER_CFLAGS allows to pass custom flags to the compiler +# for example search paths like: +# USER_CFLAGS = -I src/objects + +USER_CFLAGS = -I $(OF_ROOT)/addons/ofxOpenNI/include/openni -I $(OF_ROOT)/addons/ofxOpenNI/include/nite -I $(OF_ROOT)/addons/ofxOpenNI/src + + +# USER_LDFLAGS allows to pass custom flags to the linker +# for example libraries like: +# USER_LDFLAGS = libs/libawesomelib.a + +USER_LDFLAGS = -lOpenNI + + +EXCLUDE_FROM_SOURCE="bin,.xcodeproj,obj" + +# change this to add different compiler optimizations to your project + +USER_COMPILER_OPTIMIZATION = -march=native -mtune=native -Os + + +# android specific, in case you want to use different optimizations +USER_LIBS_ARM = +USER_LIBS_ARM7 = +USER_LIBS_NEON = + +# android optimizations + +ANDROID_COMPILER_OPTIMIZATION = -Os + +NDK_PLATFORM = android-8 + +# uncomment this for custom application name (if the folder name is different than the application name) +#APPNAME = folderName + +# uncomment this for custom package name, must be the same as the java package that contains OFActivity +#PKGNAME = cc.openframeworks.$(APPNAME) + + + + + +# linux arm flags + +LINUX_ARM7_COMPILER_OPTIMIZATIONS = -march=armv7-a -mtune=cortex-a8 -finline-functions -funroll-all-loops -O3 -funsafe-math-optimizations -mfpu=neon -ftree-vectorize -mfloat-abi=hard -mfpu=vfp + + + diff --git a/02_rec/src/main.cpp b/02_rec/src/main.cpp new file mode 100644 index 0000000..87dc35f --- /dev/null +++ b/02_rec/src/main.cpp @@ -0,0 +1,17 @@ + +#include "testApp.h" +#include "ofMain.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(&window, 1600,900, OF_FULLSCREEN); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp( new testApp()); + +} 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){ + +} + diff --git a/02_rec/src/testApp.h b/02_rec/src/testApp.h new file mode 100644 index 0000000..ffb92e9 --- /dev/null +++ b/02_rec/src/testApp.h @@ -0,0 +1,42 @@ +#ifndef _TEST_APP +#define _TEST_APP + +#include "ofxOpenNI.h" +#include "ofMain.h" + +#define MAX_DEVICES 2 + +class testApp : public ofBaseApp{ + +public: + void setup(); + void update(); + void draw(); + void exit(); + + void keyPressed (int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + string generateFileName(int cam); + + int numDevices; + ofxOpenNI openNIRecorders[MAX_DEVICES]; + ofxOpenNI openNIPlayers[MAX_DEVICES]; + string filenames[MAX_DEVICES]; + + bool isLive, isRecording; + + ofTrueTypeFont verdana; + + ofSoundPlayer startSound; + ofSoundPlayer stopSound; + + int recorded; + +}; + +#endif |
