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,