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)); } } }
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()); }