annotate 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
rev   line source
Chris@320 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@320 2
Chris@320 3 /*
Chris@320 4 Sonic Visualiser
Chris@320 5 An audio file viewer and annotation editor.
Chris@320 6 Centre for Digital Music, Queen Mary, University of London.
Chris@328 7 This file copyright 2006-2007 Chris Cannam and QMUL.
Chris@320 8
Chris@320 9 This program is free software; you can redistribute it and/or
Chris@320 10 modify it under the terms of the GNU General Public License as
Chris@320 11 published by the Free Software Foundation; either version 2 of the
Chris@320 12 License, or (at your option) any later version. See the file
Chris@320 13 COPYING included with this distribution for more information.
Chris@320 14 */
Chris@320 15
Chris@320 16 #include "Transform.h"
Chris@320 17
Chris@328 18 #include "plugin/PluginIdentifier.h"
Chris@328 19
Chris@328 20 Transform::Transform() :
Chris@328 21 m_stepSize(0),
Chris@328 22 m_blockSize(0),
Chris@328 23 m_windowType(HanningWindow),
Chris@328 24 m_sampleRate(0)
Chris@320 25 {
Chris@320 26 }
Chris@320 27
Chris@320 28 Transform::~Transform()
Chris@320 29 {
Chris@320 30 }
Chris@320 31
Chris@328 32 QString
Chris@328 33 Transform::createIdentifier(QString type, QString soName, QString label,
Chris@328 34 QString output)
Chris@328 35 {
Chris@328 36 QString pluginId = PluginIdentifier::createIdentifier(type, soName, label);
Chris@328 37 return pluginId + ":" + output;
Chris@328 38 }
Chris@328 39
Chris@328 40 void
Chris@328 41 Transform::parseIdentifier(QString identifier,
Chris@328 42 QString &type, QString &soName,
Chris@328 43 QString &label, QString &output)
Chris@328 44 {
Chris@328 45 output = identifier.section(':', 3);
Chris@328 46 PluginIdentifier::parseIdentifier(identifier.section(':', 0, 2),
Chris@328 47 type, soName, label);
Chris@328 48 }
Chris@328 49
Chris@328 50 Transform::Type
Chris@328 51 Transform::getType() const
Chris@328 52 {
Chris@328 53 QString type, soName, label, output;
Chris@328 54 parseIdentifier(m_id, type, soName, label, output);
Chris@328 55 if (type == "vamp") return FeatureExtraction; //!!! lousy
Chris@328 56 else return RealTimeEffect;
Chris@328 57 }
Chris@328 58
Chris@328 59 QString
Chris@328 60 Transform::getPluginIdentifier() const
Chris@328 61 {
Chris@328 62 return m_id.section(':', 0, 2);
Chris@328 63 }
Chris@328 64
Chris@328 65 QString
Chris@328 66 Transform::getOutput() const
Chris@328 67 {
Chris@328 68 return m_id.section(':', 3);
Chris@328 69 }
Chris@328 70
Chris@328 71 void
Chris@328 72 Transform::toXml(QTextStream &stream, QString indent, QString extraAttributes) const
Chris@328 73 {
Chris@328 74
Chris@328 75 }