annotate eventLogger.h @ 5:5ee5ef99e117

presets have "icons" and save OK. Snapping works. move velocity still frustrating.
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Wed, 05 Dec 2012 18:42:02 +0000
parents 7541aeaebcdc
children 845ea04f8e33
rev   line source
rt300@0 1 //
rt300@0 2 // eventLogger.h
rt300@0 3 // oscSenderExample
rt300@0 4 //
rt300@0 5 // Created by Robert Tubb on 05/11/2012.
rt300@0 6 //
rt300@0 7 //
rt300@0 8 // This class handle everything to do with loggin user actions,
rt300@0 9 // uploading logs to server, and storing locally if not uploaded
rt300@0 10
rt300@0 11 #ifndef __oscSenderExample__eventLogger__
rt300@0 12 #define __oscSenderExample__eventLogger__
rt300@0 13
rt300@1 14
rt300@4 15 #include "ofMain.h"
rt300@4 16 #include "ofxiPhone.h"
rt300@4 17 #include "2dvector.h"
rt300@4 18 #include "ofxiPhoneExtras.h"
rt300@4 19 #include <sys/time.h>
rt300@4 20 #include <iostream>
rt300@4 21 #include <string>
rt300@4 22 #include <map>
rt300@4 23 #include "2dvector.h"
rt300@5 24 enum leventType {SAVE_PRESET, SAVE_DESET, SCROLL, SCROLL_STOPPED, ZOOM, CHANGE_SLIDER, SWAP_VIEW, SET_MIN_ZOOM, SET_MAX_ZOOM};
rt300@1 25
rt300@4 26 class lEvent{
rt300@5 27 public:
rt300@1 28 // try and make this as compact as possible.
rt300@4 29 leventType eventType;
rt300@1 30 double val1; // x coord, scale if zoom
rt300@1 31 double val2; // y coord, 0 if zoom
rt300@4 32 int sliderID;
rt300@5 33 lEvent(leventType eType, double v1, double v2 = 0.0,int sID = 0){
rt300@5 34 eventType = eType;
rt300@5 35 val1 = v1;
rt300@5 36 val2 = v2;
rt300@5 37 sliderID = sID;
rt300@5 38 }
rt300@5 39 };
rt300@5 40 //---------------------------------------------------------------------------
rt300@5 41 inline istream& operator>>(istream & is, lEvent& e){
rt300@5 42 is.setf(ios_base::fixed,ios_base::floatfield);
rt300@5 43 is.precision(1);
rt300@4 44
rt300@5 45 char delim;
rt300@5 46 int eType;
rt300@0 47
rt300@5 48 is >> eType >> delim >> e.val1 >> delim >> e.val2 >> delim >> e.sliderID;
rt300@5 49
rt300@5 50 e.eventType = (leventType)eType;
rt300@5 51
rt300@5 52 return is;
rt300@5 53 }
rt300@4 54
rt300@5 55 //---------------------------------------------------------------------------
rt300@5 56 inline ostream& operator<<(ostream & os, const lEvent& e){
rt300@5 57 os.setf(ios_base::fixed,ios_base::floatfield);
rt300@5 58 os.precision(1);
rt300@5 59
rt300@5 60 os << e.eventType << ',' << e.val1 << ',' << e.val2 << ',' << e.sliderID << '\n';
rt300@5 61
rt300@5 62 return os;
rt300@5 63 }
rt300@5 64 //---------------------------------------------------------------------------
rt300@4 65
rt300@0 66 class EventLogger{
rt300@0 67 public:
rt300@0 68 // what we need...
rt300@0 69 /*
rt300@0 70 time, type, value
rt300@0 71 */
rt300@5 72 bool loggingEnabled;
rt300@5 73
rt300@4 74 vector<lEvent> theEvents;
rt300@0 75
rt300@4 76 string userID; // get something from hardware??
rt300@1 77
rt300@1 78 EventLogger();
rt300@5 79 void logEvent(const leventType& evtType,const TwoVector& centre = TwoVector(), const double& scale = 1.0, const int& sliderID = -1, const double& sliderVal = 0.0);
rt300@5 80 void logEvent(const leventType& evtType,const int& sliderID, const double& sliderVal);
rt300@1 81 void sendHttp();
rt300@5 82
rt300@5 83 void printAll(){
rt300@5 84 cout << "ALL LOGGED EVENTS!: \n";
rt300@5 85 vector<lEvent>::iterator evIter;
rt300@5 86 for(evIter = theEvents.begin(); evIter < theEvents.end(); evIter++){
rt300@5 87 cout << *evIter;
rt300@5 88
rt300@5 89 }
rt300@5 90 };
rt300@0 91 };
rt300@0 92
rt300@0 93
rt300@5 94
rt300@5 95
rt300@0 96 #endif /* defined(__oscSenderExample__eventLogger__) */