Mercurial > hg > soniczoomios
diff eventLogger.mm @ 38:0dfe9e0c01aa
Evnt trails fit with uploads. Smooth button.
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Wed, 10 Apr 2013 18:57:05 +0100 |
parents | a42903c61558 |
children | df7c08faf541 |
line wrap: on
line diff
--- a/eventLogger.mm Tue Apr 09 17:14:31 2013 +0100 +++ b/eventLogger.mm Wed Apr 10 18:57:05 2013 +0100 @@ -66,7 +66,7 @@ } //--------------------------------------------------------------------------- -bool EventLogger::testConnection(){ +void EventLogger::testConnection(){ Json::Value root; root["x"] = "y"; cout << "testConnection\n"; @@ -268,9 +268,7 @@ //--------------------------------------------------------------------------- bool EventLogger::uploadEventLog(bool async){ - // COMMENT THIS OUTRT !!!!!!!! - theEvents.clear(); - return false; + // show indicator logUploadInProgress = true; cout << "^^^^^^^^ ATTEMPTING TO UPLOAD " << theEvents.size() << " EVENTS ^^^^^^^^ .\n"; @@ -294,7 +292,7 @@ } } //---------------------------------------------------------------------------- -bool eventWasInRegion(vector<lEvent>::iterator eiter, TwoVector regionTopLeft, TwoVector regionBottomRight){ +bool eventWasInRegion(deque<lEvent>::iterator eiter, TwoVector regionTopLeft, TwoVector regionBottomRight){ if( ((*eiter).val1 > regionTopLeft.x ) && ((*eiter).val2 > regionTopLeft.y ) && ((*eiter).val1 < regionBottomRight.x ) && ((*eiter).val2 < regionBottomRight.y )){ return true; }else{ @@ -303,16 +301,27 @@ } //---------------------------------------------------------------------------- +void EventLogger::clearTrail(){ + eventsToDraw.clear(); +} +//---------------------------------------------------------------------------- void EventLogger::drawTrail(const TwoVector min, const TwoVector max){ - // horribly inefficient - vector<lEvent>::iterator eiter; - vector<lEvent>::iterator preveiter; + if(eventsToDraw.size() <= 0){ + return; + + } + deque<lEvent>::iterator eiter; + deque<lEvent>::iterator preveiter; int i = 0; + preveiter = --eventsToDraw.end(); + TwoVector start = TwoVector(ofGetWidth()*0.5,ofGetHeight()*0.5); + TwoVector end = theGridView.coordToPixel(TwoVector((*preveiter).val1,(*preveiter).val2)); + ofSetColor(255,255,255,96); + ofLine(start.x,start.y, end.x, end.y); - preveiter = theEvents.begin(); - for(eiter = --theEvents.end(); eiter > theEvents.begin(); eiter--){ + for(eiter = --eventsToDraw.end(); eiter >= eventsToDraw.begin(); eiter--){ //cout << i << '\n'; if( (*eiter).eventType == SCROLL || (*eiter).eventType == EVALUATION_POINT){ @@ -322,20 +331,12 @@ } if(eventWasInRegion(eiter, min, max) || eventWasInRegion(preveiter, min, max)){ // draw a line between prev and this - if(preveiter != theEvents.begin()){ + if(eiter != eventsToDraw.begin()){ TwoVector start = theGridView.coordToPixel(TwoVector((*preveiter).val1,(*preveiter).val2)); TwoVector end = theGridView.coordToPixel(TwoVector((*eiter).val1,(*eiter).val2)); ofSetColor(255,255,255,96); ofLine(start.x,start.y, end.x, end.y); - }else{ - // draw line from listen point to last evt - TwoVector start = TwoVector(ofGetWidth()*0.5,ofGetHeight()*0.5); - TwoVector end = theGridView.coordToPixel(TwoVector((*eiter).val1,(*eiter).val2)); - ofSetColor(255,255,255,96); - ofLine(start.x,start.y, end.x, end.y); - // draw ever growing listen point - } } @@ -398,13 +399,26 @@ int gap = newEvent.eventTime - previousEvent.eventTime; if(gap > 300){ // log previous event as a evaluation point MAYBE TODO if previous event was logged as scroll chuck it out? - theEvents.push_back(lEvent(EVALUATION_POINT, previousEvent.val1, previousEvent.val2, gap)); + lEvent evalEvt(EVALUATION_POINT, previousEvent.val1, previousEvent.val2, gap); + theEvents.push_back(evalEvt); + eventsToDraw.push_back(evalEvt); + if(eventsToDraw.size() > SCROLL_TRAIL_LENGTH){ + eventsToDraw.pop_front(); + } // and now new event as scroll theEvents.push_back(newEvent); + eventsToDraw.push_back(newEvent); + if(eventsToDraw.size() > SCROLL_TRAIL_LENGTH){ + eventsToDraw.pop_front(); + } eventCounter = 0; }else if(eventCounter >= EVENT_THIN_FACTOR){ // otherwise only record every Nth event theEvents.push_back(newEvent); + eventsToDraw.push_back(newEvent); + if(eventsToDraw.size() > SCROLL_TRAIL_LENGTH){ + eventsToDraw.pop_front(); + } eventCounter = 0; }