changeset 1:23efe1f0cd8a

work on event logging
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Thu, 22 Nov 2012 17:59:13 +0000
parents 307e5fb699fb
children fcb512cef986
files eventLogger.h eventLogger.mm grid.cpp testApp.h testApp.mm
diffstat 5 files changed, 142 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- 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 <iostream>
+#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<Event> events;
     
+    int userID; // get something from hardware??
+    
+    EventLogger();
+    void logEvent(int evtType,TwoVector centre, double scale);
+    void sendHttp();
 };
 
 
--- 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 <sys/time.h>
 
 #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
--- 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 <sstream>
 
 //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();
 
 }
--- 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<float> vectorFilter(vector<float> newVec);
 
 		void lostFocus();
--- 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<int> 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<int> 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