annotate vamp-client/PluginClient.h @ 218:ea8994465322

Rebuild these for capnp v0.6. But it would probably be better at this point not to commit them, as the main reason they are in the repo is because the compiler wasn't available for Visual Studio builds, and that's no longer the case.
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 09 May 2017 11:46:23 +0100
parents df65480a08de
children 16842bf06026
rev   line source
c@118 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@118 2 /*
c@118 3 Piper C++
c@118 4
c@118 5 An API for audio analysis and feature extraction plugins.
c@118 6
c@118 7 Centre for Digital Music, Queen Mary, University of London.
c@118 8 Copyright 2006-2016 Chris Cannam and QMUL.
c@118 9
c@118 10 Permission is hereby granted, free of charge, to any person
c@118 11 obtaining a copy of this software and associated documentation
c@118 12 files (the "Software"), to deal in the Software without
c@118 13 restriction, including without limitation the rights to use, copy,
c@118 14 modify, merge, publish, distribute, sublicense, and/or sell copies
c@118 15 of the Software, and to permit persons to whom the Software is
c@118 16 furnished to do so, subject to the following conditions:
c@118 17
c@118 18 The above copyright notice and this permission notice shall be
c@118 19 included in all copies or substantial portions of the Software.
c@118 20
c@118 21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
c@118 22 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
c@118 23 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c@118 24 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
c@118 25 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
c@118 26 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
c@118 27 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
c@118 28
c@118 29 Except as contained in this notice, the names of the Centre for
c@118 30 Digital Music; Queen Mary, University of London; and Chris Cannam
c@118 31 shall not be used in advertising or otherwise to promote the sale,
c@118 32 use or other dealings in this Software without prior written
c@118 33 authorization.
c@118 34 */
c@94 35
c@94 36 #ifndef PIPER_PLUGIN_CLIENT_H
c@94 37 #define PIPER_PLUGIN_CLIENT_H
c@94 38
c@97 39 #include "vamp-support/PluginConfiguration.h"
c@94 40
c@97 41 namespace piper_vamp {
c@97 42 namespace client {
c@94 43
cannam@208 44 class PiperVampPlugin;
c@94 45
cannam@187 46 /**
cannam@187 47 * Interface for a client that accepts Vamp-like structures (Plugin
cannam@187 48 * and the classes in vamp-support) and communicates with a Piper
cannam@187 49 * server, using some serialisation and transport defined by the
cannam@187 50 * specific implementation.
cannam@187 51 */
c@94 52 class PluginClient
c@94 53 {
c@94 54 public:
c@94 55 virtual
cannam@185 56 ConfigurationResponse
cannam@208 57 configure(PiperVampPlugin *plugin,
c@97 58 PluginConfiguration config) = 0;
c@94 59
c@94 60 virtual
c@94 61 Vamp::Plugin::FeatureSet
cannam@208 62 process(PiperVampPlugin *plugin,
c@94 63 std::vector<std::vector<float> > inputBuffers,
c@94 64 Vamp::RealTime timestamp) = 0;
c@94 65
c@94 66 virtual
c@94 67 Vamp::Plugin::FeatureSet
cannam@208 68 finish(PiperVampPlugin *plugin) = 0;
c@94 69
c@94 70 virtual
c@94 71 void
cannam@210 72 reset(PiperVampPlugin *plugin,
cannam@187 73 PluginConfiguration config) = 0;
c@94 74 };
c@94 75
c@94 76 }
c@94 77 }
c@94 78
c@94 79 #endif