populate zeroconf/avahi/bonjour records via json api (#419)

* start of integrating a bonkour service browser

* some experiments

* blub

* bonjour browser via jsonrpc ...

* fix indention

* - make leddevice as component
- extend sysinfo with domain
- add more data for  bonjour browser (e.g. split domain and hostname)

* code cleanup

* add translation

* use component names instead of ids

* fix compile
This commit is contained in:
redPanther
2017-03-21 17:55:46 +01:00
committed by GitHub
parent 9a0e1daf7b
commit 0aa467cceb
25 changed files with 601 additions and 95 deletions

View File

@@ -5,6 +5,7 @@
#include <QResource>
#include <QStringList>
#include <QDir>
#include "hyperion/Hyperion.h"
LedDeviceRegistry LedDevice::_ledDeviceMap = LedDeviceRegistry();
QString LedDevice::_activeDevice = "";
@@ -19,8 +20,11 @@ LedDevice::LedDevice()
, _deviceReady(true)
, _refresh_timer()
, _refresh_timer_interval(0)
, _componentRegistered(false)
, _enabled(true)
{
LedDevice::getLedDeviceSchemas();
qRegisterMetaType<hyperion::Components>("hyperion::Components");
// setup timer
_refresh_timer.setSingleShot(false);
@@ -34,6 +38,16 @@ int LedDevice::open()
return 0;
}
void LedDevice::setEnable(bool enable)
{
if ( _enabled && !enable)
{
switchOff();
}
_enabled = enable;
}
int LedDevice::addToDeviceMap(QString name, LedDeviceCreateFuncType funcPtr)
{
_ledDeviceMap.emplace(name,funcPtr);
@@ -111,12 +125,11 @@ QJsonObject LedDevice::getLedDeviceSchemas()
return result;
}
int LedDevice::setLedValues(const std::vector<ColorRgb>& ledValues)
{
if (!_deviceReady)
if (!_deviceReady || !_enabled)
return -1;
_ledValues = ledValues;
// restart the timer
@@ -142,5 +155,5 @@ void LedDevice::setLedCount(int ledCount)
int LedDevice::rewriteLeds()
{
return write(_ledValues);
return _enabled ? write(_ledValues) : -1;
}