diff options
Diffstat (limited to 'liveengine/src/testApp.cpp')
| -rwxr-xr-x | liveengine/src/testApp.cpp | 137 |
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) { |
