Mercurial > hg > svcore
diff transform/TransformFactory.cpp @ 16:cc98d496d52b
* Add command history class, and basic undo/redo menus. No actual commands
to undo/redo yet. Selecting the placeholders sometimes seems to cause
a crash, so this looks a little uncertain so far.
* Add Rename Layer
* Remove models from playback when their layers are removed (and ref counts
hit zero)
* Don't hang around waiting so much when there's work to be done in the audio
buffer fill thread
* Put more sensible names on layers generated from transforms
* Add basic editing to time-value layer like existing editing in time-instants
layer, and make both of them snap to the appropriate resolution during drag
author | Chris Cannam |
---|---|
date | Mon, 30 Jan 2006 17:51:56 +0000 |
parents | d86891498eef |
children | 4563a72c1d8b |
line wrap: on
line diff
--- a/transform/TransformFactory.cpp Mon Jan 30 13:19:42 2006 +0000 +++ b/transform/TransformFactory.cpp Mon Jan 30 17:51:56 2006 +0000 @@ -33,10 +33,20 @@ TransformFactory::TransformList TransformFactory::getAllTransforms() { + if (m_transforms.empty()) populateTransforms(); + TransformList list; -//!!! list.push_back(BeatDetectTransform::getName()); -// list.push_back(BeatDetectionFunctionTransform::getName()); + for (TransformMap::const_iterator i = m_transforms.begin(); + i != m_transforms.end(); ++i) { + list.push_back(TransformDesc(i->first, i->second)); + } + return list; +} + +void +TransformFactory::populateTransforms() +{ //!!! std::vector<QString> fexplugs = FeatureExtractionPluginFactory::getAllPluginIdentifiers(); @@ -62,24 +72,31 @@ plugin->getOutputDescriptors(); if (outputs.size() == 1) { - list.push_back - (TransformDesc - (QString("%1:%2").arg(pluginId).arg(outputs[0].name.c_str()), - pluginDescription)); + m_transforms[QString("%1:%2") + .arg(pluginId) + .arg(outputs[0].name.c_str())] + = pluginDescription; } else { for (size_t j = 0; j < outputs.size(); ++j) { - list.push_back - (TransformDesc - (QString("%1:%2").arg(pluginId).arg(outputs[j].name.c_str()), - QString("%1: %2").arg(pluginDescription) - .arg(outputs[j].description.c_str()))); + m_transforms[QString("%1:%2") + .arg(pluginId) + .arg(outputs[j].name.c_str())] + = QString("%1: %2") + .arg(pluginDescription) + .arg(outputs[j].description.c_str()); } } } } } - - return list; +} + +QString +TransformFactory::getTransformDescription(TransformName name) +{ + if (m_transforms.find(name) != m_transforms.end()) { + return m_transforms[name]; + } else return ""; } Transform * @@ -111,6 +128,7 @@ } if (start && transform) transform->start(); + transform->setObjectName(name); return transform; }