TouchTracker::TouchTracker() :
mSampleRate(1000.f),
mMaxTouchesPerFrame(0),
mLopassZ(50.),
mRotate(false)
{
	setThresh(0.1);
	
	for(int i = 0; i < kMaxTouches; i++)
	{
		mRotateShuffleOrder[i] = i;
	}
}
void TempSensor::setHighThresh(int tC) {
  setThresh(ACCESS_TH,tC);
}
void TempSensor::setLowThresh(int tC) {
  setThresh(ACCESS_TL,tC);
}
/*!
 * \brief ParameterManager::loadSettings
 * \param _filename
 * \return false if file doesn't exist, true if parameters were loaded.
 */
bool ParameterManager::loadSettings(const QString & _filename)
{
    QFileInfo fileInfo(_filename);

    if (!fileInfo.exists()) return false;

    QSettings settings(_filename,QSettings::IniFormat);

    m_notify = false;

    settings.beginGroup(SETTING_GROUP_HSV);
    {
      settings.beginGroup(SETTING_GROUP_MIN);
      {
          setHsvMinHue(settings.value(SETTING_HUE,0).toInt());
          setHsvMinSat(settings.value(SETTING_SAT,0).toInt());
          setHsvMinVal(settings.value(SETTING_VAL,0).toInt());
      }settings.endGroup();//min

      settings.beginGroup(SETTING_GROUP_MAX);
      {
          setHsvMaxHue(settings.value(SETTING_HUE,0).toInt());
          setHsvMaxSat(settings.value(SETTING_SAT,0).toInt());
          setHsvMaxVal(settings.value(SETTING_VAL,0).toInt());
      }settings.endGroup();//max
    }settings.endGroup();//HSV

    settings.beginGroup(SETTING_GROUP_ZONE);
    {
        setZoneX(settings.value(SETTING_X,0).toInt());
        setZoneY(settings.value(SETTING_Y,0).toInt());
        setZoneWidth(settings.value(SETTING_WIDTH,0).toInt());
        setZoneHeight(settings.value(SETTING_HEIGHT,0).toInt());
    }settings.endGroup();//Zone

    settings.beginGroup(SETTING_GROUP_CHAR_MAX_SIZE);
    {
        setCharMaxWidth(settings.value(SETTING_WIDTH,0).toInt());
        setCharMaxHeight(settings.value(SETTING_HEIGHT,0).toInt());
    }settings.endGroup();//Char max size

    settings.beginGroup(SETTING_GROUP_EDGE_DETECTION);
    {
        setThresh(settings.value(SETTING_THRESH,0).toInt());
    }settings.endGroup();//Edge detection

    settings.beginGroup(SETTING_GROUP_TOLERANCE);
    {
        setXTolerance(settings.value(SETTING_X,0).toInt());
        setYTolerance(settings.value(SETTING_Y,0).toInt());
    }settings.endGroup();//Tolerance

    settings.beginGroup(SETTING_GROUP_SIMILARITY_DETECTION);
    {
        setMatchRatio(settings.value(SETTING_MATCH_RATIO,0.05).toDouble());
    }settings.endGroup();//Similarity detection

    m_notify = true;
    changeNotification();

    return true;
}//loadSettings