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