Select Git revision
plugin_manager_interface.cpp
-
Tobias Hildebrandt authored
Change-Id: Id6967f8fd0976caae81e4c951d0d5dc9901b23d3
Tobias Hildebrandt authoredChange-Id: Id6967f8fd0976caae81e4c951d0d5dc9901b23d3
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
plugin_manager_interface.cpp 7.18 KiB
/*
* Copyright (C) 2020-2022 Savoir-faire Linux Inc.
*
* Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
*
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "plugin_manager_interface.h"
#include "manager.h"
#include "plugin/jamipluginmanager.h"
#include "logger.h"
#include <iostream>
namespace DRing {
bool
loadPlugin(const std::string& path)
{
bool status = jami::Manager::instance().getJamiPluginManager().loadPlugin(path);
jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(path, status);
jami::Manager::instance().saveConfig();
return status;
}
bool
unloadPlugin(const std::string& path)
{
bool status = jami::Manager::instance().getJamiPluginManager().unloadPlugin(path);
jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(path, false);
jami::Manager::instance().saveConfig();
return status;
}
std::map<std::string, std::string>
getPluginDetails(const std::string& path)
{
return jami::Manager::instance().getJamiPluginManager().getPluginDetails(path);
}
std::vector<std::map<std::string, std::string>>
getPluginPreferences(const std::string& path, const std::string& accountId)
{
return jami::Manager::instance().getJamiPluginManager().getPluginPreferences(path, accountId);
}
bool
setPluginPreference(const std::string& path,
const std::string& accountId,
const std::string& key,
const std::string& value)
{
return jami::Manager::instance().getJamiPluginManager().setPluginPreference(path,
accountId,
key,
value);
}
std::map<std::string, std::string>
getPluginPreferencesValues(const std::string& path, const std::string& accountId)
{
return jami::Manager::instance().getJamiPluginManager().getPluginPreferencesValuesMap(path,
accountId);
}
bool
resetPluginPreferencesValues(const std::string& path, const std::string& accountId)
{
return jami::Manager::instance()
.getJamiPluginManager()
.resetPluginPreferencesValuesMap(path, accountId);
}
std::vector<std::string>
getInstalledPlugins()
{
return jami::Manager::instance().getJamiPluginManager().getInstalledPlugins();
}
std::vector<std::string>
getLoadedPlugins()
{
return jami::Manager::instance().pluginPreferences.getLoadedPlugins();
}
int
installPlugin(const std::string& jplPath, bool force)
{
return jami::Manager::instance().getJamiPluginManager().installPlugin(jplPath, force);
}
int
uninstallPlugin(const std::string& pluginRootPath)
{
int status = jami::Manager::instance().getJamiPluginManager().uninstallPlugin(pluginRootPath);
jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(pluginRootPath, false);
jami::Manager::instance().saveConfig();
return status;
}
std::vector<std::string>
getCallMediaHandlers()
{
return jami::Manager::instance()
.getJamiPluginManager()
.getCallServicesManager()
.getCallMediaHandlers();
}
std::vector<std::string>
getChatHandlers()
{
return jami::Manager::instance()
.getJamiPluginManager()
.getChatServicesManager()
.getChatHandlers();
}
void
toggleCallMediaHandler(const std::string& mediaHandlerId, const std::string& callId, bool toggle)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getCallServicesManager()
.toggleCallMediaHandler(mediaHandlerId, callId, toggle);
}
void
toggleChatHandler(const std::string& chatHandlerId,
const std::string& accountId,
const std::string& peerId,
bool toggle)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getChatServicesManager()
.toggleChatHandler(chatHandlerId, accountId, peerId, toggle);
}
std::map<std::string, std::string>
getCallMediaHandlerDetails(const std::string& mediaHandlerId)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getCallServicesManager()
.getCallMediaHandlerDetails(mediaHandlerId);
}
std::vector<std::string>
getCallMediaHandlerStatus(const std::string& callId)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getCallServicesManager()
.getCallMediaHandlerStatus(callId);
}
std::map<std::string, std::string>
getChatHandlerDetails(const std::string& chatHandlerId)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getChatServicesManager()
.getChatHandlerDetails(chatHandlerId);
}
std::vector<std::string>
getChatHandlerStatus(const std::string& accountId, const std::string& peerId)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getChatServicesManager()
.getChatHandlerStatus(accountId, peerId);
}
bool
getPluginsEnabled()
{
return jami::Manager::instance().pluginPreferences.getPluginsEnabled();
}
void
setPluginsEnabled(bool state)
{
jami::Manager::instance().pluginPreferences.setPluginsEnabled(state);
for (auto& item : jami::Manager::instance().pluginPreferences.getLoadedPlugins()) {
if (state)
jami::Manager::instance().getJamiPluginManager().loadPlugin(item);
else
jami::Manager::instance().getJamiPluginManager().unloadPlugin(item);
}
jami::Manager::instance().saveConfig();
}
void
sendWebViewMessage(const std::string& pluginId,
const std::string& webViewId,
const std::string& messageId,
const std::string& payload)
{
jami::Manager::instance()
.getJamiPluginManager()
.getWebViewServicesManager()
.sendWebViewMessage(pluginId, webViewId, messageId, payload);
}
std::string
sendWebViewAttach(const std::string& pluginId,
const std::string& accountId,
const std::string& webViewId,
const std::string& action)
{
return jami::Manager::instance()
.getJamiPluginManager()
.getWebViewServicesManager()
.sendWebViewAttach(pluginId, accountId, webViewId, action);
}
void
sendWebViewDetach(const std::string& pluginId, const std::string& webViewId)
{
jami::Manager::instance()
.getJamiPluginManager()
.getWebViewServicesManager()
.sendWebViewDetach(pluginId, webViewId);
}
} // namespace DRing