changeset 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 8dc0ae8fccdd
children 89bb89894ad6
files audioio/AudioCallbackPlaySource.cpp audioio/AudioCallbackPlaySource.h
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/audioio/AudioCallbackPlaySource.cpp	Wed Feb 15 17:58:35 2006 +0000
+++ b/audioio/AudioCallbackPlaySource.cpp	Fri Feb 17 18:04:26 2006 +0000
@@ -13,6 +13,7 @@
 
 #include "base/Model.h"
 #include "base/ViewManager.h"
+#include "base/PlayParameterRepository.h"
 #include "model/DenseTimeValueModel.h"
 #include "model/SparseOneDimensionalModel.h"
 #include "dsp/timestretching/IntegerTimeStretcher.h"
@@ -54,6 +55,10 @@
 	    this, SLOT(playLoopModeChanged()));
     connect(m_viewManager, SIGNAL(playSelectionModeChanged()),
 	    this, SLOT(playSelectionModeChanged()));
+
+    connect(PlayParameterRepository::instance(),
+	    SIGNAL(playParametersChanged(PlayParameters *)),
+	    this, SLOT(playParametersChanged(PlayParameters *)));
 }
 
 AudioCallbackPlaySource::~AudioCallbackPlaySource()
@@ -310,6 +315,12 @@
 }
 
 void
+AudioCallbackPlaySource::playParametersChanged(PlayParameters *params)
+{
+    clearRingBuffers();
+}
+
+void
 AudioCallbackPlaySource::setTargetBlockSize(size_t size)
 {
     std::cerr << "AudioCallbackPlaySource::setTargetBlockSize() -> " << size << std::endl;
--- a/audioio/AudioCallbackPlaySource.h	Wed Feb 15 17:58:35 2006 +0000
+++ b/audioio/AudioCallbackPlaySource.h	Fri Feb 17 18:04:26 2006 +0000
@@ -27,6 +27,7 @@
 class Model;
 class ViewManager;
 class AudioGenerator;
+class PlayParameters;
 class IntegerTimeStretcher;
 
 /**
@@ -173,6 +174,7 @@
     void selectionChanged();
     void playLoopModeChanged();
     void playSelectionModeChanged();
+    void playParametersChanged(PlayParameters *);
 
 protected:
     ViewManager                     *m_viewManager;