Mercurial > hg > piper-cpp
changeset 83:154e94ea84d4
Toward QProcess pipe comms take on it
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Tue, 11 Oct 2016 17:08:31 +0100 |
parents | fa2c0358c2b6 |
children | db9a6ab618bc |
files | .hgignore vamp-client/Makefile vamp-client/client.cpp vamp-client/client.pro |
diffstat | 4 files changed, 662 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Tue Oct 11 16:52:48 2016 +0100 +++ b/.hgignore Tue Oct 11 17:08:31 2016 +0100 @@ -4,3 +4,4 @@ *.capnp.c++ *.capnp.h *~ +.qmake.stash
--- a/vamp-client/Makefile Tue Oct 11 16:52:48 2016 +0100 +++ b/vamp-client/Makefile Tue Oct 11 17:08:31 2016 +0100 @@ -1,7 +1,593 @@ +############################################################################# +# Makefile for building: client +# Generated by qmake (3.0) (Qt 5.7.0) +# Project: client.pro +# Template: app +# Command: /usr/bin/qmake -o Makefile client.pro +############################################################################# -VAMPSDK_DIR := ../../vamp-plugin-sdk -PIPER_DIR := ../../piper +MAKEFILE = Makefile -CXXFLAGS = -I$(VAMPSDK_DIR) -I.. +####### Compiler, tools and options -client: client.cpp +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_CORE_LIB +CFLAGS = -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -I../../vamp-plugin-sdk -I.. -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtCore -I../o -I/usr/lib/qt/mkspecs/linux-g++ +QMAKE = /usr/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = client1.0.0 +DISTDIR = /home/cannam/code/piper-cpp/o/client1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 -Wl,-O1,--sort-common,--as-needed,-z,relro +LIBS = $(SUBLIBS) -lQt5Core -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ../o/ + +####### Files + +SOURCES = client.cpp +OBJECTS = ../o/client.o +DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \ + /usr/lib/qt/mkspecs/common/unix.conf \ + /usr/lib/qt/mkspecs/common/linux.conf \ + /usr/lib/qt/mkspecs/common/sanitize.conf \ + /usr/lib/qt/mkspecs/common/gcc-base.conf \ + /usr/lib/qt/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/qt/mkspecs/common/g++-base.conf \ + /usr/lib/qt/mkspecs/common/g++-unix.conf \ + /usr/lib/qt/mkspecs/qconfig.pri \ + /usr/lib/qt/mkspecs/modules/qt_Attica.pri \ + /usr/lib/qt/mkspecs/modules/qt_KActivities.pri \ + /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \ + /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \ + /usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCMUtils.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCodecs.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCompletion.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCrash.pri \ + /usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KDeclarative.pri \ + /usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri \ + /usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KI18n.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KItemViews.pri \ + /usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KNotifications.pri \ + /usr/lib/qt/mkspecs/modules/qt_KNTLM.pri \ + /usr/lib/qt/mkspecs/modules/qt_KService.pri \ + /usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWallet.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \ + /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_declarative.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_declarative_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designer.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_device_lib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_help.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_platformsupport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_script.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_svg.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri \ + /usr/lib/qt/mkspecs/modules/qt_Prison.pri \ + /usr/lib/qt/mkspecs/modules/qt_QGpgme.pri \ + /usr/lib/qt/mkspecs/modules/qt_QuickAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_Solid.pri \ + /usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri \ + /usr/lib/qt/mkspecs/features/qt_functions.prf \ + /usr/lib/qt/mkspecs/features/qt_config.prf \ + /usr/lib/qt/mkspecs/linux-g++/qmake.conf \ + /usr/lib/qt/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/qt/mkspecs/features/exclusive_builds.prf \ + /usr/lib/qt/mkspecs/features/default_pre.prf \ + /usr/lib/qt/mkspecs/features/resolve_config.prf \ + /usr/lib/qt/mkspecs/features/default_post.prf \ + /usr/lib/qt/mkspecs/features/warn_on.prf \ + /usr/lib/qt/mkspecs/features/exceptions.prf \ + /usr/lib/qt/mkspecs/features/qt.prf \ + /usr/lib/qt/mkspecs/features/resources.prf \ + /usr/lib/qt/mkspecs/features/moc.prf \ + /usr/lib/qt/mkspecs/features/unix/thread.prf \ + /usr/lib/qt/mkspecs/features/file_copies.prf \ + /usr/lib/qt/mkspecs/features/testcase_targets.prf \ + /usr/lib/qt/mkspecs/features/yacc.prf \ + /usr/lib/qt/mkspecs/features/lex.prf \ + client.pro client.cpp +QMAKE_TARGET = client +DESTDIR = +TARGET = client + + +first: all +####### Build rules + +$(TARGET): $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: client.pro /usr/lib/qt/mkspecs/linux-g++/qmake.conf /usr/lib/qt/mkspecs/features/spec_pre.prf \ + /usr/lib/qt/mkspecs/common/unix.conf \ + /usr/lib/qt/mkspecs/common/linux.conf \ + /usr/lib/qt/mkspecs/common/sanitize.conf \ + /usr/lib/qt/mkspecs/common/gcc-base.conf \ + /usr/lib/qt/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/qt/mkspecs/common/g++-base.conf \ + /usr/lib/qt/mkspecs/common/g++-unix.conf \ + /usr/lib/qt/mkspecs/qconfig.pri \ + /usr/lib/qt/mkspecs/modules/qt_Attica.pri \ + /usr/lib/qt/mkspecs/modules/qt_KActivities.pri \ + /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \ + /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \ + /usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCMUtils.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCodecs.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCompletion.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KCrash.pri \ + /usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KDeclarative.pri \ + /usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri \ + /usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KI18n.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KItemViews.pri \ + /usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KNotifications.pri \ + /usr/lib/qt/mkspecs/modules/qt_KNTLM.pri \ + /usr/lib/qt/mkspecs/modules/qt_KService.pri \ + /usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWallet.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \ + /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_declarative.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_declarative_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designer.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_device_lib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_help.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_platformsupport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_script.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_svg.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri \ + /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri \ + /usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri \ + /usr/lib/qt/mkspecs/modules/qt_Prison.pri \ + /usr/lib/qt/mkspecs/modules/qt_QGpgme.pri \ + /usr/lib/qt/mkspecs/modules/qt_QuickAddons.pri \ + /usr/lib/qt/mkspecs/modules/qt_Solid.pri \ + /usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri \ + /usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri \ + /usr/lib/qt/mkspecs/features/qt_functions.prf \ + /usr/lib/qt/mkspecs/features/qt_config.prf \ + /usr/lib/qt/mkspecs/linux-g++/qmake.conf \ + /usr/lib/qt/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/qt/mkspecs/features/exclusive_builds.prf \ + /usr/lib/qt/mkspecs/features/default_pre.prf \ + /usr/lib/qt/mkspecs/features/resolve_config.prf \ + /usr/lib/qt/mkspecs/features/default_post.prf \ + /usr/lib/qt/mkspecs/features/warn_on.prf \ + /usr/lib/qt/mkspecs/features/exceptions.prf \ + /usr/lib/qt/mkspecs/features/qt.prf \ + /usr/lib/qt/mkspecs/features/resources.prf \ + /usr/lib/qt/mkspecs/features/moc.prf \ + /usr/lib/qt/mkspecs/features/unix/thread.prf \ + /usr/lib/qt/mkspecs/features/file_copies.prf \ + /usr/lib/qt/mkspecs/features/testcase_targets.prf \ + /usr/lib/qt/mkspecs/features/yacc.prf \ + /usr/lib/qt/mkspecs/features/lex.prf \ + client.pro \ + /usr/lib/libQt5Core.prl + $(QMAKE) -o Makefile client.pro +/usr/lib/qt/mkspecs/features/spec_pre.prf: +/usr/lib/qt/mkspecs/common/unix.conf: +/usr/lib/qt/mkspecs/common/linux.conf: +/usr/lib/qt/mkspecs/common/sanitize.conf: +/usr/lib/qt/mkspecs/common/gcc-base.conf: +/usr/lib/qt/mkspecs/common/gcc-base-unix.conf: +/usr/lib/qt/mkspecs/common/g++-base.conf: +/usr/lib/qt/mkspecs/common/g++-unix.conf: +/usr/lib/qt/mkspecs/qconfig.pri: +/usr/lib/qt/mkspecs/modules/qt_Attica.pri: +/usr/lib/qt/mkspecs/modules/qt_KActivities.pri: +/usr/lib/qt/mkspecs/modules/qt_KArchive.pri: +/usr/lib/qt/mkspecs/modules/qt_KAuth.pri: +/usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri: +/usr/lib/qt/mkspecs/modules/qt_KCMUtils.pri: +/usr/lib/qt/mkspecs/modules/qt_KCodecs.pri: +/usr/lib/qt/mkspecs/modules/qt_KCompletion.pri: +/usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri: +/usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri: +/usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri: +/usr/lib/qt/mkspecs/modules/qt_KCrash.pri: +/usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri: +/usr/lib/qt/mkspecs/modules/qt_KDeclarative.pri: +/usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri: +/usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri: +/usr/lib/qt/mkspecs/modules/qt_KI18n.pri: +/usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri: +/usr/lib/qt/mkspecs/modules/qt_KIOCore.pri: +/usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_KIOGui.pri: +/usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_KItemViews.pri: +/usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_KNotifications.pri: +/usr/lib/qt/mkspecs/modules/qt_KNTLM.pri: +/usr/lib/qt/mkspecs/modules/qt_KService.pri: +/usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_KWallet.pri: +/usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri: +/usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri: +/usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_core.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_declarative.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_declarative_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_designer.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_eglfs_device_lib_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_help.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_location.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_network.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_platformsupport_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qml.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_quick.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_script.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_svg.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri: +/usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri: +/usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri: +/usr/lib/qt/mkspecs/modules/qt_Prison.pri: +/usr/lib/qt/mkspecs/modules/qt_QGpgme.pri: +/usr/lib/qt/mkspecs/modules/qt_QuickAddons.pri: +/usr/lib/qt/mkspecs/modules/qt_Solid.pri: +/usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri: +/usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri: +/usr/lib/qt/mkspecs/features/qt_functions.prf: +/usr/lib/qt/mkspecs/features/qt_config.prf: +/usr/lib/qt/mkspecs/linux-g++/qmake.conf: +/usr/lib/qt/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/qt/mkspecs/features/exclusive_builds.prf: +/usr/lib/qt/mkspecs/features/default_pre.prf: +/usr/lib/qt/mkspecs/features/resolve_config.prf: +/usr/lib/qt/mkspecs/features/default_post.prf: +/usr/lib/qt/mkspecs/features/warn_on.prf: +/usr/lib/qt/mkspecs/features/exceptions.prf: +/usr/lib/qt/mkspecs/features/qt.prf: +/usr/lib/qt/mkspecs/features/resources.prf: +/usr/lib/qt/mkspecs/features/moc.prf: +/usr/lib/qt/mkspecs/features/unix/thread.prf: +/usr/lib/qt/mkspecs/features/file_copies.prf: +/usr/lib/qt/mkspecs/features/testcase_targets.prf: +/usr/lib/qt/mkspecs/features/yacc.prf: +/usr/lib/qt/mkspecs/features/lex.prf: +client.pro: +/usr/lib/libQt5Core.prl: +qmake: FORCE + @$(QMAKE) -o Makefile client.pro + +qmake_all: FORCE + + +all: Makefile $(TARGET) + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents client.cpp $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_header_make_all: +compiler_moc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: + +####### Compile + +../o/client.o: client.cpp stub.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../o/client.o client.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: +
--- a/vamp-client/client.cpp Tue Oct 11 16:52:48 2016 +0100 +++ b/vamp-client/client.cpp Tue Oct 11 17:08:31 2016 +0100 @@ -5,6 +5,13 @@ #include "vamp-support/AssignedPluginHandleMapper.h" +#include <QProcess> + +#include <stdexcept> + +using std::cerr; +using std::endl; + // First cut plan: this is to be client-qt.cpp, using a QProcess, so // we're using pipes and the server is completely synchronous, // handling only one call at once. Our PiperClient will fire off a @@ -19,7 +26,7 @@ // servicing more than one request at a time). // Next level: Capnp RPC, but I want to get the first level to work -// first. +// first, not least because the server already exists. namespace piper { //!!! probably something different @@ -29,12 +36,37 @@ typedef uint32_t ReqId; public: + PiperClient() { + m_process = new QProcess(); + m_process->setReadChannel(QProcess::StandardOutput); + m_process->setProcessChannelMode(QProcess::ForwardedErrorChannel); + m_process->start("../bin/piper-vamp-server"); //!!! + if (!m_process->waitForStarted()) { + cerr << "server failed to start" << endl; + delete m_process; + m_process = 0; + } + } - PiperClient() { } + ~PiperClient() { + if (m_process) { + if (m_process->state() != QProcess::NotRunning) { + m_process->close(); + m_process->waitForFinished(); + } + delete m_process; + } + } + //!!! obviously, factor out all repetitive guff + Vamp::Plugin * load(std::string key, float inputSampleRate, int adapterFlags) { + if (!m_process) { + throw std::runtime_error("Piper server failed to start"); + } + Vamp::HostExt::LoadRequest request; request.pluginKey = key; request.inputSampleRate = inputSampleRate; @@ -46,6 +78,11 @@ VampnProto::buildRpcRequest_Load(builder, request); ReqId id = getId(); builder.getId().setNumber(id); + + auto arr = messageToFlatArray(message); + m_process->write(arr.asChars().begin(), arr.asChars().size()); + + ///.... read... }; virtual @@ -53,6 +90,10 @@ configure(PiperStubPlugin *plugin, Vamp::HostExt::PluginConfiguration config) { + if (!m_process) { + throw std::runtime_error("Piper server failed to start"); + } + Vamp::HostExt::ConfigurationRequest request; request.plugin = plugin; request.configuration = config; @@ -78,6 +119,7 @@ finish(PiperStubPlugin *plugin) = 0; private: + QProcess *m_process; AssignedPluginHandleMapper m_mapper; int getId() { //!!! todo: mutex
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vamp-client/client.pro Tue Oct 11 17:08:31 2016 +0100 @@ -0,0 +1,27 @@ + +TEMPLATE = app + +CONFIG += qt stl c++11 exceptions console warn_on +QT -= xml network gui widgets + +!win32 { + QMAKE_CXXFLAGS += -Werror +} + +OBJECTS_DIR = ../o +MOC_DIR = ../o + +VAMPSDK_DIR = ../../vamp-plugin-sdk +PIPER_DIR = ../../piper + +QMAKE_CXXFLAGS = -I$$VAMPSDK_DIR -I.. + +# Using the "console" CONFIG flag above should ensure this happens for +# normal Windows builds, but this may be necessary when cross-compiling +win32-x-g++:QMAKE_LFLAGS += -Wl,-subsystem,console + +TARGET = client + +SOURCES += \ + client.cpp +