static int spk_construct (volatile SpeechSynthesizer *spk, char **parameters) { swift_result_t result; spk->setVolume = spk_setVolume; spk->setRate = spk_setRate; if (setEnvironmentVariable("SWIFT_HOME", SWIFT_ROOT)) { swift_params *engineParameters; if ((engineParameters = swift_params_new(NULL))) { if ((swiftEngine = swift_engine_open(engineParameters))) { if ((swiftPort = swift_port_open(swiftEngine, NULL))) { { const char *name = parameters[PARM_NAME]; if (name && *name) { swift_voice *voice; if (*name == '/') { logMessage(LOG_DEBUG, "setting swift voice directory: %s", name); voice = swift_port_set_voice_from_dir(swiftPort, name); } else { logMessage(LOG_DEBUG, "setting swift voice name: %s", name); voice = swift_port_set_voice_by_name(swiftPort, name); } if (!voice) { logMessage(LOG_WARNING, "Swift voice set error: %s", name); } } } setStringParameter("tts/content-type", "text/plain"); logMessage(LOG_INFO, "Swift Engine: %s for %s, version %s, %s", swift_engine_name, swift_platform, swift_version, swift_date); return 1; } else { logMessage(LOG_ERR, "Swift port open error."); } if ((result = swift_engine_close(swiftEngine)) != SWIFT_SUCCESS) { speechError(result, "engine close"); } swiftEngine = NULL; } else { logMessage(LOG_ERR, "Swift engine open error."); } } else { logMessage(LOG_ERR, "Swift engine parameters allocation error."); } } return 0; }
int EnvVarHelper::appendToEnvironmentVariable(QString var, QString value) { qDebug() << "Appending" << value << "to" << var; int ret; #ifdef LINUX_DESKTOP char *oldValue = getenv(var.toLocal8Bit().constData()); qDebug() << "Got" << var << ":" << oldValue; ret = setEnvironmentVariable(var, QString::fromLocal8Bit(oldValue) + ":" + value); #endif return ret; }