Mercurial > hg > piper-cpp
changeset 101:8c449824e08d
Parameterise process name
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Fri, 14 Oct 2016 16:22:32 +0100 |
parents | bbb99f94e225 |
children | cd438188e3f9 387d38c96c16 |
files | vamp-client/AutoPlugin.h vamp-client/CapnpRRClient.h vamp-client/ProcessQtTransport.h vamp-client/client.cpp |
diffstat | 4 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/vamp-client/AutoPlugin.h Fri Oct 14 12:46:38 2016 +0100 +++ b/vamp-client/AutoPlugin.h Fri Oct 14 16:22:32 2016 +0100 @@ -13,11 +13,12 @@ class AutoPlugin : public Vamp::Plugin { public: - AutoPlugin(std::string pluginKey, + AutoPlugin(std::string serverName, + std::string pluginKey, float inputSampleRate, int adapterFlags) : Vamp::Plugin(inputSampleRate), - m_transport("../bin/piper-vamp-server"), //!!!*£*$&"$*" + m_transport(serverName), m_client(&m_transport) { LoadRequest req;
--- a/vamp-client/CapnpRRClient.h Fri Oct 14 12:46:38 2016 +0100 +++ b/vamp-client/CapnpRRClient.h Fri Oct 14 16:22:32 2016 +0100 @@ -285,9 +285,15 @@ ReqId id) { if (r.getResponse().which() != type) { + std::cerr << "checkResponseType: wrong response type (received " + << r.getResponse().which() << ", expected " << type << ")" + << std::endl; throw std::runtime_error("Wrong response type"); } if (ReqId(r.getId().getNumber()) != id) { + std::cerr << "checkResponseType: wrong response id (received " + << r.getId().getNumber() << ", expected " << id << ")" + << std::endl; throw std::runtime_error("Wrong response id"); } }
--- a/vamp-client/ProcessQtTransport.h Fri Oct 14 12:46:38 2016 +0100 +++ b/vamp-client/ProcessQtTransport.h Fri Oct 14 16:22:32 2016 +0100 @@ -24,12 +24,12 @@ class ProcessQtTransport : public SynchronousTransport { public: - ProcessQtTransport(QString processName) : + ProcessQtTransport(std::string processName) : m_completenessChecker(0) { m_process = new QProcess(); m_process->setReadChannel(QProcess::StandardOutput); m_process->setProcessChannelMode(QProcess::ForwardedErrorChannel); - m_process->start(processName); + m_process->start(QString::fromStdString(processName)); if (!m_process->waitForStarted()) { std::cerr << "server failed to start" << std::endl; delete m_process; @@ -77,10 +77,11 @@ while (!complete) { - m_process->waitForReadyRead(1000); qint64 byteCount = m_process->bytesAvailable(); - if (!byteCount) { + if (!byteCount) { + std::cerr << "waiting for data from server..." << endl; + m_process->waitForReadyRead(1000); if (m_process->state() == QProcess::NotRunning) { std::cerr << "ERROR: Subprocess exited: Load failed" << std::endl; throw std::runtime_error("Piper server exited unexpectedly");
--- a/vamp-client/client.cpp Fri Oct 14 12:46:38 2016 +0100 +++ b/vamp-client/client.cpp Fri Oct 14 16:22:32 2016 +0100 @@ -62,7 +62,8 @@ // Let's try a crazy AutoPlugin - piper_vamp::client::AutoPlugin ap("vamp-example-plugins:zerocrossing", 16, 0); + piper_vamp::client::AutoPlugin ap("../bin/piper-vamp-server", + "vamp-example-plugins:zerocrossing", 16, 0); if (!ap.isOK()) { cerr << "AutoPlugin creation failed" << endl; } else {