From f96ac8a05c915832c0efe5e70264245fca15b33e Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 19 Dec 2011 13:37:11 +0000 Subject: linux osx project initial --- src/keyVar.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/keyVar.cpp (limited to 'src/keyVar.cpp') diff --git a/src/keyVar.cpp b/src/keyVar.cpp new file mode 100644 index 0000000..ca64b7f --- /dev/null +++ b/src/keyVar.cpp @@ -0,0 +1,47 @@ +/* + * keyvar.cpp + + generalised cushioned keyboard controller + */ + +#include "keyVar.h" + +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(); + printf("pressed %i\n",_key); + } + if (_key==keyDec&&state!=-1) { + state=-1; + timePressed=timeCalc=ofGetElapsedTimef(); + printf("pressed %i\n",_key); + } +} +void keyVar::keyReleased(char _key){ + if (_key==keyInc&&state==1) { + state=0; + printf("released %i\n",_key); + } + if (_key==keyDec&&state==-1) { + state=0; + printf("released %i\n",_key); + } +} +float keyVar::getVal(){ + float segment = min(1.0f,(ofGetElapsedTimef()-timePressed)/accelTime); + if (state) val+=pow(segment,accel)*(ofGetElapsedTimef()-timeCalc)*speed*state; + timeCalc=ofGetElapsedTimef(); + return val; +} \ No newline at end of file -- cgit v1.2.3