Mercurial > hg > svapp
diff audioio/AudioGenerator.h @ 22:7f32bb07629a
* Add editing for auralisation plugin parameters and programs
* Rename and reorganise the sample plugin sample set
author | Chris Cannam |
---|---|
date | Thu, 23 Mar 2006 15:49:41 +0000 |
parents | ebe07d3560e6 |
children | dd2084d32652 |
line wrap: on
line diff
--- a/audioio/AudioGenerator.h Mon Mar 20 15:10:07 2006 +0000 +++ b/audioio/AudioGenerator.h Thu Mar 23 15:49:41 2006 +0000 @@ -23,13 +23,16 @@ class SparseOneDimensionalModel; class RealTimePluginInstance; +#include <QObject> #include <QMutex> #include <set> #include <map> -class AudioGenerator +class AudioGenerator : public QObject { + Q_OBJECT + public: AudioGenerator(ViewManager *); virtual ~AudioGenerator(); @@ -42,6 +45,9 @@ */ static bool canPlay(const Model *model); + static QString getDefaultPlayPluginId(const Model *model); + static QString getDefaultPlayPluginConfiguration(const Model *model); + /** * Add a data model to be played from and initialise any necessary * audio generation code. Returns true if the model will be @@ -85,6 +91,10 @@ virtual size_t mixModel(Model *model, size_t startFrame, size_t frameCount, float **buffer, size_t fadeIn = 0, size_t fadeOut = 0); +protected slots: + void playPluginIdChanged(const Model *, QString); + void playPluginConfigurationChanged(const Model *, QString); + protected: ViewManager *m_viewManager; size_t m_sourceSampleRate; @@ -102,15 +112,16 @@ }; }; - typedef std::map<Model *, RealTimePluginInstance *> PluginMap; + typedef std::map<const Model *, RealTimePluginInstance *> PluginMap; typedef std::set<NoteOff, NoteOff::Comparator> NoteOffSet; - typedef std::map<Model *, NoteOffSet> NoteOffMap; + typedef std::map<const Model *, NoteOffSet> NoteOffMap; QMutex m_mutex; PluginMap m_synthMap; NoteOffMap m_noteOffs; + virtual RealTimePluginInstance *loadPluginFor(const Model *model); virtual RealTimePluginInstance *loadPlugin(QString id, QString program); virtual size_t mixDenseTimeValueModel