From 909cfe195ae2f6058a03875123f1e80f2a3fa0fa Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 6 May 2016 23:43:01 +0800 Subject: Use new SMELT rendering API for notes drawing. Deinitialize classes in a correct order to avoid crashes. Add background image option. Add FPS-related options. Use QLineEdit instead of QPlainTextEdit for strings. --- qmidiplayer-desktop/qmpplugin.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'qmidiplayer-desktop/qmpplugin.cpp') diff --git a/qmidiplayer-desktop/qmpplugin.cpp b/qmidiplayer-desktop/qmpplugin.cpp index f014902..b05ca0c 100644 --- a/qmidiplayer-desktop/qmpplugin.cpp +++ b/qmidiplayer-desktop/qmpplugin.cpp @@ -9,7 +9,7 @@ #include "qmpplugin.hpp" #include "qmpmainwindow.hpp" #include "qmpsettingswindow.hpp" -qmpPluginAPI pluginAPI; +qmpPluginAPI* pluginAPI; qmpMainWindow* qmw; qmpSettingsWindow* qsw; #ifdef _WIN32 @@ -48,7 +48,7 @@ void qmpPluginManager::scanPlugins() void* hndi=dlsym(hso,"qmpPluginGetInterface"); if(!hndi)continue; qmpPluginEntry e=(qmpPluginEntry)hndi; - qmpPluginIntf* intf=e(&pluginAPI); + qmpPluginIntf* intf=e(pluginAPI); plugins.push_back(qmpPlugin(std::string(intf->pluginGetName()),std::string(intf->pluginGetVersion()),std::string(cpluginpaths[i]),intf)); } } @@ -57,11 +57,16 @@ qmpPluginManager::qmpPluginManager() { qmw=qmpMainWindow::getInstance(); qsw=qmw->getSettingsWindow(); + pluginAPI=new qmpPluginAPI(); } qmpPluginManager::~qmpPluginManager() { - for(unsigned i=0;ideinit(); + delete plugins[i].interface; + } + qmw=NULL;qsw=NULL;delete pluginAPI; } std::vector *qmpPluginManager::getPlugins() { @@ -82,6 +87,8 @@ void qmpPluginManager::deinitPlugins() plugins[i].interface->deinit(); } +qmpPluginAPI::~qmpPluginAPI(){} + uint32_t qmpPluginAPI::getDivision() {return qmw&&qmw->getPlayer()?qmw->getPlayer()->getDivision():0;} uint32_t qmpPluginAPI::getRawTempo() -- cgit v1.2.3