/* Blinker
   Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
   Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
   a blinkenarea.org project */

#include "Float.h"
#include "Rate.h"

#define BLINKER_RATE_MIN (0.001f)

namespace Blinker {

/// constructor
Rate::Rate():
  m_rate(1.0f)
{
}

/**
 * @brief parse from string format
 * @param[in] str string format
 * @return if parsing was successful
 */
bool Rate::fromStr(const std::string &str)
{
  Float fl;

  if (!fl.fromStr(str) || fl.m_float < BLINKER_RATE_MIN)
    return false;
  m_rate = fl.m_float;
  return true;
}

/**
 * @brief convert to string format
 * @return string format
 */
std::string Rate::toStr() const
{
  Float fl;
  fl.m_float = m_rate;
  return fl.toStr();
}

} // namespace Blinker

