From 05e10b6125ecbac04a75f224cfd9e465f34326f6 Mon Sep 17 00:00:00 2001 From: Javier Serrano Polo Date: Wed, 28 Jun 2006 00:48:13 +0000 Subject: [PATCH] - added level<->label methods - minimized rounding errors git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@180 0778d3d1-df1d-0410-868b-ea421aaaa00d --- include/automatable_object.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/include/automatable_object.h b/include/automatable_object.h index 52b617b2d..4ebacc4be 100755 --- a/include/automatable_object.h +++ b/include/automatable_object.h @@ -136,7 +136,7 @@ public: if( m_step != 0 ) { - _value = static_cast( floorf( _value / step() ) * + _value = static_cast( roundf( _value / step() ) * step() ); } else @@ -455,7 +455,17 @@ private: inline int level( T _value ) const { - return( (int)( _value / m_step ) ); + return( (int)roundf( _value / m_step ) ); + } + + QString levelToLabel( int _level ) + { + return( QString::number( _level * m_step ) ); + } + + int labelToLevel( QString _label ) + { + return( level( attributeValue( _label ) ) ); } } ;