diff options
| author | Tim Redfern <tim@eclectronics.org> | 2011-12-20 18:31:56 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2011-12-20 18:31:56 +0000 |
| commit | 084c8a9b85b853fa630d5a102cd102b45d543abf (patch) | |
| tree | 7268fe74717c5140ca22649b9694e8591276a917 /src/keyVar.cpp | |
| parent | 5523988d1729fe5c2757e046636d219639ee6724 (diff) | |
building multiple views
Diffstat (limited to 'src/keyVar.cpp')
| -rw-r--r-- | src/keyVar.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/keyVar.cpp b/src/keyVar.cpp new file mode 100644 index 0000000..ea8b9ff --- /dev/null +++ b/src/keyVar.cpp @@ -0,0 +1,53 @@ +/* + * keyvar.cpp + + generalised cushioned keyboard controller + */ + +#include "keyVar.h" +#define DEBUG 0 + +void keyVar::set(char _keyInc,char _keyDec,float _val,float _speed,float _accel,float _accelTime){ + keyInc=_keyInc; + keyDec=_keyDec; + val=_val; //initial value + speed=_speed; + accel=_accel; + accelTime=_accelTime; + state=0; + timePressed=timeCalc=0; + +} +void keyVar::keyPressed(char _key){ + //need to deal with key repeat: OSX anyway + if (_key==keyInc&&state!=1) { + state=1; + timePressed=timeCalc=ofGetElapsedTimef(); + if (DEBUG) printf("pressed %i\n",_key); + } + if (_key==keyDec&&state!=-1) { + state=-1; + timePressed=timeCalc=ofGetElapsedTimef(); + if (DEBUG) printf("pressed %i\n",_key); + } +} +void keyVar::keyReleased(char _key){ + if (_key==keyInc&&state==1) { + state=0; + if (DEBUG) printf("released %i\n",_key); + } + if (_key==keyDec&&state==-1) { + state=0; + if (DEBUG) printf("released %i\n",_key); + } +} +float keyVar::getVal(){ + float segment = min(1.0f,(ofGetElapsedTimef()-timePressed)/accelTime); + if (state) val+=pow(segment,accel)*speed*state; //(ofGetElapsedTimef()-timeCalc)* + timeCalc=ofGetElapsedTimef(); + return val; +} +float keyVar::getInc(){ + float segment = min(1.0f,(ofGetElapsedTimef()-timePressed)/accelTime); + return pow(segment,accel)*speed*state; +} |
