Chris@154: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@154: Chris@154: /* Chris@154: Sonic Visualiser Chris@154: An audio file viewer and annotation editor. Chris@154: Chris@154: Sonic Annotator Chris@154: A utility for batch feature extraction from audio files. Chris@154: Chris@154: Mark Levy, Chris Sutton and Chris Cannam, Queen Mary, University of London. Chris@154: Copyright 2007-2008 QMUL. Chris@154: Chris@154: This program is free software; you can redistribute it and/or Chris@154: modify it under the terms of the GNU General Public License as Chris@154: published by the Free Software Foundation; either version 2 of the Chris@154: License, or (at your option) any later version. See the file Chris@154: COPYING included with this distribution for more information. Chris@154: */ Chris@154: Chris@206: #ifndef LAB_FEATURE_WRITER_H Chris@206: #define LAB_FEATURE_WRITER_H Chris@154: Chris@154: #include Chris@154: #include Chris@154: #include Chris@154: Chris@154: #include Chris@154: Chris@154: #include "transform/FileFeatureWriter.h" Chris@154: Chris@154: using std::string; Chris@154: using std::map; Chris@154: Chris@154: class QTextStream; Chris@154: class QFile; Chris@154: Chris@154: class LabFeatureWriter : public FileFeatureWriter Chris@154: { Chris@154: public: Chris@154: LabFeatureWriter(); Chris@154: virtual ~LabFeatureWriter(); Chris@154: Chris@154: virtual string getDescription() const; Chris@154: Chris@154: virtual ParameterList getSupportedParameters() const; Chris@154: virtual void setParameters(map ¶ms); Chris@154: Chris@154: virtual void write(QString trackid, Chris@154: const Transform &transform, Chris@154: const Vamp::Plugin::OutputDescriptor &output, Chris@154: const Vamp::Plugin::FeatureList &features, Chris@154: std::string summaryType = ""); Chris@154: Chris@157: virtual void finish(); Chris@157: Chris@154: virtual QString getWriterTag() const { return "lab"; } Chris@154: Chris@154: private: Chris@154: bool m_forceEnd; Chris@176: Chris@176: typedef pair DataId; // track id, transform Chris@176: typedef map PendingFeatures; Chris@157: PendingFeatures m_pending; Chris@157: Chris@157: void writeFeature(QTextStream &, Chris@157: const Vamp::Plugin::Feature &f, Chris@157: const Vamp::Plugin::Feature *optionalNextFeature); Chris@206: Chris@206: int m_digits; Chris@154: }; Chris@154: Chris@154: #endif