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