linphone-desktop/plugins/example/src/Plugin.hpp
Julien Wadel 5eba9a5ece Create a plugin system
- Add feedback on errors
- More generic import requests
- Replace storing password by a native popup that ask passwork when needed
- Store passwords in settings file
- Import Feedback in advanced settings tab
- Use English as default translator if no translations are found
- Add OpenSSL packaging for Windows to deal with Qt connections
- Add option to overwrite plugin if exists
- Plugin load/unload managment. Hot-Dynamic load of plugins. Safely test the loaded plugin
- Set plugin data with default value when all GUI items are loaded
- Rewrite folder priority
- Add filename info from pluginloader
- Add plugin versionning
- Specify inputs for saving
- Copy desktop headers in OUTPUT to be used by external projects
- Add a plugins folder auto-managed by cmake
- Remove obsolete contact api submodule
- Clean plugin example
- Add specific behaviour for plugin type : inputs have been splitted by Capability.
- Update save/load to be more generic and add clean function for configurations
- Instantiate Importer List model
- Add IDE integration for plugins
- Set input fields to be dependent of capability
- Change signals interface to take account capability
2021-01-13 21:04:23 +01:00

45 lines
1.5 KiB
C++

/******************************************************************************
*
* Copyright (c) 2017-2020 Belledonne Communications SARL.
*
* This file is part of linphone-desktop
* (see https://www.linphone.org).
*
* 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 3 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. If not, see <http://www.gnu.org/licenses/>.
*
*******************************************************************************/
#ifndef PLUGIN_HPP
#define PLUGIN_HPP
#include <QObject>
#include <QtPlugin>
#include <LinphoneApp/LinphonePlugin.hpp>
#include <LinphoneApp/PluginDataAPI.hpp>
#include <linphone++/core.hh>
//-----------------------------
class QPluginLoader;
class Plugin : public QObject, public LinphonePlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID LinphonePlugin_iid FILE "PluginMetaData.json")
Q_INTERFACES(LinphonePlugin)
public:
Plugin(){}
virtual QString getGUIDescriptionToJson() const;
virtual PluginDataAPI * createInstance(void* core, QPluginLoader * pluginLoader);
};
#endif