comparison plugin/RealTimePluginFactory.h @ 1040:a1cd5abcb38b cxx11

Introduce and use a samplerate type
author Chris Cannam
date Wed, 04 Mar 2015 12:01:04 +0000
parents b4a8d8221eaf
children 48e9f538e6e9
comparison
equal deleted inserted replaced
1039:b14064bd1f97 1040:a1cd5abcb38b
24 24
25 #include <QString> 25 #include <QString>
26 #include <vector> 26 #include <vector>
27 27
28 #include "base/Debug.h" 28 #include "base/Debug.h"
29 #include "base/BaseTypes.h"
29 30
30 class RealTimePluginInstance; 31 class RealTimePluginInstance;
31 32
32 class RealTimePluginDescriptor 33 class RealTimePluginDescriptor
33 { 34 {
53 static RealTimePluginFactory *instance(QString pluginType); 54 static RealTimePluginFactory *instance(QString pluginType);
54 static RealTimePluginFactory *instanceFor(QString identifier); 55 static RealTimePluginFactory *instanceFor(QString identifier);
55 static std::vector<QString> getAllPluginIdentifiers(); 56 static std::vector<QString> getAllPluginIdentifiers();
56 static void enumerateAllPlugins(std::vector<QString> &); 57 static void enumerateAllPlugins(std::vector<QString> &);
57 58
58 static void setSampleRate(int sampleRate) { m_sampleRate = sampleRate; } 59 static void setSampleRate(sv_samplerate_t sampleRate) { m_sampleRate = sampleRate; }
59 60
60 /** 61 /**
61 * Look up the plugin path and find the plugins in it. Called 62 * Look up the plugin path and find the plugins in it. Called
62 * automatically after construction of a factory. 63 * automatically after construction of a factory.
63 */ 64 */
85 * Instantiate a plugin. 86 * Instantiate a plugin.
86 */ 87 */
87 virtual RealTimePluginInstance *instantiatePlugin(QString identifier, 88 virtual RealTimePluginInstance *instantiatePlugin(QString identifier,
88 int clientId, 89 int clientId,
89 int position, 90 int position,
90 unsigned int sampleRate, 91 sv_samplerate_t sampleRate,
91 unsigned int blockSize, 92 int blockSize,
92 unsigned int channels) = 0; 93 int channels) = 0;
93 94
94 /** 95 /**
95 * Get category metadata about a plugin (without instantiating it). 96 * Get category metadata about a plugin (without instantiating it).
96 */ 97 */
97 virtual QString getPluginCategory(QString identifier) = 0; 98 virtual QString getPluginCategory(QString identifier) = 0;
101 102
102 // for call by RealTimePluginInstance dtor 103 // for call by RealTimePluginInstance dtor
103 virtual void releasePlugin(RealTimePluginInstance *, QString identifier) = 0; 104 virtual void releasePlugin(RealTimePluginInstance *, QString identifier) = 0;
104 friend class RealTimePluginInstance; 105 friend class RealTimePluginInstance;
105 106
106 static int m_sampleRate; 107 static sv_samplerate_t m_sampleRate;
107 }; 108 };
108 109
109 #endif 110 #endif