# HG changeset patch # User Robert Tubb # Date 1353607153 0 # Node ID 23efe1f0cd8afe1a0cead6199e7af409639dac0a # Parent 307e5fb699fb26d1724793a7818c853969416659 work on event logging diff -r 307e5fb699fb -r 23efe1f0cd8a eventLogger.h --- a/eventLogger.h Mon Nov 19 12:56:47 2012 +0000 +++ b/eventLogger.h Thu Nov 22 17:59:13 2012 +0000 @@ -11,8 +11,18 @@ #ifndef __oscSenderExample__eventLogger__ #define __oscSenderExample__eventLogger__ + + #include +#include "2dvector.h" +enum eventType {PRESET, DESET, SCROLL, ZOOM, SLIDER}; +class Event{ + // try and make this as compact as possible. + int eventType; // -4 save deset, -3 save preset, -2 zoom, -1 scroll, 0-D slider index + double val1; // x coord, scale if zoom + double val2; // y coord, 0 if zoom +}; class EventLogger{ public: @@ -20,7 +30,13 @@ /* time, type, value */ + vector events; + int userID; // get something from hardware?? + + EventLogger(); + void logEvent(int evtType,TwoVector centre, double scale); + void sendHttp(); }; diff -r 307e5fb699fb -r 23efe1f0cd8a eventLogger.mm --- a/eventLogger.mm Mon Nov 19 12:56:47 2012 +0000 +++ b/eventLogger.mm Thu Nov 22 17:59:13 2012 +0000 @@ -5,5 +5,58 @@ // Created by Robert Tubb on 05/11/2012. // // +#include "ofMain.h" +#include "ofxiPhone.h" +#include "2dvector.h" +#include "ofxiPhoneExtras.h" +#include #include "eventLogger.h" + + +EventLogger eventLogger; + +EventLogger::EventLogger(){ + + // if first time opened request a user ID from the server. use time? + + double timemsd = [NSDate timeIntervalSinceReferenceDate]; + long long timems = (long long)(timemsd*1000); + cout << "Time (ms) = " << timems << "\n"; + +} + +void EventLogger::logEvent(int evtType, TwoVector centre, double scale = 0.0){ + cout << "log: " << evtType << "\n"; + + // scroll has 2 double coords + // zoom has 1 double scale + // save preset has 2 coords + // switch view has view type + // slider change has int slider index and 1 int value + + // store in local vector + if(evtType == -4){ + // save deset + }else if(evtType == -3){ + // save preset + }else if(evtType == -2){ + // save preset + }else if(evtType == -1){ + // save preset + }else{ + // slider change + } + +} + +void EventLogger::sendHttp(){ + + string url = "http://www.rootnot.co.uk/cgi-bin/"; + ofURLFileLoader fileLoader; + ofHttpResponse resp; + resp = fileLoader.get(url); + cout << "HTTP STATUS " << resp.status << "\n"; + cout << "HTTP ERROR " << resp.error << "\n"; + cout << "HTTP DATA " << resp.data << "\n"; +} \ No newline at end of file diff -r 307e5fb699fb -r 23efe1f0cd8a grid.cpp --- a/grid.cpp Mon Nov 19 12:56:47 2012 +0000 +++ b/grid.cpp Thu Nov 22 17:59:13 2012 +0000 @@ -7,12 +7,12 @@ // #include "ofMain.h" #include "grid.h" -//#include "presetManager.h" +#include "eventLogger.h" #include //extern PresetManager presetManager; - +extern EventLogger eventLogger; //-------------------------------------------------------------- Grid::Grid(){ @@ -407,7 +407,7 @@ topLeft = topLeft - moveS; // - because moving to the right means taking away from offset centre = centre - moveS; - + eventLogger.logEvent(-1, centre, scale); viewWasChanged(); } //-------------------------------------------------------------- @@ -433,6 +433,8 @@ size.x = size.x*factor; // zooming in, size gets SMALLER (view less) size.y = size.y*factor; + + eventLogger.logEvent(-2, centre, scale); viewWasChanged(); } diff -r 307e5fb699fb -r 23efe1f0cd8a testApp.h --- a/testApp.h Mon Nov 19 12:56:47 2012 +0000 +++ b/testApp.h Thu Nov 22 17:59:13 2012 +0000 @@ -8,6 +8,7 @@ #include "2dvector.h" #include "ofxUI.h" #include "eventLogger.h" + #define HOST "169.254.1.1" #define PORT 12345 @@ -55,6 +56,9 @@ void touchDoubleTap(ofTouchEventArgs &touch); void touchCancelled(ofTouchEventArgs &touch); + void handleScroll(); + void handleZoom(); + vector vectorFilter(vector newVec); void lostFocus(); diff -r 307e5fb699fb -r 23efe1f0cd8a testApp.mm --- a/testApp.mm Mon Nov 19 12:56:47 2012 +0000 +++ b/testApp.mm Thu Nov 22 17:59:13 2012 +0000 @@ -1,9 +1,11 @@ #include "testApp.h" #include "grid.h" #include "presetManager.h" +#include "eventLogger.h" extern Grid theGridView; extern PresetManager presetManager; +extern EventLogger eventLogger; //-------------------------------------------------------------- void testApp::setup(){ ofSetOrientation(OF_ORIENTATION_90_LEFT); @@ -54,11 +56,13 @@ ofxiPhoneSetOrientation( OF_ORIENTATION_90_RIGHT ); + + } //-------------------------------------------------------------- void testApp::setupZoomGui(){ zoomGUI = new ofxUICanvas(ofGetWidth()-200,0,190,125); - zoomGUI->setTheme(OFX_UI_THEME_HIPSTER); + zoomGUI->setTheme(OFX_UI_THEME_HACKER ); ofxUIWidget *bwidge = zoomGUI->addLabelToggle("SWITCH VIEW", false); @@ -138,8 +142,14 @@ ofxUISlider *slider; slider = (ofxUISlider *)standardGUI->addWidgetDown(new ofxUISlider(length,dim,0.0,127,64,ss.str())); slider->setDrawPadding(true); - slider->setColorFill(ofColor(0,0,255)); - slider->setColorFillHighlight(ofColor(0,0,255)); + if(i <= 5){ + slider->setColorFill(ofColor(0,0,255)); + slider->setColorFillHighlight(ofColor(0,0,255)); + }else{ + slider->setColorFill(ofColor(255,0,0)); + slider->setColorFillHighlight(ofColor(255,0,0)); + } + sliders.push_back(slider); } @@ -179,8 +189,8 @@ //-------------------------------------------------------------- void testApp::setGUISliders(vector vals){ for(int i = 0; i<10;i++){ - // uh shit need to have reference to this lot sliders[i]->setValue(vals[i]); + sliderVals[i] = vals[i]; } } //-------------------------------------------------------------- @@ -211,8 +221,9 @@ theGridView.update(); vector params = theGridView.getParams(); // FILTER HERE? NEED FLOATS... setGUISliders(params); + // sendOSCParams(); - + // sendMIDIParams(); } //-------------------------------------------------------------- void testApp::sendOSCParams(){ @@ -239,8 +250,8 @@ } theGridView.draw(); - ofSetColor(20, 160, 240, 255); - ofDrawBitmapString("text entered = "+ keyboard->getText() , 2, 70); + //ofSetColor(20, 160, 240, 255); + //ofDrawBitmapString("text entered = "+ keyboard->getText() , 2, 70); } //-------------------------------------------------------------- @@ -284,13 +295,17 @@ //-------------------------------------------------------------- void testApp::touchMoved(ofTouchEventArgs &touch){ + + //cout << "touch id " << touch.id << "\n"; + //cout << "active touches " << numActiveTouches << "\n"; + + if(standardGUIShowing){ // check if in GUI area if(touch.x < 256) return; } - // - // which one? + // which one? keep track of each touch point if(touch.id == 0){ touch0.setCoord(touch.x,touch.y); @@ -299,62 +314,61 @@ touch1.setCoord(touch.x,touch.y); } + if(numActiveTouches == 1){ - //cout << "touch id " << touch.id << "\n"; - //cout << "active touches " << numActiveTouches << "\n"; - - - if(numActiveTouches == 1){ - // TODO: when num touches goes down to 1 after zoom prevTouch can be hugely different! - - TwoVector move = touch0 - prevTouch0; - moveVel = move*0.3 + prevMove*0.34 + prevMove2*0.38; // broke? - prevMove2 = prevMove; - prevMove = move; - - theGridView.move(move.x,move.y); - - - + handleScroll(); }else if(numActiveTouches == 2){ - // work out change in difference - double dist = touch1.distanceTo(touch0); - double zoomFactor = prevDist/dist; - - cout << "Zoom: " << zoomFactor << "\n"; - //TODO check for sensible maximums, e.g. spurious touch data - if(zoomFactor > 2.0 || zoomFactor < 0.5){ - cout << "Zoom too much!!!!" << zoomFactor; - zoomFactor = 1.0; - } - - zoomVel = (zoomFactor-1)*0.3 + prevZoom*0.34 + prevZoom2*0.38; - prevZoom2 = prevZoom; - prevZoom = (zoomFactor-1); - - theGridView.zoom(zoomFactor); - - prevDist = dist; - // TODO: when num touches goes down to 1 after zoom prevTouch can be hugely different! - // also if try to move with other finger after zoom , this is touch1 :( - // prevTouch0 = ??? + handleZoom(); } prevTouch0 = touch0; } - +//-------------------------------------------------------------- +void testApp::handleScroll(){ + + TwoVector move = touch0 - prevTouch0; + moveVel = move*0.3 + prevMove*0.34 + prevMove2*0.38; // broke? + prevMove2 = prevMove; + prevMove = move; + + theGridView.move(move.x,move.y); +} +//-------------------------------------------------------------- +void testApp::handleZoom(){ + // work out change in difference + double dist = touch1.distanceTo(touch0); + double zoomFactor = prevDist/dist; + + //TODO check for sensible maximums, e.g. spurious touch data + if(zoomFactor > 2.0 || zoomFactor < 0.5){ + cout << "Zoom too much!!!!" << zoomFactor; + zoomFactor = 1.0; + } + + zoomVel = (zoomFactor-1)*0.3 + prevZoom*0.34 + prevZoom2*0.38; + prevZoom2 = prevZoom; + prevZoom = (zoomFactor-1); + + theGridView.zoom(zoomFactor); + + prevDist = dist; + // TODO: when num touches goes down to 1 after zoom prevTouch can be hugely different! + // also if try to move with other finger after zoom , this is touch1 :( + // prevTouch0 = ??? +} //-------------------------------------------------------------- void testApp::touchUp(ofTouchEventArgs &touch){ + if(numActiveTouches > 0) numActiveTouches--; // dirty + if(standardGUIShowing){ // check if in GUI area if(touch.x < 256) - if(numActiveTouches > 0) numActiveTouches--; // dirty + return; } - - numActiveTouches--; + // which one? if(touch.id == 0){ // tricky situation - we tried to zoom but may have left non-move finger on