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 {