1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
/*
Sonic Visualiser
An audio file viewer and annotation editor.
Sonic Annotator
A utility for batch feature extraction from audio files.
Mark Levy, Chris Sutton and Chris Cannam, Queen Mary, University of London.
Copyright 2007-2008 QMUL.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. See the file
COPYING included with this distribution for more information.
*/
#ifndef SV_CSV_FEATURE_WRITER_H
#define SV_CSV_FEATURE_WRITER_H
#include <string>
#include <map>
#include <set>
#include <QString>
#include "FileFeatureWriter.h"
class QTextStream;
class QFile;
namespace sv {
class CSVFeatureWriter : public FileFeatureWriter
{
public:
CSVFeatureWriter();
virtual ~CSVFeatureWriter();
std::string getDescription() const override;
ParameterList getSupportedParameters() const override;
void setParameters(std::map<std::string, std::string> ¶ms) override;
void write(QString trackid,
const Transform &transform,
const Vamp::Plugin::OutputDescriptor &output,
const Vamp::Plugin::FeatureList &features,
std::string summaryType = "") override;
void finish() override;
QString getWriterTag() const override { return "csv"; }
private:
QString m_separator;
bool m_sampleTiming;
bool m_endTimes;
bool m_forceEnd;
bool m_omitFilename;
QString m_prevPrintedTrackId;
typedef std::pair<QString, Transform> DataId; // track id, transform
typedef std::map<DataId, Vamp::Plugin::Feature> PendingFeatures;
typedef std::map<DataId, std::string> PendingSummaryTypes;
PendingFeatures m_pending;
PendingSummaryTypes m_pendingSummaryTypes;
void writeFeature(DataId,
QTextStream &,
const Vamp::Plugin::Feature &f,
const Vamp::Plugin::Feature *optionalNextFeature,
std::string summaryType);
int m_digits;
};
} // end namespace sv
#endif
|