Miam-Player  0.8.0
A nice music player
pluginmanager.h
Go to the documentation of this file.
1 #ifndef PLUGINMANAGER_H
2 #define PLUGINMANAGER_H
3 
7 
8 #include <QDir>
9 
10 #include <QTableWidgetItem>
11 
12 #include "plugininfo.h"
13 
15 class MainWindow;
16 
22 class PluginManager : public QObject
23 {
24  Q_OBJECT
25 private:
27  MainWindow *_mainWindow;
28 
30  QMap<QString, BasicPlugin*> _loadedPlugins;
31 
33  QMultiMap<QString, QObject*> _dependencies;
34 
36  QMultiMap<QString, QObject*> _extensionPoints;
37 
38 public:
39  explicit PluginManager(MainWindow *parent);
40 
42  virtual ~PluginManager();
43 
45  void alertUser(const QStringList &failedPlugins);
46 
47  void init();
48 
49  inline QMultiMap<QString, QObject*> dependencies() const { return _dependencies; }
50  inline QMap<QString, BasicPlugin*> loadedPlugins() const { return _loadedPlugins; }
51 
53  bool loadPlugin(const QString &pluginAbsPath);
54 
56  void registerExtensionPoint(QPair<QString, QObjectList> ext);
57 
58  void unregisterExtensionPoint(const QString &ext);
59 
61  bool unloadPlugin(const QString &absFilePath);
62 
63 private:
64  void loadItemViewPlugin(ItemViewPlugin *itemViewPlugin);
65  void loadMediaPlayerPlugin(MediaPlayerPlugin *mediaPlayerPlugin);
66  void loadRemoteMediaPlayerPlugin(RemoteMediaPlayerPlugin *remoteMediaPlayerPlugin);
67  //void loadTagEditorPlugin(TagEditorPlugin *tagEditorPlugin);
68 };
69 
70 #endif // PLUGINMANAGER_H
The RemoteMediaPlayerPlugin class.
Definition: remotemediaplayerplugin.h:18
The ItemViewPlugin class.
Definition: itemviewplugin.h:15
virtual ~PluginManager()
Definition: pluginmanager.cpp:21
void unregisterExtensionPoint(const QString &ext)
Definition: pluginmanager.cpp:160
void registerExtensionPoint(QPair< QString, QObjectList > ext)
Definition: pluginmanager.cpp:140
PluginManager(MainWindow *parent)
Definition: pluginmanager.cpp:15
QMap< QString, BasicPlugin * > loadedPlugins() const
Definition: pluginmanager.h:50
The MediaPlayerPlugin class.
Definition: mediaplayerplugin.h:15
void alertUser(const QStringList &failedPlugins)
Definition: pluginmanager.cpp:77
The PluginManager class can dynamically load or unload plugins without restarting the application...
Definition: pluginmanager.h:22
QMultiMap< QString, QObject * > dependencies() const
Definition: pluginmanager.h:49
bool unloadPlugin(const QString &absFilePath)
Definition: pluginmanager.cpp:172
void init()
Definition: pluginmanager.cpp:35
The MainWindow class is the entry point of this audio player.
Definition: mainwindow.h:27
bool loadPlugin(const QString &pluginAbsPath)
Definition: pluginmanager.cpp:96