Mercurial > hg > piper-cpp
changeset 15:d907576aa299
More requests/responses
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Wed, 18 May 2016 13:54:33 +0100 |
parents | c35d0909a74e |
children | 913fc1d3710a |
files | capnproto/VampnProto.h capnproto/vamp.capnp |
diffstat | 2 files changed, 65 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/capnproto/VampnProto.h Wed May 18 12:21:23 2016 +0100 +++ b/capnproto/VampnProto.h Wed May 18 13:54:33 2016 +0100 @@ -601,35 +601,82 @@ } static void - buildVampListRequest(VampRequest::Builder &b) { + buildProcessResponse(ProcessResponse::Builder &b, + const Vamp::HostExt::ProcessResponse &pr) { + + auto f = b.initFeatures(); + buildFeatureSet(f, pr.features); + } + + static void + readProcessResponse(Vamp::HostExt::ProcessResponse &pr, + const ProcessResponse::Reader &r) { + + readFeatureSet(pr.features, r.getFeatures()); + } + + static void + buildVampRequest_List(VampRequest::Builder &b) { b.getRequest().setList(); } static void - buildVampLoadRequest(VampRequest::Builder &b, - const Vamp::HostExt::LoadRequest &req) { + buildVampResponse_List(VampResponse::Builder &b, + const std::vector<Vamp::HostExt::PluginStaticData> &d, + std::string errorText = "") { + b.setSuccess(errorText == ""); + b.setErrorText(errorText); + auto r = b.getResponse().initList(d.size()); + for (size_t i = 0; i < d.size(); ++i) { + auto rd = r[i]; + buildPluginStaticData(rd, d[i]); + } + } + + static void + buildVampRequest_Load(VampRequest::Builder &b, + const Vamp::HostExt::LoadRequest &req) { auto u = b.getRequest().initLoad(); buildLoadRequest(u, req); } static void - buildVampConfigureRequest(VampRequest::Builder &b, - const Vamp::HostExt::ConfigurationRequest &cr, - PluginHandleMapper &mapper) { + buildVampResponse_Load(VampResponse::Builder &b, + const Vamp::HostExt::LoadResponse &resp, + PluginHandleMapper &mapper) { + auto u = b.getResponse().initLoad(); + buildLoadResponse(u, resp, mapper); + } + + static void + buildVampRequest_Configure(VampRequest::Builder &b, + const Vamp::HostExt::ConfigurationRequest &cr, + PluginHandleMapper &mapper) { auto u = b.getRequest().initConfigure(); buildConfigurationRequest(u, cr, mapper); } static void - buildVampProcessRequest(VampRequest::Builder &b, - const Vamp::HostExt::ProcessRequest &pr, - PluginHandleMapper &mapper) { + buildVampResponse_Configure(VampResponse::Builder &b, + const Vamp::HostExt::ConfigurationResponse &cr) { + auto u = b.getResponse().initConfigure(); + buildConfigurationResponse(u, cr); + } + + static void + buildVampRequest_Process(VampRequest::Builder &b, + const Vamp::HostExt::ProcessRequest &pr, + PluginHandleMapper &mapper) { auto u = b.getRequest().initProcess(); buildProcessRequest(u, pr, mapper); } - - - //...!!! and responses + + static void + buildVampResponse_Process(VampResponse::Builder &b, + const Vamp::HostExt::ProcessResponse &pr) { + auto u = b.getResponse().initProcess(); + buildProcessResponse(u, pr); + } }; }
--- a/capnproto/vamp.capnp Wed May 18 12:21:23 2016 +0100 +++ b/capnproto/vamp.capnp Wed May 18 13:54:33 2016 +0100 @@ -140,6 +140,10 @@ input @1 :ProcessInput; } +struct ProcessResponse { + features @0 :FeatureSet; +} + struct VampRequest { request :union { list @0 :Void; @@ -157,8 +161,8 @@ list @2 :List(PluginStaticData); load @3 :LoadResponse; configure @4 :ConfigurationResponse; - process @5 :FeatureSet; - finish @6 :FeatureSet; + process @5 :ProcessResponse; + finish @6 :ProcessResponse; } }