X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Factivity.cpp;fp=source%2Factivity.cpp;h=05a489259801245247b8d5fda67e9f337ce5a822;hb=cc29ebb178d4695573f10a829534cb660e14e79d;hp=0000000000000000000000000000000000000000;hpb=26fb816da7078d687f7540e2e0a2d525801592f7;p=netvis.git diff --git a/source/activity.cpp b/source/activity.cpp new file mode 100644 index 0000000..05a4892 --- /dev/null +++ b/source/activity.cpp @@ -0,0 +1,30 @@ +#include +#include +#include "activity.h" + +using namespace Msp; + +Activity::Activity(): + average(0) +{ } + +void Activity::add_bytes(unsigned n) +{ + // Scale for correct integral + average += n*0.06935; +} + +void Activity::tick(const Time::TimeDelta &dt) +{ + static Time::TimeDelta last_dt; + static float decay = 0; + + if(dt!=last_dt) + { + // Half-life in 10 seconds + decay = pow(0.933f, dt/Time::sec); + last_dt = dt; + } + + average *= decay; +}