Mercurial > hg > svcore
view plugin/transform/Transform.h @ 330:6e9dcf09b7fe
* Another incremental update (this class not yet used)
author | Chris Cannam |
---|---|
date | Tue, 06 Nov 2007 17:15:00 +0000 |
parents | 21bd032ae791 |
children | d7c41483af8f 94fc0591ea43 |
line wrap: on
line source
/* -*- 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. Centre for Digital Music, Queen Mary, University of London. This file copyright 2006-2007 Chris Cannam and 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 _TRANSFORM_H_ #define _TRANSFORM_H_ #include "base/XmlExportable.h" #include "base/Window.h" #include <vamp-sdk/RealTime.h> #include <QString> typedef QString TransformId; namespace Vamp { class PluginBase; } class Transform : public XmlExportable { public: Transform(); virtual ~Transform(); void setIdentifier(TransformId id) { m_id = id; } TransformId getIdentifier() const { return m_id; } void setPlugin(QString pluginIdentifier); void setOutput(QString output); enum Type { FeatureExtraction, RealTimeEffect }; Type getType() const; QString getPluginIdentifier() const; QString getOutput() const; typedef std::map<QString, float> ParameterMap; ParameterMap getParameters() const { return m_parameters; } void setParameters(const ParameterMap &pm) { m_parameters = pm; } typedef std::map<QString, QString> ConfigurationMap; ConfigurationMap getConfiguration() const { return m_configuration; } void setConfiguration(const ConfigurationMap &cm) { m_configuration = cm; } QString getProgram() const { return m_program; } void setProgram(QString program) { m_program = program; } size_t getStepSize() const { return m_stepSize; } void setStepSize(size_t s) { m_stepSize = s; } size_t getBlockSize() const { return m_blockSize; } void setBlockSize(size_t s) { m_blockSize = s; } WindowType getWindowType() const { return m_windowType; } void setWindowType(WindowType type) { m_windowType = type; } Vamp::RealTime getStartTime() const { return m_startTime; } void setStartTime(Vamp::RealTime t) { m_startTime = t; } Vamp::RealTime getDuration() const { return m_duration; } // 0 -> all void setDuration(Vamp::RealTime d) { m_duration = d; } float getSampleRate() const { return m_sampleRate; } // 0 -> as input void setSampleRate(float rate) { m_sampleRate = rate; } void toXml(QTextStream &stream, QString indent = "", QString extraAttributes = "") const; static Transform fromXmlString(QString xml); protected: TransformId m_id; // pluginid:output, that is type:soname:label:output static QString createIdentifier (QString type, QString soName, QString label, QString output); static void parseIdentifier (QString identifier, QString &type, QString &soName, QString &label, QString &output); ParameterMap m_parameters; ConfigurationMap m_configuration; QString m_program; size_t m_stepSize; size_t m_blockSize; WindowType m_windowType; Vamp::RealTime m_startTime; Vamp::RealTime m_duration; float m_sampleRate; }; #endif