Merge branch 'cmake_dist'

# Conflicts:
#	src/gui/FileBrowser.cpp
This commit is contained in:
Lukas W
2015-06-14 21:38:12 +02:00
38 changed files with 389 additions and 219 deletions

View File

@@ -165,11 +165,6 @@ public:
return m_sf2Dir;
}
const QString & pluginDir() const
{
return m_pluginDir;
}
const QString & vstDir() const
{
return m_vstDir;
@@ -257,7 +252,6 @@ private:
QString m_workingDir;
QString m_dataDir;
QString m_artworkDir;
QString m_pluginDir;
QString m_vstDir;
QString m_flDir;
QString m_ladDir;

View File

@@ -55,7 +55,6 @@ protected slots:
private:
Ui::EffectSelectDialog * ui;
Plugin::DescriptorList m_pluginDescriptors;
EffectKeyList m_effectKeys;
EffectKey m_currentSelection;

View File

@@ -49,6 +49,8 @@ public:
static void init();
static void destroy();
// TODO: Remove me. Replace calls like `if( Engine::hasGUI() )` with
// `if (gui)` (gui defined in "GuiApplication.h"
static bool hasGUI();
// core
@@ -93,11 +95,6 @@ public:
}
static void updateFramesPerTick();
static const QMap<QString, QString> & pluginFileHandling()
{
return s_pluginFileHandling;
}
static inline Engine * inst()
{
if( s_instanceOfMe == NULL )
@@ -134,13 +131,9 @@ private:
static Ladspa2LMMS * s_ladspaManager;
static QMap<QString, QString> s_pluginFileHandling;
// even though most methods are static, an instance is needed for Qt slots/signals
static Engine * s_instanceOfMe;
static void initPluginFileHandling();
friend class GuiApplication;
};

View File

@@ -137,9 +137,8 @@ public:
SubPluginFeatures * subPluginFeatures;
} ;
// typedef a list so we can easily work with list of plugin descriptors
typedef QList<Descriptor> DescriptorList;
typedef QList<Descriptor*> DescriptorList;
// contructor of a plugin
Plugin( const Descriptor * descriptor, Model * parent );
@@ -177,9 +176,6 @@ public:
// if specified plugin couldn't be loaded, it creates a dummy-plugin
static Plugin * instantiate( const QString& pluginName, Model * parent, void * data );
// fills given list with descriptors of all available plugins
static void getDescriptorsOfAvailPlugins( DescriptorList & pluginDescriptors );
// create a view for the model
PluginView * createView( QWidget * parent );

View File

@@ -55,9 +55,6 @@ class PluginDescList : public QWidget
Q_OBJECT
public:
PluginDescList(QWidget* parent);
private:
Plugin::DescriptorList m_pluginDescriptors;
};

92
include/PluginFactory.h Normal file
View File

@@ -0,0 +1,92 @@
/*
* PluginFactory.h
*
* Copyright (c) 2015 Lukas W <lukaswhl/at/gmail.com>
*
* This file is part of LMMS - http://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#ifndef PLUGINFACTORY_H
#define PLUGINFACTORY_H
#include <QtCore/QFileInfo>
#include <QtCore/QList>
#include "export.h"
#include "Plugin.h"
class QLibrary;
class EXPORT PluginFactory
{
public:
struct PluginInfo
{
PluginInfo() : library(nullptr), descriptor(nullptr) {}
const QString name() const;
QFileInfo file;
QLibrary* library;
Plugin::Descriptor* descriptor;
bool isNull() const {return library == 0;}
};
typedef QList<PluginInfo*> PluginInfoList;
typedef QMultiMap<Plugin::PluginTypes, Plugin::Descriptor*> DescriptorMap;
PluginFactory();
~PluginFactory();
/// Returns the singleton instance of PluginFactory. You won't need to call
/// this directly, use pluginFactory instead.
static PluginFactory* instance();
/// Returns a list of all found plugins' descriptors.
const Plugin::DescriptorList descriptors() const;
const Plugin::DescriptorList descriptors(Plugin::PluginTypes type) const;
/// Returns a list of all found plugins' PluginFactory::PluginInfo objects.
const PluginInfoList& pluginInfos() const;
/// Returns a plugin that support the given file extension
const PluginInfo pluginSupportingExtension(const QString& ext);
/// Returns the PluginInfo object of the plugin with the given name.
/// If the plugin is not found, an empty PluginInfo is returned (use
/// PluginInfo::isNull() to check this).
const PluginInfo pluginInfo(const char* name) const;
/// When loading a library fails during discovery, the error string is saved.
/// It can be retrieved by calling this function.
QString errorString(QString pluginName) const;
public slots:
void discoverPlugins();
private:
DescriptorMap m_descriptors;
PluginInfoList m_pluginInfos;
QMap<QString, PluginInfo*> m_pluginByExt;
QHash<QString, QString> m_errors;
static PluginFactory* s_instance;
};
#define pluginFactory PluginFactory::instance()
#endif // PLUGINFACTORY_H