Mercurial > hg > svcore
diff plugin/transform/Transform.cpp @ 328:21bd032ae791
* Introduce new Transform class which contains data necessary to describe the
context for a plugin -- the plugin's name and output, the step/block size
etc (formerly spread across ExecutionContext and TransformFactory). Other
code hasn't been updated to use this yet.
* Rename existing Transform stuff to Transformers (because they run Transforms)
I'm still not 100% sure about this change, don't rely on it.
author | Chris Cannam |
---|---|
date | Mon, 05 Nov 2007 15:31:06 +0000 |
parents | 32e50b620a6c |
children | 13e5870040e6 |
line wrap: on
line diff
--- a/plugin/transform/Transform.cpp Fri Nov 02 16:50:31 2007 +0000 +++ b/plugin/transform/Transform.cpp Mon Nov 05 15:31:06 2007 +0000 @@ -4,7 +4,7 @@ Sonic Visualiser An audio file viewer and annotation editor. Centre for Digital Music, Queen Mary, University of London. - This file copyright 2006 Chris Cannam. + 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 @@ -15,18 +15,61 @@ #include "Transform.h" -Transform::Transform(Model *m) : - m_input(m), - m_output(0), - m_detached(false), - m_abandoned(false) +#include "plugin/PluginIdentifier.h" + +Transform::Transform() : + m_stepSize(0), + m_blockSize(0), + m_windowType(HanningWindow), + m_sampleRate(0) { } Transform::~Transform() { - m_abandoned = true; - wait(); - if (!m_detached) delete m_output; } +QString +Transform::createIdentifier(QString type, QString soName, QString label, + QString output) +{ + QString pluginId = PluginIdentifier::createIdentifier(type, soName, label); + return pluginId + ":" + output; +} + +void +Transform::parseIdentifier(QString identifier, + QString &type, QString &soName, + QString &label, QString &output) +{ + output = identifier.section(':', 3); + PluginIdentifier::parseIdentifier(identifier.section(':', 0, 2), + type, soName, label); +} + +Transform::Type +Transform::getType() const +{ + QString type, soName, label, output; + parseIdentifier(m_id, type, soName, label, output); + if (type == "vamp") return FeatureExtraction; //!!! lousy + else return RealTimeEffect; +} + +QString +Transform::getPluginIdentifier() const +{ + return m_id.section(':', 0, 2); +} + +QString +Transform::getOutput() const +{ + return m_id.section(':', 3); +} + +void +Transform::toXml(QTextStream &stream, QString indent, QString extraAttributes) const +{ + +}