Beispiel #1
0
void processPkgFile(const std::string& fileName)
{
  std::cout << "Reading " << fileName << "..." << std::endl;
  std::auto_ptr<AbstractTextFileReader> reader = openIndexFile(fileName);
  std::string line, name;
  while(reader->readLine(line))
    {
      std::string tail;
      if (stringBegins(line, "n=", tail))
	{
	  name = tail;
	  continue;
	}
      if (stringBegins(line, "p:", tail))
	{
	  std::string pkgName = extractPackageName(tail);
	  assert(!pkgName.empty());
	  list1.push_back(MapItem(name, pkgName));
	}
    }
}
Beispiel #2
0
void process(const std::string& line)
{
  if (line.empty())
    {
      vm_stop(con);
      return;
    }
  const std::wstring s = IO2WString(line);
  if (s.length() == 1)
    {
      vm_letter(con, (char*)encodeUTF8(s).c_str());
      return;
    }
  std::wstring p;
  if (stringBegins(s, IO2WString(VOLUME_HEAD), p))
    {
      p = trim(p);
      if (!checkTypeUnsignedInt(p))
	{
	  std::cout << ERROR_PREFIX << "\'" << p << "\' is not a valid volume value" << std::endl;
	  return;
	}
      const size_t pp = parseAsUnsignedInt(p);
      if (pp > 100)
	{
	  std::cout << ERROR_PREFIX << "argument must be a value from 0 to 100" << std::endl;
	  return;
	}
      vm_volume(con, (unsigned char)pp);
      return;
    }
  if (stringBegins(s, IO2WString(PITCH_HEAD), p))
    {
      p = trim(p);
      if (!checkTypeUnsignedInt(p))
	{
	  std::cout << ERROR_PREFIX << "\'" << p << "\' is not a valid pitch value" << std::endl;
	  return;
	}
      const size_t pp = parseAsUnsignedInt(p);
      if (pp > 100)
	{
	  std::cout << ERROR_PREFIX << "argument must be a value from 0 to 100" << std::endl;
	  return;
	}
      vm_pitch(con, (unsigned char)pp);
      return;
    }
  if (stringBegins(s, IO2WString(RATE_HEAD), p))
    {
      p = trim(p);
      if (!checkTypeUnsignedInt(p))
	{
	  std::cout << ERROR_PREFIX << "\'" << p << "\' is not a valid rate value" << std::endl;
	  return;
	}
      const size_t pp = parseAsUnsignedInt(p);
      if (pp > 100)
	{
	  std::cout << ERROR_PREFIX << "argument must be a value from 0 to 100" << std::endl;
	  return;
	}
      vm_rate(con, (unsigned char)pp);
      return;
    }
  if (stringBegins(s, IO2WString(PUNC_HEAD), p))
    {
      p = trim(toLower(p));
      if (p == L"all")
	vm_procmode(con, VOICEMAN_PROCMODE_ALL); else
      if (p == L"some")
	vm_procmode(con, VOICEMAN_PROCMODE_SOME); else
      if (p == L"none")
	vm_procmode(con, VOICEMAN_PROCMODE_NONE); else
	{
	  std::cout << ERROR_PREFIX << "\'" << p << "\' is not a valid punctuation mode. Please use \'all\', \'some\' or \'none\' values" << std::endl;
	  return;
	}
      return;
    }
  if (stringBegins(s, IO2WString(FAMILY_HEAD), p))
    {
      p = trim(p);
      if (p.empty ())
	{
	  std::cout << ERROR_PREFIX << "this command requires an argument" << std::endl;
	  return;
	}
      vm_family(con, VOICEMAN_LANG_NONE, (char*)encodeUTF8(p).c_str());
      return;
    }
  vm_text(con, (char*)encodeUTF8(s).c_str());
}