int PluginManager::load(const std::string& path) { // TODO: Resolve symbolic links and make path absolute // Don't load the same dynamic library twice if (dynPluginMap_.find(std::string(path)) != dynPluginMap_.end()) { DEBUG("plugin: already loaded"); return -1; } std::string error; Plugin *plugin = Plugin::load(std::string(path), error); if (!plugin) { DEBUG("plugin: %s", error.c_str()); return -1; } SFLPluginInitFunc init_func; init_func = (SFLPluginInitFunc)(plugin->getInitFunction()); if (!init_func) { DEBUG("plugin: no init symbol"); return -1; } if (initPlugin(init_func)) return -1; dynPluginMap_[path] = std::shared_ptr<Plugin>(plugin); return 0; }
InfEngineBackendNet::InfEngineBackendNet(InferenceEngine::CNNNetwork& net) { inputs = net.getInputsInfo(); outputs = net.getOutputsInfo(); layers.resize(net.layerCount()); // A hack to execute InfEngineBackendNet::layerCount correctly. initPlugin(net); }
Bool pushPlugin (CompPlugin *p) { if (findActivePlugin (p->vTable->name)) { compLogMessage ("core", CompLogLevelWarn, "Plugin '%s' already active", p->vTable->name); return FALSE; } p->next = plugins; plugins = p; if (!initPlugin (p)) { compLogMessage ("core", CompLogLevelError, "Couldn't activate plugin '%s'", p->vTable->name); plugins = p->next; return FALSE; } return TRUE; }
ZynAddSubFxInstrument::ZynAddSubFxInstrument( InstrumentTrack * _instrumentTrack ) : Instrument( _instrumentTrack, &zynaddsubfx_plugin_descriptor ), m_hasGUI( false ), m_plugin( NULL ), m_remotePlugin( NULL ), m_portamentoModel( 0, 0, 127, 1, this, tr( "Portamento" ) ), m_filterFreqModel( 64, 0, 127, 1, this, tr( "Filter Frequency" ) ), m_filterQModel( 64, 0, 127, 1, this, tr( "Filter Resonance" ) ), m_bandwidthModel( 64, 0, 127, 1, this, tr( "Bandwidth" ) ), m_fmGainModel( 127, 0, 127, 1, this, tr( "FM Gain" ) ), m_resCenterFreqModel( 64, 0, 127, 1, this, tr( "Resonance Center Frequency" ) ), m_resBandwidthModel( 64, 0, 127, 1, this, tr( "Resonance Bandwidth" ) ), m_forwardMidiCcModel( true, this, tr( "Forward MIDI Control Change Events" ) ) { initPlugin(); connect( &m_portamentoModel, SIGNAL( dataChanged() ), this, SLOT( updatePortamento() ) ); connect( &m_filterFreqModel, SIGNAL( dataChanged() ), this, SLOT( updateFilterFreq() ) ); connect( &m_filterQModel, SIGNAL( dataChanged() ), this, SLOT( updateFilterQ() ) ); connect( &m_bandwidthModel, SIGNAL( dataChanged() ), this, SLOT( updateBandwidth() ) ); connect( &m_fmGainModel, SIGNAL( dataChanged() ), this, SLOT( updateFmGain() ) ); connect( &m_resCenterFreqModel, SIGNAL( dataChanged() ), this, SLOT( updateResCenterFreq() ) ); connect( &m_resBandwidthModel, SIGNAL( dataChanged() ), this, SLOT( updateResBandwidth() ) ); // now we need a play-handle which cares for calling play() InstrumentPlayHandle * iph = new InstrumentPlayHandle( this, _instrumentTrack ); Engine::mixer()->addPlayHandle( iph ); connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( reloadPlugin() ) ); connect( instrumentTrack()->pitchRangeModel(), SIGNAL( dataChanged() ), this, SLOT( updatePitchRange() ) ); }
void ZynAddSubFxInstrument::reloadPlugin() { // save state of current plugin instance DataFile m( DataFile::InstrumentTrackSettings ); saveSettings( m, m.content() ); // init plugin (will delete current one and create a new instance) initPlugin(); // and load the settings again loadSettings( m.content() ); }
void CArchPluginWindows::load(const CString& dllFilename) { LOG((CLOG_DEBUG "loading plugin: %s", dllFilename.c_str())); CString path = CString(getPluginsDir()).append("\\").append(dllFilename); HINSTANCE library = LoadLibrary(path.c_str()); if (library == NULL) throw XArch(new XArchEvalWindows); initFunc initPlugin = (initFunc)GetProcAddress(library, "init"); initPlugin(&sendEvent, &log); }
void StreamReader::onParameter(const std::string& pluginname, const std::string& package, const std::string& location, const std::string& file, value::Value* parameters, const double& time) { initPlugin(pluginname, package, location, m_modulemgr); plugin()->onParameter(pluginname, location, file, parameters, time); }
int main(int argc, char *argv[]){ if(argc < 2){ printf("Usage : video_test <file | url>\n"); return 1; } SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER); SDL_Window *window = SDL_CreateWindow("wallyd", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 0,0, SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN_DESKTOP); printf("Initialized plugin : %s\n", initPlugin((void*)window)); renderVideo(argv[1]); }
void ArchPluginUnix::init(void* log, void* arch) { PluginTable::iterator it; for (it = m_pluginTable.begin(); it != m_pluginTable.end(); it++) { initFunc initPlugin = (initFunc)dlsym(it->second, "init"); if (initPlugin != NULL) { initPlugin(log, arch); } else { LOG((CLOG_DEBUG "no init function in %s", it->first.c_str())); } } }
void PluginThread::run() { bool success = initPlugin(); if (!success) { LOG_ERROR() << "Could not run plugin because plugin creation failed."; return; } //Start plugin updateRunning(); mPlugin->run(); updateFinished(); }
void ArchPluginWindows::init(void* log, void* arch) { PluginTable::iterator it; HINSTANCE lib; for (it = m_pluginTable.begin(); it != m_pluginTable.end(); it++) { lib = reinterpret_cast<HINSTANCE>(it->second); initFunc initPlugin = (initFunc)GetProcAddress(lib, "init"); if (initPlugin != NULL) { initPlugin(log, arch); } else { LOG((CLOG_DEBUG "no init function in %s", it->first.c_str())); } } }
bool PluginHandler_addPlugin(const char* basePath, const char* plugin) { void* (* initPlugin)(RegisterPlugin* registerPlugin, void* private_data); struct PluginPrivateData data; object_t lib = 0; const char* filename = 0; void* function; if (!basePath || !plugin) goto error; filename = buildLoadingPath(basePath, plugin); lib = library_load(filename); if (!library_valid(lib)) { // TODO: Show error message pd_error("Unable to open %s\n", filename); goto error; } if (!(function = library_symbol(lib, "InitPlugin"))) { // TODO: Show error message pd_error("Unable to find InitPlugin function in plugin %s\n", filename); goto error; } *(void**)(&initPlugin) = function; data.name = plugin; data.lib = lib; data.fullFilename = filename; initPlugin(registerPlugin, (void*)&data); return true; error: if (library_valid(lib)) library_unload(lib); return false; }
void StreamReader::onParameter(const std::string& pluginname, const std::string& package, const std::string& location, const std::string& file, value::Value* parameters, const double& time) { initPlugin(pluginname, package, location, m_modulemgr); #ifdef VLE_HAVE_CAIRO /* * For cairo plug-ins, we build the cairo graphics context via the * CairoPlugin::init function. */ if (plugin()->isCairo()) { CairoPluginPtr plg = toCairoPlugin(plugin()); plg->init(); } #endif plugin()->onParameter(pluginname, location, file, parameters, time); }
void InfEngineBackendNet::init() { if (inputs.empty()) { // Collect all external input blobs. inputs.clear(); std::map<std::string, InferenceEngine::DataPtr> internalOutputs; for (const auto& l : layers) { for (const InferenceEngine::DataWeakPtr& ptr : l->insData) { InferenceEngine::DataPtr inp(ptr); if (internalOutputs.find(inp->name) == internalOutputs.end()) { InferenceEngine::InputInfo::Ptr inpInfo(new InferenceEngine::InputInfo()); inpInfo->setInputData(inp); if (inputs.find(inp->name) == inputs.end()) inputs[inp->name] = inpInfo; } } for (const InferenceEngine::DataPtr& out : l->outData) { // TODO: Replace to uniquness assertion. if (internalOutputs.find(out->name) == internalOutputs.end()) internalOutputs[out->name] = out; } } CV_Assert(!inputs.empty()); } if (outputs.empty()) { // Add all unconnected blobs to output blobs. InferenceEngine::OutputsDataMap unconnectedOuts; for (const auto& l : layers) { // Add all outputs. for (const InferenceEngine::DataPtr& out : l->outData) { // TODO: Replace to uniquness assertion. if (unconnectedOuts.find(out->name) == unconnectedOuts.end()) unconnectedOuts[out->name] = out; } // Remove internally connected outputs. for (const InferenceEngine::DataWeakPtr& inp : l->insData) { unconnectedOuts.erase(InferenceEngine::DataPtr(inp)->name); } } CV_Assert(!unconnectedOuts.empty()); for (auto it = unconnectedOuts.begin(); it != unconnectedOuts.end(); ++it) { outputs[it->first] = it->second; } } // Set up input blobs. inpBlobs.clear(); for (const auto& it : inputs) { CV_Assert(allBlobs.find(it.first) != allBlobs.end()); inpBlobs[it.first] = allBlobs[it.first]; } // Set up output blobs. outBlobs.clear(); for (const auto& it : outputs) { CV_Assert(allBlobs.find(it.first) != allBlobs.end()); outBlobs[it.first] = allBlobs[it.first]; } if (!isInitialized()) initPlugin(*this); }
void EffectRack::dropEvent(QDropEvent *event)/*{{{*/ { event->accept(); QString text; QListWidgetItem *i = itemAt(event->pos()); if (!i) return; int idx = row(i); //qDebug("EffectRack::dropEvent: idx: %d", idx); Pipeline* pipe = track->efxPipe(); if (pipe) { //int size = pipe->size(); /*if (idx < size) { QWidget *sw = event->source(); if (sw) { if (strcmp(sw->metaObject()->className(), "EffectRack") == 0) { EffectRack *ser = (EffectRack*) sw; Pipeline* spipe = ser->getTrack()->efxPipe(); if (!spipe) return; QListWidgetItem *i = ser->itemAt(ser->getDragPos()); int idx0 = ser->row(i); if (!(*spipe)[idx0] || (idx == idx0 && (ser == this || ser->getTrack()->name() == track->name()))) return; } } if (QMessageBox::question(this, tr("Replace effect"), tr("Do you really want to replace the effect %1?").arg(pipe->name(idx)), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes) == QMessageBox::Yes) { audio->msgAddPlugin(track, idx, 0); song->update(SC_RACK); } else { return; } }*/ if (event->mimeData()->hasFormat("text/x-oom-plugin")) { const QMimeData *md = event->mimeData(); QString outxml(md->data("text/x-oom-plugin")); //qDebug("EffectRack::dropEvent Event data:\n%s", outxml.toUtf8().constData()); //Xml xml(event->mimeData()->data("text/x-oom-plugin").data()); QByteArray ba = outxml.toUtf8(); const char* data = ba.constData(); Xml xml(data); initPlugin(xml, idx); } else if (event->mimeData()->hasUrls()) { // Multiple urls not supported here. Grab the first one. text = event->mimeData()->urls()[0].path(); if (text.endsWith(".pre", Qt::CaseInsensitive) || text.endsWith(".pre.gz", Qt::CaseInsensitive) || text.endsWith(".pre.bz2", Qt::CaseInsensitive)) { //bool popenFlag = false; bool popenFlag; FILE* fp = fileOpen(this, text, ".pre", "r", popenFlag, false, false); if (fp) { Xml xml(fp); initPlugin(xml, idx); if (popenFlag) pclose(fp); else fclose(fp); } } } } }/*}}}*/
CMTNumAlgoPlugin::CMTNumAlgoPlugin() { initPlugin(); }
void InfEngineBackendNet::init(int targetId) { if (inputs.empty()) { // Collect all external input blobs. inputs.clear(); std::map<std::string, InferenceEngine::DataPtr> internalOutputs; for (const auto& l : layers) { for (const InferenceEngine::DataWeakPtr& ptr : l->insData) { InferenceEngine::DataPtr inp(ptr); if (internalOutputs.find(inp->name) == internalOutputs.end()) { InferenceEngine::InputInfo::Ptr inpInfo(new InferenceEngine::InputInfo()); inpInfo->setInputData(inp); if (inputs.find(inp->name) == inputs.end()) inputs[inp->name] = inpInfo; } } for (const InferenceEngine::DataPtr& out : l->outData) { // TODO: Replace to uniqueness assertion. if (internalOutputs.find(out->name) == internalOutputs.end()) internalOutputs[out->name] = out; } } CV_Assert(!inputs.empty()); } if (outputs.empty()) { // Add all unconnected blobs to output blobs. InferenceEngine::OutputsDataMap unconnectedOuts; for (const auto& l : layers) { // Add all outputs. for (const InferenceEngine::DataPtr& out : l->outData) { // TODO: Replace to uniqueness assertion. if (unconnectedOuts.find(out->name) == unconnectedOuts.end()) unconnectedOuts[out->name] = out; } // Remove internally connected outputs. for (const InferenceEngine::DataWeakPtr& inp : l->insData) { unconnectedOuts.erase(InferenceEngine::DataPtr(inp)->name); } } CV_Assert(!unconnectedOuts.empty()); for (auto it = unconnectedOuts.begin(); it != unconnectedOuts.end(); ++it) { outputs[it->first] = it->second; } } // Set up input blobs. inpBlobs.clear(); for (const auto& it : inputs) { CV_Assert(allBlobs.find(it.first) != allBlobs.end()); inpBlobs[it.first] = allBlobs[it.first]; it.second->setPrecision(inpBlobs[it.first]->precision()); } // Set up output blobs. outBlobs.clear(); for (const auto& it : outputs) { CV_Assert(allBlobs.find(it.first) != allBlobs.end()); outBlobs[it.first] = allBlobs[it.first]; } switch (targetId) { case DNN_TARGET_CPU: setTargetDevice(InferenceEngine::TargetDevice::eCPU); break; case DNN_TARGET_OPENCL_FP16: setPrecision(InferenceEngine::Precision::FP16); /* Falls through. */ case DNN_TARGET_OPENCL: setTargetDevice(InferenceEngine::TargetDevice::eGPU); break; case DNN_TARGET_MYRIAD: { setPrecision(InferenceEngine::Precision::FP16); setTargetDevice(InferenceEngine::TargetDevice::eMYRIAD); break; } default: CV_Error(Error::StsError, format("Unknown target identifier: %d", targetId)); } if (!isInitialized()) initPlugin(*this); }
DragonDiagramMetamodelPlugin::DragonDiagramMetamodelPlugin() { initPlugin(); }