Qmmp
pluginitem_p.h
1 /***************************************************************************
2  * Copyright (C) 2011-2015 by Ilya Kotov *
3  * forkotov02@ya.ru *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19  ***************************************************************************/
20 #ifndef PLUGINITEM_P_H
21 #define PLUGINITEM_P_H
22 
23 #include <QTreeWidgetItem>
24 
29 class QWidget;
30 class InputSourceFactory;
31 class DecoderFactory;
32 class EngineFactory;
33 class OutputFactory;
34 class VisualFactory;
35 class EffectFactory;
36 class GeneralFactory;
37 class OutputFactory;
38 class FileDialogFactory;
39 class UiFactory;
40 
41 class PluginItem : public QTreeWidgetItem
42 {
43 public:
44 
45  PluginItem(QTreeWidgetItem *parent, InputSourceFactory *factory, const QString &path);
46  PluginItem(QTreeWidgetItem *parent, DecoderFactory *factory, const QString &path);
47  PluginItem(QTreeWidgetItem *parent, EngineFactory *factory, const QString &path);
48  PluginItem(QTreeWidgetItem *parent, EffectFactory *factory, const QString &path);
49  PluginItem(QTreeWidgetItem *parent, VisualFactory *factory, const QString &path);
50  PluginItem(QTreeWidgetItem *parent, GeneralFactory *factory, const QString &path);
51  PluginItem(QTreeWidgetItem *parent, OutputFactory *factory, const QString &path);
52  PluginItem(QTreeWidgetItem *parent, FileDialogFactory *factory, const QString &path);
53  PluginItem(QTreeWidgetItem *parent, UiFactory *factory, const QString &path);
54  ~PluginItem();
55 
56  enum PluginType
57  {
58  TRANSPORT = QTreeWidgetItem::UserType,
59  DECODER,
60  ENGINE,
61  EFFECT,
62  VISUAL,
63  GENERAL,
64  OUTPUT,
65  FILE_DIALOG,
66  USER_INTERFACE
67  };
68 
69  bool hasAbout() const;
70  bool hasSettings() const;
71  void showAbout(QWidget *parent);
72  void showSettings(QWidget *parent);
73  void setEnabled(bool enabled);
74 
75 
76 private:
77  bool m_has_about;
78  bool m_has_config;
79  void *m_factory;
80 };
81 
82 #endif
Input plugin interface (decoder factory).
Definition: decoderfactory.h:54
Effect plugin interface (effect factory).
Definition: effectfactory.h:56
Engine plugin interface.
Definition: enginefactory.h:55
File dialog plugin interface.
Definition: filedialogfactory.h:45
General plugin interface.
Definition: generalfactory.h:61
Transport plugin interface.
Definition: inputsourcefactory.h:50
Output plugin interface (output factory).
Definition: outputfactory.h:48
User interface plugin interface.
Definition: uifactory.h:44
Visual plugin interface (visual factory).
Definition: visualfactory.h:46