Mercurial > hg > svcore
comparison plugin/DSSIPluginFactory.cpp @ 408:115f60df1e4d
* Speed up spectrogram painting by releasing mutex in FFTDataServer
while calculating data prior to writing it, and by adding whole-column
value query methods to FFT objects
* Add paint cache to Thumbwheel -- repaints of this widget were slowing
down the whole spectrogram repaint
* More uses of MutexLocker (named and with debug) and more profile
points
* Make startup much quicker some of the time, with OSC server in place
author | Chris Cannam |
---|---|
date | Thu, 08 May 2008 14:46:22 +0000 |
parents | 65311fb86166 |
children | b4a8d8221eaf |
comparison
equal
deleted
inserted
replaced
407:88ad01799040 | 408:115f60df1e4d |
---|---|
26 #include "DSSIPluginInstance.h" | 26 #include "DSSIPluginInstance.h" |
27 #include "PluginIdentifier.h" | 27 #include "PluginIdentifier.h" |
28 | 28 |
29 #include <cstdlib> | 29 #include <cstdlib> |
30 | 30 |
31 #include "base/Profiler.h" | |
32 | |
31 //!!! | 33 //!!! |
32 #include "plugin/plugins/SamplePlayer.h" | 34 #include "plugin/plugins/SamplePlayer.h" |
33 | 35 |
34 #include "system/System.h" | 36 #include "system/System.h" |
35 | 37 |
54 } | 56 } |
55 | 57 |
56 void | 58 void |
57 DSSIPluginFactory::enumeratePlugins(std::vector<QString> &list) | 59 DSSIPluginFactory::enumeratePlugins(std::vector<QString> &list) |
58 { | 60 { |
61 Profiler profiler("DSSIPluginFactory::enumeratePlugins"); | |
62 | |
59 for (std::vector<QString>::iterator i = m_identifiers.begin(); | 63 for (std::vector<QString>::iterator i = m_identifiers.begin(); |
60 i != m_identifiers.end(); ++i) { | 64 i != m_identifiers.end(); ++i) { |
61 | 65 |
62 const DSSI_Descriptor *ddesc = getDSSIDescriptor(*i); | 66 const DSSI_Descriptor *ddesc = getDSSIDescriptor(*i); |
63 if (!ddesc) continue; | 67 if (!ddesc) continue; |
111 int position, | 115 int position, |
112 unsigned int sampleRate, | 116 unsigned int sampleRate, |
113 unsigned int blockSize, | 117 unsigned int blockSize, |
114 unsigned int channels) | 118 unsigned int channels) |
115 { | 119 { |
120 Profiler profiler("DSSIPluginFactory::instantiatePlugin"); | |
121 | |
116 const DSSI_Descriptor *descriptor = getDSSIDescriptor(identifier); | 122 const DSSI_Descriptor *descriptor = getDSSIDescriptor(identifier); |
117 | 123 |
118 if (descriptor) { | 124 if (descriptor) { |
119 | 125 |
120 DSSIPluginInstance *instance = | 126 DSSIPluginInstance *instance = |
275 | 281 |
276 | 282 |
277 void | 283 void |
278 DSSIPluginFactory::discoverPlugins(QString soname) | 284 DSSIPluginFactory::discoverPlugins(QString soname) |
279 { | 285 { |
286 Profiler profiler("DSSIPluginFactory::discoverPlugins"); | |
287 | |
280 // Note that soname is expected to be a full path at this point, | 288 // Note that soname is expected to be a full path at this point, |
281 // of a file that is known to exist | 289 // of a file that is known to exist |
282 | 290 |
283 void *libraryHandle = DLOPEN(soname, RTLD_LAZY); | 291 void *libraryHandle = DLOPEN(soname, RTLD_LAZY); |
284 | 292 |