diff audioio/AudioGenerator.h @ 180:98ba77e0d897

* Merge from sv-match-alignment branch (excluding alignment-specific document). - add aggregate wave model (not yet complete enough to be added as a true model in a layer, but there's potential) - add play solo mode - add alignment model -- unused in plain SV - fix two plugin leaks - add m3u playlist support (opens all files at once, potentially hazardous) - fix retrieval of pre-encoded URLs - add ability to resample audio files on import, so as to match rates with other files previously loaded; add preference for same - add preliminary support in transform code for range and rate of transform input - reorganise preferences dialog, move dark-background option to preferences, add option for temporary directory location
author Chris Cannam
date Fri, 28 Sep 2007 13:56:38 +0000
parents cd5d7ff8ef38
children
line wrap: on
line diff
--- a/audioio/AudioGenerator.h	Fri Sep 21 09:13:11 2007 +0000
+++ b/audioio/AudioGenerator.h	Fri Sep 28 13:56:38 2007 +0000
@@ -90,6 +90,17 @@
     virtual size_t mixModel(Model *model, size_t startFrame, size_t frameCount,
 			    float **buffer, size_t fadeIn = 0, size_t fadeOut = 0);
 
+    /**
+     * Specify that only the given set of models should be played.
+     */
+    virtual void setSoloModelSet(std::set<Model *>s);
+
+    /**
+     * Specify that all models should be played as normal (if not
+     * muted).
+     */
+    virtual void clearSoloModelSet();
+
 protected slots:
     void playPluginIdChanged(const Model *, QString);
     void playPluginConfigurationChanged(const Model *, QString);
@@ -98,6 +109,9 @@
     size_t       m_sourceSampleRate;
     size_t       m_targetChannelCount;
 
+    bool m_soloing;
+    std::set<Model *> m_soloModelSet;
+
     struct NoteOff {
 
 	int pitch;