svcore
1.9
|
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ 00002 00003 /* 00004 Sonic Visualiser 00005 An audio file viewer and annotation editor. 00006 Centre for Digital Music, Queen Mary, University of London. 00007 This file copyright 2006-2007 Chris Cannam and QMUL. 00008 00009 This program is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU General Public License as 00011 published by the Free Software Foundation; either version 2 of the 00012 License, or (at your option) any later version. See the file 00013 COPYING included with this distribution for more information. 00014 */ 00015 00016 #ifndef _TRANSFORM_DESCRIPTION_H_ 00017 #define _TRANSFORM_DESCRIPTION_H_ 00018 00019 #include "Transform.h" 00020 00021 #include <QString> 00022 00023 #include <vector> 00024 00046 struct TransformDescription 00047 { 00048 enum Type { 00049 Analysis, // e.g. vamp plugin output 00050 Effects, // e.g. ladspa plugin with audio in and out 00051 EffectsData, // e.g. control output of ladspa plugin 00052 Generator, // e.g. audio out of ladspa plugin with no audio in 00053 UnknownType 00054 }; 00055 00056 TransformDescription() : 00057 type(UnknownType), configurable(false) { } 00058 TransformDescription(Type _type, QString _category, 00059 TransformId _identifier, QString _name, 00060 QString _friendlyName, QString _description, 00061 QString _longDescription, 00062 QString _maker, QString _units, bool _configurable) : 00063 type(_type), category(_category), 00064 identifier(_identifier), name(_name), 00065 friendlyName(_friendlyName), description(_description), 00066 longDescription(_longDescription), 00067 maker(_maker), units(_units), configurable(_configurable) { } 00068 00069 Type type; 00070 QString category; // e.g. time > onsets 00071 TransformId identifier; // e.g. vamp:vamp-aubio:aubioonset 00072 QString name; // plugin's name if 1 output, else "name: output" 00073 QString friendlyName; // short text for layer name 00074 QString description; // sentence describing transform 00075 QString longDescription; // description "using" plugin name "by" maker 00076 QString maker; 00077 QString infoUrl; 00078 QString units; 00079 bool configurable; 00080 00081 bool operator<(const TransformDescription &od) const { 00082 return 00083 (name < od.name) || 00084 (name == od.name && identifier < od.identifier); 00085 }; 00086 }; 00087 00088 typedef std::vector<TransformDescription> TransformList; 00089 00090 #endif