summaryrefslogtreecommitdiff
path: root/liveengine/src/testApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'liveengine/src/testApp.cpp')
-rwxr-xr-xliveengine/src/testApp.cpp137
1 files changed, 116 insertions, 21 deletions
diff --git a/liveengine/src/testApp.cpp b/liveengine/src/testApp.cpp
index 7f0ff47..8527f73 100755
--- a/liveengine/src/testApp.cpp
+++ b/liveengine/src/testApp.cpp
@@ -8,7 +8,7 @@ void previewWindow::setBuffer(ofFbo *buffer){
}
void previewWindow::draw(){
- rb->draw(0,0,ofGetWidth(),ofGetHeight());
+ rb->draw(0,0,ofGetWidth(),ofGetHeight()); //why crash?
}
//--------------------------------------------------------------
@@ -22,26 +22,103 @@ void guiWindow::setParent(testApp *p){
void guiWindow::draw(){
parent->gui.draw();
+ if (parent->list.lock()) { //if loaded
+ if (!parent->list.thumbnailed) parent->list.makeThumbnail();
+ if (parent->list.thumbnailed) parent->list.thumbnail.draw(20,ofGetHeight()-150);
+ parent->list.unlock();
+ }
+ ofDrawBitmapString(parent->list.name,20,ofGetHeight()-10);
}
void guiWindow::dragEvent(ofDragInfo dragInfo, ofxFenster* win){
- printf("gui received file:%s\n",dragInfo.files[0].c_str());
+ parent->dragEvent(dragInfo);
+}
+void guiWindow::windowMoved(int x,int y){
+ //printf("window moved!\n");
+}
+
+//----------------------------------------------------------------------
+
+kinectWindow::~kinectWindow(){
+ cout << "kinect window destroyed" << endl;
+}
+void kinectWindow::setup(){
+}
+void kinectWindow::setParent(testApp *p){
+ parent=p;
+}
+void kinectWindow::draw(){
+ parent->recordDepth.draw(0,0,ofGetWidth(),ofGetHeight());
+ parent->recordUser.draw(ofGetWidth(),ofGetHeight());
}
+
//--------------------------------------------------------------
void testApp::setup(){
int midiPort=0;
- midiChannel=0;
+ midiChannel=0;
+ useKinect=false;
if( !XML.loadFile("settings.xml") ){
printf("unable to load settings.xml check data/ folder\n");
}else{
printf("settings loaded!\n");
midiPort=ofToInt(XML.getAttribute("liveEngine", "port", "0")); //default to 0/all
- midiChannel=ofToInt(XML.getAttribute("liveEngine", "channel", "0"));
- if (midiChannel) printf("listening on port %d, midi channel %d\n",midiPort,midiChannel);
- else printf("listening on port %d, all midi channels\n",midiPort);
- }
-
+ midiChannel=ofToInt(XML.getAttribute("liveEngine", "channel", "0"));
+ if (midiChannel) printf("listening on port %d, midi channel %d\n",midiPort,midiChannel);
+ else printf("listening on port %d, all midi channels\n",midiPort);
+ if(XML.pushTag("liveEngine")) {
+ int numViews=XML.getNumTags("viewport");
+ if(numViews) {
+ for (int i=0;i<numViews;i++) {
+ int w=XML.getAttribute("viewport", "w",0,i);
+ int h=XML.getAttribute("viewport", "h",0,i);
+ int x=XML.getAttribute("viewport", "x",0,i);
+ int y=XML.getAttribute("viewport", "y",0,i);
+ int rot=XML.getAttribute("viewport", "rot",0,i);
+ int ox=XML.getAttribute("viewport", "ox",0,i);
+ int oy=XML.getAttribute("viewport", "oy",0,i);
+ printf("viewport %i: %ix%i\n",i,w,h);
+ if (XML.getAttribute("viewport", "mapped",0,i)==1) {
+ if (!useKinect) {
+ //set up preview window and kinect classes
+ useKinect=true;
+ kinectWin=new kinectWindow();
+ ofxFenster* kw=ofxFensterManager::get()->createFenster(0, 0, 320, 240, OF_WINDOW);
+ kw->setWindowTitle("kinect");
+ kw->addListener(kinectWin);
+ kinectWin->setup();
+ kinectWin->setParent(this);
+
+ isLive = true;
+ isTracking = false;
+ isFiltering = false;
+ isMasking = true;
+ isCloud = false;
+
+ nearThreshold = 500;
+ farThreshold = 1000;
+
+ filterFactor = 10.0f;
+
+ recordContext.setup();
+ recordDepth.setup(&recordContext);
+ recordImage.setup(&recordContext);
+ recordUser.setup(&recordContext);
+ recordUser.setSmoothing(filterFactor); // built in openni skeleton smoothing...
+ recordUser.setUseMaskPixels(isMasking);
+ recordUser.setUseCloudPoints(isCloud);
+ recordUser.setMaxNumberOfUsers(2);
+ }
+ viewports.push_back(new viewport(w,h,x,y,rot,ox,oy));
+ viewports[viewports.size()-1]->setUG(&recordUser);
+ }
+ else viewports.push_back(new viewport(w,h,x,y,rot,ox,oy));
+ }
+ }
+ else printf("no viewports!\n");
+ }
+ }
+
midiIn.listPorts();
midiIn.openPort(midiPort);
midiIn.addListener(this);
@@ -65,8 +142,8 @@ void testApp::setup(){
transparentBlack=false;
reversemain=false;
- vp1.setup(768,1024,1024,0,-90,-256,-384);
- vp2.setup(1024,768,0,0,0,-512,-384);
+ //vp1.setup(768,1024,1024,0,-90,-256,-384);
+ //vp2.setup(1024,768,0,0,0,-512,-384);
showFPS=false;
ofBackground(0,0,0);
@@ -103,11 +180,10 @@ void testApp::setup(){
ofAddListener(win->events.mouseDragged, this, &testApp::mousePressedEvent);
ofAddListener(win->events.mousePressed, this, &testApp::mousePressedEvent);
ofAddListener(win->events.keyPressed, this, &testApp::keyPressedEvent);
- ofAddListener(win->events.fileDragEvent, this, &testApp::refDragEvent);
win->setWindowTitle("preview");
win->addListener(prevWin);
prevWin->setup();
- prevWin->setBuffer(&vp1.rb2);
+ prevWin->setBuffer(&viewports[0]->rb2);
fullscreenoutput=false;
@@ -125,9 +201,9 @@ void testApp::setup(){
//gui window stuff
ofxFenster* win2=ofxFensterManager::get()->createFenster(0, 0, 200, 400, OF_WINDOW);
- ofAddListener(win2->events.fileDragEvent, this, &testApp::refDragEvent);
- //ofAddListener(win2->events.mousePressed, 0, &testApp::mousePressedEvent);
- //ofAddListener(win2->events.keyPressed, this, &testApp::keyPressedEvent);
+
+ ofAddListener(win2->events.windowResized, this, &testApp::windowEvent);
+
win2->setWindowTitle("config");
win2->addListener(guiWin);
guiWin->setup();
@@ -151,6 +227,13 @@ void testApp::makeColours() {
//--------------------------------------------------------------
void testApp::update(){
//for (int i=0;i<numLayers;i++) layers[i]->update();
+
+ if (useKinect) {
+ recordContext.update();
+ recordDepth.update();
+ recordImage.update();
+ recordUser.update();
+ }
}
//--------------------------------------------------------------
@@ -160,8 +243,13 @@ void testApp::draw(){
ofSetColor(255-fadetime,255-fadetime,255-fadetime); //for feedback
- vp1.draw(lambda,controllers,xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,scale,fscale,noteRandomiseColours?colShift:0.0f);
- vp2.draw(lambda,controllers,reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,reversemain?1.0f/scale:scale,reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f);
+ //vp1.draw(lambda,controllers,xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,scale,fscale,noteRandomiseColours?colShift:0.0f);
+ //vp2.draw(lambda,controllers,reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,reversemain?1.0f/scale:scale,reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f);
+ for (int i=0;i<viewports.size();i++) {
+ bool even=!(i%2);
+ if (viewports[i]->isMapped) viewports[i]->mapdraw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/scale:scale,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f);
+ else viewports[i]->draw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/scale:scale,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f);
+ }
ofSetColor(255,255,255);
if (showFPS) ofDrawBitmapString(ofToString(ofGetFrameRate(), 2),20,20);
@@ -459,14 +547,21 @@ void testApp::gotMessage(ofMessage msg){
}
//--------------------------------------------------------------
-void testApp::refDragEvent(ofDragInfo &dragInfo){
- dragEvent(dragInfo);
-}
+
void testApp::dragEvent(ofDragInfo dragInfo, ofxFenster* win){
dragEvent(dragInfo);
}
void testApp::dragEvent(ofDragInfo dragInfo){
- printf("received file:%s\n",dragInfo.files[0].c_str());
+ printf("got draginfo: %s\n",dragInfo.files[0].c_str());
+ int sta=dragInfo.files[0].find_last_of("\\/")+1;
+ int len=(dragInfo.files[0].find_last_of(".")+4)-sta;
+ string filename=dragInfo.files[0].substr(sta,len);
+ printf("loading %s\n",filename.c_str());
+
+ list.load(filename);
+}
+void testApp::windowEvent(ofResizeEventArgs &args){
+ printf("window event\n");
}
void testApp::mousePressedEvent(ofMouseEventArgs &args) {