Mercurial > hg > svapp
comparison audioio/AudioCallbackPlaySource.cpp @ 12:29b38a641d43
* Implement play mute, level and pan controls and a layer visibility control
* Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so
that in many cases it can be done inaudibly. Still gets it wrong when
playing in a noncontiguous selection.
* Fix to SV file save for non-2d sparse models
* Fixes to LED button drawing and AudioDial mouse functionality
* Add progress bar for Ogg file import
* Reshuffle PropertyContainer and its subclasses so it can be a QObject
* Add layer dormancy (invisible layer permitted to free its cache space)
* Optimisations to SpectrogramLayer, removing locks when reading/writing
individual pixels in the cache (should be unnecessary there) -- there's
still an issue here as we need a lock when reading from the model in
case the model is replaced, and we don't currently have one
* Several munlock() calls to make it harder to exhaust real memory if
running in an RT mode with mlockall() active
author | Chris Cannam |
---|---|
date | Fri, 17 Feb 2006 18:04:26 +0000 |
parents | b6dc944128da |
children | 89bb89894ad6 |
comparison
equal
deleted
inserted
replaced
11:8dc0ae8fccdd | 12:29b38a641d43 |
---|---|
11 | 11 |
12 #include "AudioGenerator.h" | 12 #include "AudioGenerator.h" |
13 | 13 |
14 #include "base/Model.h" | 14 #include "base/Model.h" |
15 #include "base/ViewManager.h" | 15 #include "base/ViewManager.h" |
16 #include "base/PlayParameterRepository.h" | |
16 #include "model/DenseTimeValueModel.h" | 17 #include "model/DenseTimeValueModel.h" |
17 #include "model/SparseOneDimensionalModel.h" | 18 #include "model/SparseOneDimensionalModel.h" |
18 #include "dsp/timestretching/IntegerTimeStretcher.h" | 19 #include "dsp/timestretching/IntegerTimeStretcher.h" |
19 | 20 |
20 #include <iostream> | 21 #include <iostream> |
52 this, SLOT(selectionChanged())); | 53 this, SLOT(selectionChanged())); |
53 connect(m_viewManager, SIGNAL(playLoopModeChanged()), | 54 connect(m_viewManager, SIGNAL(playLoopModeChanged()), |
54 this, SLOT(playLoopModeChanged())); | 55 this, SLOT(playLoopModeChanged())); |
55 connect(m_viewManager, SIGNAL(playSelectionModeChanged()), | 56 connect(m_viewManager, SIGNAL(playSelectionModeChanged()), |
56 this, SLOT(playSelectionModeChanged())); | 57 this, SLOT(playSelectionModeChanged())); |
58 | |
59 connect(PlayParameterRepository::instance(), | |
60 SIGNAL(playParametersChanged(PlayParameters *)), | |
61 this, SLOT(playParametersChanged(PlayParameters *))); | |
57 } | 62 } |
58 | 63 |
59 AudioCallbackPlaySource::~AudioCallbackPlaySource() | 64 AudioCallbackPlaySource::~AudioCallbackPlaySource() |
60 { | 65 { |
61 m_exiting = true; | 66 m_exiting = true; |
305 AudioCallbackPlaySource::playSelectionModeChanged() | 310 AudioCallbackPlaySource::playSelectionModeChanged() |
306 { | 311 { |
307 if (!m_viewManager->getSelections().empty()) { | 312 if (!m_viewManager->getSelections().empty()) { |
308 clearRingBuffers(); | 313 clearRingBuffers(); |
309 } | 314 } |
315 } | |
316 | |
317 void | |
318 AudioCallbackPlaySource::playParametersChanged(PlayParameters *params) | |
319 { | |
320 clearRingBuffers(); | |
310 } | 321 } |
311 | 322 |
312 void | 323 void |
313 AudioCallbackPlaySource::setTargetBlockSize(size_t size) | 324 AudioCallbackPlaySource::setTargetBlockSize(size_t size) |
314 { | 325 { |