Mercurial > hg > sonic-visualiser
comparison main/MainWindow.cpp @ 184:ebd906049fb6
* Change WaveFileModel API from getValues(start,end) to getData(start,count).
It's much less error-prone to pass in frame counts instead of start/end
locations. Should have done this ages ago. This closes #1794563.
* Add option to apply a transform to only the selection region, instead of
the whole audio.
* (to make the above work properly) Add start frame offset to wave models
author | Chris Cannam |
---|---|
date | Mon, 01 Oct 2007 13:48:38 +0000 |
parents | 98ba77e0d897 |
children | f3191ab6d564 |
comparison
equal
deleted
inserted
replaced
183:3fdaf3157eea | 184:ebd906049fb6 |
---|---|
2020 m_viewManager->setPlaySoloMode(action->isChecked()); | 2020 m_viewManager->setPlaySoloMode(action->isChecked()); |
2021 } else { | 2021 } else { |
2022 m_viewManager->setPlaySoloMode(!m_viewManager->getPlaySoloMode()); | 2022 m_viewManager->setPlaySoloMode(!m_viewManager->getPlaySoloMode()); |
2023 } | 2023 } |
2024 | 2024 |
2025 if (!m_viewManager->getPlaySoloMode()) { | 2025 if (m_viewManager->getPlaySoloMode()) { |
2026 currentPaneChanged(m_paneStack->getCurrentPane()); | |
2027 } else { | |
2026 m_viewManager->setPlaybackModel(0); | 2028 m_viewManager->setPlaybackModel(0); |
2027 if (m_playSource) { | 2029 if (m_playSource) { |
2028 m_playSource->clearSoloModelSet(); | 2030 m_playSource->clearSoloModelSet(); |
2029 } | 2031 } |
2030 } | 2032 } |
4214 PluginTransform::ExecutionContext context(channel); | 4216 PluginTransform::ExecutionContext context(channel); |
4215 | 4217 |
4216 std::vector<Model *> candidateInputModels = | 4218 std::vector<Model *> candidateInputModels = |
4217 m_document->getTransformInputModels(); | 4219 m_document->getTransformInputModels(); |
4218 | 4220 |
4221 size_t startFrame = 0, duration = 0; | |
4222 size_t endFrame = 0; | |
4223 m_viewManager->getSelection().getExtents(startFrame, endFrame); | |
4224 if (endFrame > startFrame) duration = endFrame - startFrame; | |
4225 else startFrame = 0; | |
4226 | |
4219 Model *inputModel = factory->getConfigurationForTransform(transform, | 4227 Model *inputModel = factory->getConfigurationForTransform(transform, |
4220 candidateInputModels, | 4228 candidateInputModels, |
4221 context, | 4229 context, |
4222 configurationXml, | 4230 configurationXml, |
4223 m_playSource); | 4231 m_playSource, |
4232 startFrame, | |
4233 duration); | |
4224 if (!inputModel) return; | 4234 if (!inputModel) return; |
4225 | 4235 |
4226 // std::cerr << "MainWindow::addLayer: Input model is " << inputModel << " \"" << inputModel->objectName().toStdString() << "\"" << std::endl; | 4236 // std::cerr << "MainWindow::addLayer: Input model is " << inputModel << " \"" << inputModel->objectName().toStdString() << "\"" << std::endl; |
4227 | 4237 |
4228 Layer *newLayer = m_document->createDerivedLayer(transform, | 4238 Layer *newLayer = m_document->createDerivedLayer(transform, |