Mercurial > hg > m4-sa
diff runner/BinaryFeatureWriter.h @ 60:da84d2efd7a3
Added NumPy compatible binary feature writer for track-level outputs
author | gyorgyf |
---|---|
date | Sun, 12 Feb 2012 19:55:06 +0000 |
parents | |
children | 0ef80ae6493c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runner/BinaryFeatureWriter.h Sun Feb 12 19:55:06 2012 +0000 @@ -0,0 +1,74 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + 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 _BINARY_FEATURE_WRITER_H_ +#define _BINARY_FEATURE_WRITER_H_ + +#include <string> +#include <map> +#include <fstream> + +using std::string; +using std::map; + +#include "transform/FeatureWriter.h" + +class BinaryFeatureWriter : public FeatureWriter +{ +public: + BinaryFeatureWriter(); + virtual ~BinaryFeatureWriter(); + + virtual ParameterList getSupportedParameters() const; + virtual void setParameters(map<string, string> ¶ms); + + virtual void setOutputFile(const string &); + + virtual void write(QString trackid, + const Transform &transform, + const Vamp::Plugin::OutputDescriptor &output, + const Vamp::Plugin::FeatureList &features, + std::string summaryType = ""); + + virtual void finish(); + + virtual QString getWriterTag() const { return "binary"; } + +private: + // Parameters + string outputFile; + + // Parameter names (class vars) + static string outputFileParam; + + struct OutputStream; + /* + struct BinaryFeatureWriter::TrackStream + { + QString trackid; + ofstream* ofs; + }; + */ + typedef std::map<QString, float> ParameterMap; + + OutputStream *binary; + + bool openBinaryFile(); + long feature_count; + long data_size_pos; + long output_binCount; +}; + +#endif