20 #ifndef KRADIO_PLUGINS_INTERFACES_H
21 #define KRADIO_PLUGINS_INTERFACES_H
29 #include "errorlog_interfaces.h"
30 #include <QtCore/QString>
31 #include <QtCore/QObject>
32 #include <QtCore/QList>
34 #include <kconfiggroup.h>
89 PluginBase(
const QString &instanceID,
const QString &name,
const QString &description);
93 virtual QString pluginClassName()
const = 0;
95 const QString &
name()
const {
return m_name; }
96 void setName(
const QString &n);
98 const QString &
instanceID()
const {
return m_instanceID; }
108 virtual void unsetManager ();
109 bool isManagerSet ()
const;
123 virtual void saveState ( KConfigGroup &)
const = 0;
125 virtual void startPlugin();
144 #define PLUGIN_LIBRARY_FUNCTIONS(class_name, i18nName, description) \
145 extern "C" KDE_EXPORT void KRadioPlugin_LoadLibrary() \
147 KGlobal::locale()->insertCatalog(i18nName); \
150 extern "C" KDE_EXPORT void KRadioPlugin_UnloadLibrary() \
152 KGlobal::locale()->removeCatalog(i18nName); \
155 extern "C" KDE_EXPORT void KRadioPlugin_GetAvailablePlugins(QMap<QString, QString> &info) \
157 info.insert(#class_name, (description)); \
160 extern "C" KDE_EXPORT PluginBase *KRadioPlugin_CreatePlugin(const QString &type, const QString &instanceID, const QString &object_name) \
162 if (type == #class_name) { \
163 return new class_name(instanceID, object_name); \
170 #define PLUGIN_LIBRARY_FUNCTIONS2(class_name1, i18nName, description1, class_name2, description2) \
171 extern "C" KDE_EXPORT void KRadioPlugin_LoadLibrary() \
173 KGlobal::locale()->insertCatalog(i18nName); \
176 extern "C" KDE_EXPORT void KRadioPlugin_UnloadLibrary() \
178 KGlobal::locale()->removeCatalog(i18nName); \
181 extern "C" KDE_EXPORT void KRadioPlugin_GetAvailablePlugins(QMap<QString, QString> &info) \
183 info.insert(#class_name1, (description1)); \
184 info.insert(#class_name2, (description2)); \
187 extern "C" KDE_EXPORT PluginBase *KRadioPlugin_CreatePlugin(const QString &type, const QString &instanceID, const QString &object_name) \
189 if (type == #class_name1) { \
190 return new class_name1(instanceID, object_name); \
191 } else if (type == #class_name2) { \
192 return new class_name2(instanceID, object_name); \