1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 22:14:45 -04:00

API: added /sdrangel/features (GET) to get the list of available feature plugins

This commit is contained in:
f4exb
2021-08-29 00:48:35 +02:00
parent 0ec7ec414d
commit 8d68fa5231
17 changed files with 1512 additions and 2 deletions
+32
View File
@@ -45,6 +45,7 @@
#include "SWGInstanceConfigResponse.h"
#include "SWGInstanceDevicesResponse.h"
#include "SWGInstanceChannelsResponse.h"
#include "SWGInstanceFeaturesResponse.h"
#include "SWGDeviceListItem.h"
#include "SWGAudioDevices.h"
#include "SWGLocationInformation.h"
@@ -346,6 +347,37 @@ int WebAPIAdapter::instanceChannels(
return 200;
}
int WebAPIAdapter::instanceFeatures(
SWGSDRangel::SWGInstanceFeaturesResponse& response,
SWGSDRangel::SWGErrorResponse& error)
{
(void) error;
response.init();
PluginAPI::FeatureRegistrations *featureRegistrations;
int nbFeatureDevices;
featureRegistrations = m_mainCore->m_pluginManager->getFeatureRegistrations();
nbFeatureDevices = featureRegistrations->size();
response.setFeaturecount(nbFeatureDevices);
QList<SWGSDRangel::SWGFeatureListItem*> *features = response.getFeatures();
for (int i = 0; i < nbFeatureDevices; i++)
{
features->append(new SWGSDRangel::SWGFeatureListItem);
features->back()->init();
PluginInterface *featureInterface = featureRegistrations->at(i).m_plugin;
const PluginDescriptor& pluginDescriptor = featureInterface->getPluginDescriptor();
*features->back()->getVersion() = pluginDescriptor.version;
*features->back()->getName() = pluginDescriptor.displayedName;
*features->back()->getIdUri() = featureRegistrations->at(i).m_featureIdURI;
*features->back()->getId() = featureRegistrations->at(i).m_featureId;
features->back()->setIndex(i);
}
return 200;
}
int WebAPIAdapter::instanceLoggingGet(
SWGSDRangel::SWGLoggingInfo& response,
SWGSDRangel::SWGErrorResponse& error)