From 96e8c295829d1dccf24b34a4579cbfd78c9aeb6f Mon Sep 17 00:00:00 2001 From: redPanther Date: Fri, 2 Dec 2016 12:07:24 +0100 Subject: [PATCH 01/85] refresh time for all devices + schema fixes (#305) * refresh for all :-) remove dups * - integrate refresh leds for all devices - fix schemas for led devices * add minimum for rewrite time * rewriteTime: add missing info in config examples --- config/hyperion.config.json.commented | 4 +- config/hyperion.config.json.default | 3 +- include/leddevice/LedDevice.h | 6 ++- libsrc/hyperion/hyperion.schema.json | 10 +++- libsrc/leddevice/LedDevice.cpp | 7 +++ libsrc/leddevice/LedDeviceFile.cpp | 5 +- libsrc/leddevice/LedDeviceHyperionUsbasp.cpp | 2 + libsrc/leddevice/LedDeviceLightpack.cpp | 1 + libsrc/leddevice/LedDeviceMultiLightpack.cpp | 3 +- libsrc/leddevice/LedDevicePhilipsHue.cpp | 2 + libsrc/leddevice/LedDevicePiBlaster.cpp | 4 +- libsrc/leddevice/LedDeviceRawHID.cpp | 12 ----- libsrc/leddevice/LedDeviceRawHID.h | 5 -- libsrc/leddevice/LedDeviceSchemas.qrc | 14 +++--- libsrc/leddevice/LedDeviceTinkerforge.cpp | 2 + libsrc/leddevice/LedDeviceWS281x.cpp | 2 + libsrc/leddevice/ProviderHID.cpp | 2 + libsrc/leddevice/ProviderRs232.cpp | 4 +- libsrc/leddevice/ProviderSpi.cpp | 4 +- libsrc/leddevice/ProviderUdp.cpp | 2 + libsrc/leddevice/schemas/schema-adalight.json | 10 +--- libsrc/leddevice/schemas/schema-atmo.json | 7 --- ...usbasp.json => schema-hyperionusbasp.json} | 0 ...htpack.json => schema-multilightpack.json} | 4 -- .../leddevice/schemas/schema-piblaster.json | 46 +++++++++++++++++++ libsrc/leddevice/schemas/schema-sedu.json | 7 --- libsrc/leddevice/schemas/schema-tpm2.json | 7 --- libsrc/leddevice/schemas/schema-ws2801.json | 2 +- 28 files changed, 109 insertions(+), 68 deletions(-) rename libsrc/leddevice/schemas/{schema-hyperion-usbasp.json => schema-hyperionusbasp.json} (100%) rename libsrc/leddevice/schemas/{schema-multi-lightpack.json => schema-multilightpack.json} (57%) diff --git a/config/hyperion.config.json.commented b/config/hyperion.config.json.commented index db6ed423..87fadab7 100644 --- a/config/hyperion.config.json.commented +++ b/config/hyperion.config.json.commented @@ -16,13 +16,15 @@ /// APA102, WS2801, P9813, LPD6803, LPD8806, ---------PWM---------, WS2812b (just RPi1), WS281X (RPi1, RPi2, RPi3), --------OTHER--------, PhilipsHUE, AtmoOrb, PiBlaster, Tinkerforge, FadeCandy, RawHID (USB), UDP, SEDU, TPM2, USBASP-WS2801, USBASP-WS2812, ------3rd PARTY------, Adalight, AdalightAPA102, Atmo, Lightpack, Multi-Lightpack, Paintpack, Test (file), None) /// * [device type specific configuration] /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). + /// * 'rewriteTime': in ms. Data is resend to leds, if no new data is available in thistime. 0 means no refresh "device" : { "name" : "MyHyperionConfig", "type" : "file", "output" : "/dev/null", "rate" : 1000000, - "colorOrder" : "rgb" + "colorOrder" : "rgb", + "rewriteTime": 0 }, /// Color manipulation configuration used to tune the output colors to specific surroundings. diff --git a/config/hyperion.config.json.default b/config/hyperion.config.json.default index 11ff20e5..129dc5ea 100644 --- a/config/hyperion.config.json.default +++ b/config/hyperion.config.json.default @@ -10,7 +10,8 @@ "type" : "file", "output" : "/dev/null", "rate" : 1000000, - "colorOrder" : "rgb" + "colorOrder" : "rgb", + "rewriteTime": 0 }, "color" : diff --git a/include/leddevice/LedDevice.h b/include/leddevice/LedDevice.h index d8ecf557..522cd629 100644 --- a/include/leddevice/LedDevice.h +++ b/include/leddevice/LedDevice.h @@ -68,6 +68,7 @@ protected: /// @return Zero on success else negative /// virtual int write(const std::vector& ledValues) = 0; + virtual bool init(const QJsonObject &deviceConfig); /// The common Logger instance for all LedDevices Logger * _log; @@ -86,8 +87,9 @@ protected: /// Timer object which makes sure that led data is written at a minimum rate /// e.g. Adalight device will switch off when it does not receive data at least every 15 seconds - QTimer _refresh_timer; - + QTimer _refresh_timer; + unsigned int _refresh_timer_interval; + protected slots: /// Write the last data to the leds again int rewriteLeds(); diff --git a/libsrc/hyperion/hyperion.schema.json b/libsrc/hyperion/hyperion.schema.json index 1b1524f7..665c45b3 100644 --- a/libsrc/hyperion/hyperion.schema.json +++ b/libsrc/hyperion/hyperion.schema.json @@ -24,7 +24,7 @@ "type" : "object", "title" : "LED Device General", "required" : true, - "defaultProperties": ["name","ledCount","colorOrder"], + "defaultProperties": ["name","ledCount","colorOrder","rewriteTime"], "properties" : { "name" : @@ -52,6 +52,14 @@ "title" : "RGB byte order", "enum" : ["rgb", "bgr", "rbg", "brg", "gbr", "grb"], "propertyOrder" : 3 + }, + "rewriteTime": { + "type": "integer", + "title":"Refresh time", + "default": 5000, + "append" : "ms", + "minimum": 0, + "propertOrder" : 4 } }, "additionalProperties" : true diff --git a/libsrc/leddevice/LedDevice.cpp b/libsrc/leddevice/LedDevice.cpp index 410b326e..6cfb9bc0 100644 --- a/libsrc/leddevice/LedDevice.cpp +++ b/libsrc/leddevice/LedDevice.cpp @@ -18,6 +18,7 @@ LedDevice::LedDevice() , _ledBuffer(0) , _deviceReady(true) , _refresh_timer() + , _refresh_timer_interval(0) { LedDevice::getLedDeviceSchemas(); @@ -49,6 +50,12 @@ void LedDevice::setActiveDevice(std::string dev) _activeDevice = dev; } +bool LedDevice::init(const QJsonObject &deviceConfig) +{ + _refresh_timer.setInterval( deviceConfig["rewriteTime"].toInt(_refresh_timer_interval) ); + return true; +} + QJsonObject LedDevice::getLedDeviceSchemas() { // make sure the resources are loaded (they may be left out after static linking) diff --git a/libsrc/leddevice/LedDeviceFile.cpp b/libsrc/leddevice/LedDeviceFile.cpp index b80109bf..0f8f11b7 100644 --- a/libsrc/leddevice/LedDeviceFile.cpp +++ b/libsrc/leddevice/LedDeviceFile.cpp @@ -21,7 +21,10 @@ bool LedDeviceFile::init(const QJsonObject &deviceConfig) { _ofs.close(); } - + + _refresh_timer_interval = 0; + LedDevice::init(deviceConfig); + std::string fileName = deviceConfig["output"].toString("/dev/null").toStdString(); _ofs.open( fileName.c_str() ); diff --git a/libsrc/leddevice/LedDeviceHyperionUsbasp.cpp b/libsrc/leddevice/LedDeviceHyperionUsbasp.cpp index 08155ee1..542c7b7d 100644 --- a/libsrc/leddevice/LedDeviceHyperionUsbasp.cpp +++ b/libsrc/leddevice/LedDeviceHyperionUsbasp.cpp @@ -39,6 +39,8 @@ LedDeviceHyperionUsbasp::~LedDeviceHyperionUsbasp() bool LedDeviceHyperionUsbasp::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + std::string ledType = deviceConfig["output"].toString("ws2801").toStdString(); if (ledType != "ws2801" && ledType != "ws2812") { diff --git a/libsrc/leddevice/LedDeviceLightpack.cpp b/libsrc/leddevice/LedDeviceLightpack.cpp index 018e08d8..cba6f4fc 100644 --- a/libsrc/leddevice/LedDeviceLightpack.cpp +++ b/libsrc/leddevice/LedDeviceLightpack.cpp @@ -71,6 +71,7 @@ LedDeviceLightpack::~LedDeviceLightpack() bool LedDeviceLightpack::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); _serialNumber = deviceConfig["output"].toString("").toStdString(); return true; diff --git a/libsrc/leddevice/LedDeviceMultiLightpack.cpp b/libsrc/leddevice/LedDeviceMultiLightpack.cpp index cf211c88..bb96553c 100644 --- a/libsrc/leddevice/LedDeviceMultiLightpack.cpp +++ b/libsrc/leddevice/LedDeviceMultiLightpack.cpp @@ -17,10 +17,11 @@ bool compareLightpacks(LedDeviceLightpack * lhs, LedDeviceLightpack * rhs) return lhs->getSerialNumber() < rhs->getSerialNumber(); } -LedDeviceMultiLightpack::LedDeviceMultiLightpack(const QJsonObject &) +LedDeviceMultiLightpack::LedDeviceMultiLightpack(const QJsonObject &deviceConfig) : LedDevice() , _lightpacks() { + LedDevice::init(deviceConfig); } LedDeviceMultiLightpack::~LedDeviceMultiLightpack() diff --git a/libsrc/leddevice/LedDevicePhilipsHue.cpp b/libsrc/leddevice/LedDevicePhilipsHue.cpp index a2b308b0..4f3df391 100755 --- a/libsrc/leddevice/LedDevicePhilipsHue.cpp +++ b/libsrc/leddevice/LedDevicePhilipsHue.cpp @@ -179,6 +179,8 @@ LedDevicePhilipsHue::~LedDevicePhilipsHue() bool LedDevicePhilipsHue::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + host = deviceConfig["output"].toString().toStdString().c_str(); username = deviceConfig["username"].toString("newdeveloper").toStdString().c_str(); switchOffOnBlack = deviceConfig["switchOffOnBlack"].toBool(true); diff --git a/libsrc/leddevice/LedDevicePiBlaster.cpp b/libsrc/leddevice/LedDevicePiBlaster.cpp index 402d7ecd..dca25f9b 100644 --- a/libsrc/leddevice/LedDevicePiBlaster.cpp +++ b/libsrc/leddevice/LedDevicePiBlaster.cpp @@ -42,7 +42,9 @@ LedDevicePiBlaster::~LedDevicePiBlaster() bool LedDevicePiBlaster::init(const QJsonObject &deviceConfig) { - _deviceName = deviceConfig["output"].toString("").toStdString(); + LedDevice::init(deviceConfig); + + _deviceName = deviceConfig["output"].toString("/dev/pi-blaster").toStdString(); QJsonArray gpioMapping = deviceConfig["gpiomap"].toArray(); if (gpioMapping.isEmpty()) diff --git a/libsrc/leddevice/LedDeviceRawHID.cpp b/libsrc/leddevice/LedDeviceRawHID.cpp index e1d48771..a8cf153a 100644 --- a/libsrc/leddevice/LedDeviceRawHID.cpp +++ b/libsrc/leddevice/LedDeviceRawHID.cpp @@ -3,19 +3,10 @@ // Use feature report HID device LedDeviceRawHID::LedDeviceRawHID(const QJsonObject &deviceConfig) : ProviderHID() - , _timer() { ProviderHID::init(deviceConfig); _useFeature = true; _ledBuffer.resize(_ledRGBCount); - - // setup the timer - _timer.setSingleShot(false); - _timer.setInterval(5000); - connect(&_timer, SIGNAL(timeout()), this, SLOT(rewriteLeds())); - - // start the timer - _timer.start(); } LedDevice* LedDeviceRawHID::construct(const QJsonObject &deviceConfig) @@ -25,9 +16,6 @@ LedDevice* LedDeviceRawHID::construct(const QJsonObject &deviceConfig) int LedDeviceRawHID::write(const std::vector & ledValues) { - // restart the timer - _timer.start(); - // write data memcpy(_ledBuffer.data(), ledValues.data(), _ledRGBCount); return writeBytes(_ledBuffer.size(), _ledBuffer.data()); diff --git a/libsrc/leddevice/LedDeviceRawHID.h b/libsrc/leddevice/LedDeviceRawHID.h index f6c31582..f545f8cf 100644 --- a/libsrc/leddevice/LedDeviceRawHID.h +++ b/libsrc/leddevice/LedDeviceRawHID.h @@ -36,9 +36,4 @@ private: /// @return Zero on succes else negative /// virtual int write(const std::vector & ledValues); - - /// Timer object which makes sure that led data is written at a minimum rate - /// The RawHID device will switch off when it does not receive data at least - /// every 15 seconds - QTimer _timer; }; diff --git a/libsrc/leddevice/LedDeviceSchemas.qrc b/libsrc/leddevice/LedDeviceSchemas.qrc index efff45fd..57274af9 100644 --- a/libsrc/leddevice/LedDeviceSchemas.qrc +++ b/libsrc/leddevice/LedDeviceSchemas.qrc @@ -2,31 +2,31 @@ schemas/schema-adalight.json schemas/schema-apa102.json - schemas/schema-atmo.json schemas/schema-atmoorb.json - schemas/schema-e131.json + schemas/schema-atmo.json + schemas/schema-dmx.json schemas/schema-fadecandy.json schemas/schema-file.json - schemas/schema-hyperion-usbasp.json + schemas/schema-hyperionusbasp.json schemas/schema-lightpack.json schemas/schema-lpd6803.json schemas/schema-lpd8806.json - schemas/schema-multi-lightpack.json + schemas/schema-multilightpack.json schemas/schema-p9813.json schemas/schema-paintpack.json schemas/schema-philipshue.json schemas/schema-piblaster.json schemas/schema-rawhid.json schemas/schema-sedu.json - schemas/schema-dmx.json schemas/schema-sk6812spi.json schemas/schema-tinkerforge.json schemas/schema-tpm2net.json - schemas/schema-tpm2.json + schemas/schema-tpm2.json + schemas/schema-e131.json + schemas/schema-h801.json schemas/schema-udpraw.json schemas/schema-ws2801.json schemas/schema-ws2812spi.json schemas/schema-ws281x.json - schemas/schema-h801.json diff --git a/libsrc/leddevice/LedDeviceTinkerforge.cpp b/libsrc/leddevice/LedDeviceTinkerforge.cpp index b251c620..70e94e1f 100644 --- a/libsrc/leddevice/LedDeviceTinkerforge.cpp +++ b/libsrc/leddevice/LedDeviceTinkerforge.cpp @@ -33,6 +33,8 @@ LedDeviceTinkerforge::~LedDeviceTinkerforge() bool LedDeviceTinkerforge::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + _host = deviceConfig["output"].toString("127.0.0.1").toStdString(); _port = deviceConfig["port"].toInt(4223); _uid = deviceConfig["uid"].toString().toStdString(); diff --git a/libsrc/leddevice/LedDeviceWS281x.cpp b/libsrc/leddevice/LedDeviceWS281x.cpp index 2e9ae0ca..2ac10a08 100644 --- a/libsrc/leddevice/LedDeviceWS281x.cpp +++ b/libsrc/leddevice/LedDeviceWS281x.cpp @@ -18,6 +18,8 @@ LedDeviceWS281x::~LedDeviceWS281x() bool LedDeviceWS281x::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + std::string whiteAlgorithm = deviceConfig["white_algorithm"].toString("white_off").toStdString(); _whiteAlgorithm = RGBW::stringToWhiteAlgorithm(whiteAlgorithm); Debug( _log, "whiteAlgorithm : %s", whiteAlgorithm.c_str()); diff --git a/libsrc/leddevice/ProviderHID.cpp b/libsrc/leddevice/ProviderHID.cpp index 97b97781..76be0e70 100644 --- a/libsrc/leddevice/ProviderHID.cpp +++ b/libsrc/leddevice/ProviderHID.cpp @@ -29,6 +29,8 @@ ProviderHID::~ProviderHID() bool ProviderHID::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + _delayAfterConnect_ms = deviceConfig["delayAfterConnect"].toInt(0); auto VendorIdString = deviceConfig["VID"].toString("0x2341").toStdString(); auto ProductIdString = deviceConfig["PID"].toString("0x8036").toStdString(); diff --git a/libsrc/leddevice/ProviderRs232.cpp b/libsrc/leddevice/ProviderRs232.cpp index 3351d713..654dbdc3 100644 --- a/libsrc/leddevice/ProviderRs232.cpp +++ b/libsrc/leddevice/ProviderRs232.cpp @@ -26,10 +26,12 @@ ProviderRs232::ProviderRs232() bool ProviderRs232::init(const QJsonObject &deviceConfig) { closeDevice(); + + LedDevice::init(deviceConfig); + _deviceName = deviceConfig["output"].toString().toStdString(); _baudRate_Hz = deviceConfig["rate"].toInt(); _delayAfterConnect_ms = deviceConfig["delayAfterConnect"].toInt(250); - _refresh_timer.setInterval( deviceConfig["rewriteTime"].toInt(5000) ); return true; } diff --git a/libsrc/leddevice/ProviderSpi.cpp b/libsrc/leddevice/ProviderSpi.cpp index 2047c5ba..7f4eccbb 100644 --- a/libsrc/leddevice/ProviderSpi.cpp +++ b/libsrc/leddevice/ProviderSpi.cpp @@ -33,12 +33,14 @@ ProviderSpi::~ProviderSpi() bool ProviderSpi::init(const QJsonObject &deviceConfig) { + LedDevice::init(deviceConfig); + _deviceName = deviceConfig["output"].toString(QString::fromStdString(_deviceName)).toStdString(); _baudRate_Hz = deviceConfig["rate"].toInt(_baudRate_Hz); _latchTime_ns = deviceConfig["latchtime"].toInt(_latchTime_ns); _spiMode = deviceConfig["spimode"].toInt(_spiMode); _spiDataInvert = deviceConfig["invert"].toBool(_spiDataInvert); - + return true; } diff --git a/libsrc/leddevice/ProviderUdp.cpp b/libsrc/leddevice/ProviderUdp.cpp index 878821f1..59ca7f28 100644 --- a/libsrc/leddevice/ProviderUdp.cpp +++ b/libsrc/leddevice/ProviderUdp.cpp @@ -30,6 +30,8 @@ ProviderUdp::~ProviderUdp() bool ProviderUdp::init(const QJsonObject &deviceConfig, std::string defaultHost) { + LedDevice::init(deviceConfig); + QString host = deviceConfig["host"].toString(QString::fromStdString(defaultHost)); if (_address.setAddress(host) ) diff --git a/libsrc/leddevice/schemas/schema-adalight.json b/libsrc/leddevice/schemas/schema-adalight.json index cbfd3745..adcd77ea 100644 --- a/libsrc/leddevice/schemas/schema-adalight.json +++ b/libsrc/leddevice/schemas/schema-adalight.json @@ -5,6 +5,7 @@ "output": { "type": "string", "title":"Output path", + "default":"/dev/ttyACM0", "propertyOrder" : 1 }, "rate": { @@ -20,19 +21,12 @@ "append" : "ms", "propertyOrder" : 3 }, - "rewriteTime": { - "type": "integer", - "title":"refresh time", - "default": 5000, - "append" : "ms", - "propertyOrder" : 4 - }, "lightberry_apa102_mode": { "type": "boolean", "format": "checkbox", "title":"LightBerry APA102 Mode", "default": false, - "propertyOrder" : 5 + "propertyOrder" : 4 } }, "additionalProperties": true diff --git a/libsrc/leddevice/schemas/schema-atmo.json b/libsrc/leddevice/schemas/schema-atmo.json index 339c5230..8dacc228 100644 --- a/libsrc/leddevice/schemas/schema-atmo.json +++ b/libsrc/leddevice/schemas/schema-atmo.json @@ -19,13 +19,6 @@ "default": 250, "append" : "ms", "propertyOrder" : 3 - }, - "rewriteTime": { - "type": "integer", - "title":"refresh time", - "default": 5000, - "append" : "ms", - "propertyOrder" : 4 } }, "additionalProperties": true diff --git a/libsrc/leddevice/schemas/schema-hyperion-usbasp.json b/libsrc/leddevice/schemas/schema-hyperionusbasp.json similarity index 100% rename from libsrc/leddevice/schemas/schema-hyperion-usbasp.json rename to libsrc/leddevice/schemas/schema-hyperionusbasp.json diff --git a/libsrc/leddevice/schemas/schema-multi-lightpack.json b/libsrc/leddevice/schemas/schema-multilightpack.json similarity index 57% rename from libsrc/leddevice/schemas/schema-multi-lightpack.json rename to libsrc/leddevice/schemas/schema-multilightpack.json index 4834bff2..0bce7984 100644 --- a/libsrc/leddevice/schemas/schema-multi-lightpack.json +++ b/libsrc/leddevice/schemas/schema-multilightpack.json @@ -2,10 +2,6 @@ "type":"object", "required":true, "properties":{ - "output": { - "type": "string", - "title":"Serial number" - } }, "additionalProperties": true } diff --git a/libsrc/leddevice/schemas/schema-piblaster.json b/libsrc/leddevice/schemas/schema-piblaster.json index 0bce7984..81ec1287 100644 --- a/libsrc/leddevice/schemas/schema-piblaster.json +++ b/libsrc/leddevice/schemas/schema-piblaster.json @@ -2,6 +2,52 @@ "type":"object", "required":true, "properties":{ + "output": { + "type": "string", + "title":"Pi-Blaster FiFo", + "default" : "/dev/pi-blaster", + "propertyOrder" : 1 + }, + "gpiomap": { + "type": "array", + "title":"GPIO Map", + "propertyOrder" : 2, + "minimum" : 1, + "maximum" : 27, + "items" : { + "type" : "object", + "required" : true, + "properties" : + { + "gpio" : + { + "type" : "integer", + "title" : "GPIO BCMxx", + "minimum" : 0, + "maximum" : 27, + "required" : true, + "propertyOrder" : 1 + }, + "ledindex" : + { + "type" : "integer", + "title" : "LED index", + "minimum" : 0, + "required" : true, + "propertyOrder" : 2 + }, + "ledcolor" : + { + "type" : "string", + "title" : "Color component", + "enum" : ["r","g","b","w"], + "required" : true, + "propertyOrder" : 3 + } + } + }, + "propertyOrder" : 3 + } }, "additionalProperties": true } diff --git a/libsrc/leddevice/schemas/schema-sedu.json b/libsrc/leddevice/schemas/schema-sedu.json index f559ca99..4755a475 100644 --- a/libsrc/leddevice/schemas/schema-sedu.json +++ b/libsrc/leddevice/schemas/schema-sedu.json @@ -18,13 +18,6 @@ "title":"Delay after connect", "default": 250, "propertyOrder" : 3 - }, - "rewriteTime": { - "type": "integer", - "title":"refresh time", - "default": 5000, - "append" : "ms", - "propertyOrder" : 4 } }, "additionalProperties": true diff --git a/libsrc/leddevice/schemas/schema-tpm2.json b/libsrc/leddevice/schemas/schema-tpm2.json index f559ca99..4755a475 100644 --- a/libsrc/leddevice/schemas/schema-tpm2.json +++ b/libsrc/leddevice/schemas/schema-tpm2.json @@ -18,13 +18,6 @@ "title":"Delay after connect", "default": 250, "propertyOrder" : 3 - }, - "rewriteTime": { - "type": "integer", - "title":"refresh time", - "default": 5000, - "append" : "ms", - "propertyOrder" : 4 } }, "additionalProperties": true diff --git a/libsrc/leddevice/schemas/schema-ws2801.json b/libsrc/leddevice/schemas/schema-ws2801.json index 3ba66ef1..80cf6b1e 100644 --- a/libsrc/leddevice/schemas/schema-ws2801.json +++ b/libsrc/leddevice/schemas/schema-ws2801.json @@ -16,7 +16,7 @@ }, "latchtime": { "type": "integer", - "title":"Latchtime", + "title":"Latch time", "default": 500000, "append" : "ns", "propertyOrder" : 3 From 82a140f5ed0a29b723fd57fe057ff6389be9484a Mon Sep 17 00:00:00 2001 From: redPanther Date: Fri, 2 Dec 2016 22:47:09 +0100 Subject: [PATCH 02/85] update Readme and compile howto (#306) update readme and compile howto --- CompileHowto.md | 134 ++++++++++++++++++++++++++---------------------- README.md | 32 +++++++++--- 2 files changed, 96 insertions(+), 70 deletions(-) diff --git a/CompileHowto.md b/CompileHowto.md index f8366088..0a9155e2 100644 --- a/CompileHowto.md +++ b/CompileHowto.md @@ -1,12 +1,14 @@ # Install the required tools and dependencies +## Debian/Ubuntu + ``` sudo apt-get update sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev ``` -# RPI Only -when you build on the rapberry pi and include the dispmanx grabber (which is the default) +## RPI Only +when you build on the rapberry pi and include the dispmanx grabber (which is the default) you also need the firmware including headers installed. This downloads the firmware from the raspberrypi github and copies the required files to the correct place. The firmware directory can be deleted afterwards if desired. @@ -16,7 +18,45 @@ git clone --depth 1 https://github.com/raspberrypi/firmware.git "$FIRMWARE_DIR" sudo cp -R "$FIRMWARE_DIR/hardfp/opt/" /opt ``` -# Create hyperion directory and checkout the code from github +## Arch +See [AUR](https://aur.archlinux.org/packages/?O=0&SeB=nd&K=hyperion&outdated=&SB=n&SO=a&PP=50&do_Search=Go) for PKGBUILDs on arch. If the PKGBUILD does not work ask questions there please. + + +## OSX +To install on OS X you either need Homebrew or Macport but Homebrew is the recommended way to install the packages. To use Homebrew XCode is required as well, use `brew doctor` to check your install. + +First you need to install the dependencies: +``` +brew install qt5 +brew install cmake +brew install libusb +brew install doxygen +``` + + +# Compiling and installing Hyperion + +### The general quick way (without big comments) +assume your home is /home/pi +```bash +cd git clone --recursive https://github.com/hyperion-project/hyperion.ng.git hyperion +cd hyperion +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release .. +make -j $(nproc) +# optional: install into your system +make install/strip +# to uninstall (not very well tested, please keep that in mind) +make uninstall +# ... or run it from compile directory +bin/hyperiond myconfig.json +# webui is located on localhost:8099 +``` + + +### Download + Create hyperion directory and checkout the code from github You might want to add `--depth 1` to the `git` command if you only want to compile the current source and have no need for the entire git repository @@ -31,32 +71,26 @@ git submodule init git submodule update ``` -# Create and enter the build directory +### Preparations +Change into hyperion folder and create a build folder ``` -mkdir "$HYPERION_DIR/build" -cd "$HYPERION_DIR/build" +cd "$HYPERION_DIR" +mkdir build +cd build ``` -# Generate the make files: +### Generate the make files: -To generate make files on the raspberry pi WITHOUT PWM SUPPORT: +To generate make files with automatic platform detection and default settings: + +This should fit to *RPI, x86, amlogic/wetek* ``` -cmake -DPLATFORM=rpi -DCMAKE_BUILD_TYPE=Release .. +cmake -DCMAKE_BUILD_TYPE=Release .. ``` -To generate make files on the raspberry pi WITH PWM SUPPORT: +*Developers on x86* linux should use: ``` -cmake -DPLATFORM=rpi-pwm -DCMAKE_BUILD_TYPE=Release .. -``` - -To generate make files on a regular x86 or amd64 system: -``` -cmake -DPLATFORM=x86 -DCMAKE_BUILD_TYPE=Release .. -``` - -To generate make files on a amlogic system: -``` -cmake -DPLATFORM=aml -DCMAKE_BUILD_TYPE=Release .. +cmake -DPLATFORM=x86-dev -DCMAKE_BUILD_TYPE=Release .. ``` To use framebuffer instead of dispmanx (for example on the *cubox-i*): @@ -66,24 +100,14 @@ cmake -DENABLE_FB=ON -DCMAKE_BUILD_TYPE=Release .. To generate make files on OS X: -To install on OS X you either need Homebrew or Macport but Homebrew is the recommended way to install the packages. To use Homebrew XCode is required as well, use `brew doctor` to check your install. - -First you need to install the dependencies: -``` -brew install qt5 -brew install cmake -brew install libusb -brew install doxygen -``` - After which you can run cmake with the correct qt5 path: ``` -cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.7.0 .. +cmake -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.7.0 -DCMAKE_BUILD_TYPE=Release .. ``` -# Run make to build Hyperion +### Run make to build Hyperion The `-j $(nproc)` specifies the amount of CPU cores to use. -``` +```bash make -j $(nproc) ``` @@ -91,39 +115,25 @@ On a mac you can use ``sysctl -n hw.ncpu`` to get the number of available CPU co ```bash make -j $(sysctl -n hw.ncpu) -``` - - -#After compile, to remove any stuff not needed for a release version. -``` -strip bin/* -``` -# The binaries are build in "$HYPERION_DIR/build/bin". You could copy those to /usr/bin -``` -sudo cp ./bin/hyperion-remote /usr/bin/ -sudo cp ./bin/hyperiond /usr/bin/ ``` -On a Mac with Sierra you won't be able to copy these files to the ``/usr/bin/`` folder due to Sierra's file protection. You can copy those files to ``/usr/local/bin`` instead. - -```bash -cp ./bin/hyperion-remote /usr/local/bin -cp ./bin/hyperiond /usr/local/bin -``` - -The better way to do this is to use the make install script, which copies all necessary files to ``/usr/local/share/hyperion``: - -```bash -sudo make install -``` - -You can combine the install command with the strip command to install and cleanup in one task: +### Install hyperion into your system +Copy all necessary files to ``/usr/local/share/hyperion`` ```bash sudo make install/strip ``` -# Copy the effect folder (if you did not use the normal installation methode before) -``` -sudo mkdir -p /usr/local/share/hyperion/effects && sudo cp -R ../effects/ /usr/local/share/hyperion/effects/ +If you want to install into another location call this before installing + +```bash +cmake -DCMAKE_INSTALL_PREFIX=/home/pi/apps .. ``` +This will install to ``/home/pi/apps/share/hyperion`` + + +### Integrating hyperion into your system + +... ToDo + + diff --git a/README.md b/README.md index b200a359..e470a46d 100644 --- a/README.md +++ b/README.md @@ -3,22 +3,38 @@ HYPERION This is a pre alpha development repository for the next major version of hyperion -Feel free to join us! We are looking always for people who wants to participate. +-------- +## **Important notice!** +Hyperion.NG is under heavy development. This version is currently _only for development_ purpose. +Please do not use it for your 'productiv' setup! -Current new deps (libs) -QT5 -- sudo apt-get install libqt5core5a libqt5network5 libqt5gui5 libqt5serialport5 libusb-1.0-0 +If you want to use hyperion as 'normal user', please use [current stable version](https://github.com/hyperion-project/hyperion) -zeroconf -- apt-get install libavahi-core-dev libavahi-compat-libdnssd-dev +Besides of that .... Feel free to join us! We are looking always for people who wants to participate. +-------- -94MB free disc space for deps +Hyperion is an opensource 'AmbiLight' implementation with support for many LED devices and video grabbers. -More information can be found on the official Hyperion [Wiki](https://wiki.hyperion-project.org) +The main features of Hyperion are: +* Low CPU load makes it perfect for SoCs like Raspberry Pi +* Json interface which allows easy integration into scripts +* A command line utility to for testing and integration in automated environment +* Priority channels are not coupled to a specific led data provider which means that a provider can post led data and leave without the need to maintain a connection to Hyperion. This is ideal for a remote application (like our Android app). +* Kodi-checker which checks the playing status of Kodi and decides whether or not to capture the screen. +* Black border detector. +* A scriptable (Python) effect engine +* A web ui to configure and remote control hyperion + +More information can be found on the official Hyperion [Wiki](https://wiki.hyperion-project.org) If you need further support please open a topic at the our new forum! [Hyperion webpage/forum](https://www.hyperion-project.org). +## Building + +See [Compilehowto](CompileHowto.txt) and [CrossCompileHowto](CrossCompileHowto.txt). + +## License The source is released under MIT-License (see http://opensource.org/licenses/MIT). From 5b0e401ca594d870a9ede615dc75b13d4b262f79 Mon Sep 17 00:00:00 2001 From: redPanther Date: Sat, 3 Dec 2016 21:11:52 +0100 Subject: [PATCH 03/85] always output latest version of config file to webui (#307) * always output latest version of config file to webui * fix permissions after default config export * tune code * set permissions for exported effects * use qt setperm instead of chmod update effects code style a bit * add fallback when config is not readable --- effects/knight-rider.py | 4 +--- effects/mood-blobs.py | 5 +---- effects/police.py | 20 +++++++++----------- effects/rainbow-mood.py | 14 ++++++-------- effects/rainbow-swirl.py | 2 +- effects/x-mas.py | 4 +--- libsrc/jsonserver/JsonClientConnection.cpp | 11 +++++++++-- src/hyperiond/main.cpp | 19 ++++++++++++++----- 8 files changed, 42 insertions(+), 37 deletions(-) diff --git a/effects/knight-rider.py b/effects/knight-rider.py index 38c8aabd..dfae89c7 100644 --- a/effects/knight-rider.py +++ b/effects/knight-rider.py @@ -1,6 +1,4 @@ -import hyperion -import time -import colorsys +import hyperion, time, colorsys # Get the parameters speed = float(hyperion.args.get('speed', 1.0)) diff --git a/effects/mood-blobs.py b/effects/mood-blobs.py index 45efff85..7165d873 100644 --- a/effects/mood-blobs.py +++ b/effects/mood-blobs.py @@ -1,7 +1,4 @@ -import hyperion -import time -import colorsys -import math +import hyperion, time, colorsys, math from random import random # Get the parameters diff --git a/effects/police.py b/effects/police.py index 2f4133d2..5eb76187 100644 --- a/effects/police.py +++ b/effects/police.py @@ -1,23 +1,21 @@ -import hyperion -import time -import colorsys +import hyperion, time, colorsys # Get the parameters rotationTime = float(hyperion.args.get('rotation-time', 2.0)) -colorOne = hyperion.args.get('color_one', (255,0,0)) -colorTwo = hyperion.args.get('color_two', (0,0,255)) -colorsCount = hyperion.args.get('colors_count', hyperion.ledCount/2) -reverse = bool(hyperion.args.get('reverse', False)) +colorOne = hyperion.args.get('color_one', (255,0,0)) +colorTwo = hyperion.args.get('color_two', (0,0,255)) +colorsCount = hyperion.args.get('colors_count', hyperion.ledCount/2) +reverse = bool(hyperion.args.get('reverse', False)) # Check parameters rotationTime = max(0.1, rotationTime) -colorsCount = min(hyperion.ledCount/2, colorsCount) +colorsCoun t = min(hyperion.ledCount/2, colorsCount) # Initialize the led data -hsv1 = colorsys.rgb_to_hsv(colorOne[0]/255.0, colorOne[1]/255.0, colorOne[2]/255.0) -hsv2 = colorsys.rgb_to_hsv(colorTwo[0]/255.0, colorTwo[1]/255.0, colorTwo[2]/255.0) +hsv1 = colorsys.rgb_to_hsv(colorOne[0]/255.0, colorOne[1]/255.0, colorOne[2]/255.0) +hsv2 = colorsys.rgb_to_hsv(colorTwo[0]/255.0, colorTwo[1]/255.0, colorTwo[2]/255.0) colorBlack = (0,0,0) -ledData = bytearray() +ledData = bytearray() for i in range(hyperion.ledCount): if i <= colorsCount: rgb = colorsys.hsv_to_rgb(hsv1[0], hsv1[1], hsv1[2]) diff --git a/effects/rainbow-mood.py b/effects/rainbow-mood.py index 2ce08edd..2efd216f 100644 --- a/effects/rainbow-mood.py +++ b/effects/rainbow-mood.py @@ -1,17 +1,15 @@ -import hyperion -import time -import colorsys +import hyperion, time, colorsys # Get the parameters rotationTime = float(hyperion.args.get('rotation-time', 30.0)) -brightness = float(hyperion.args.get('brightness', 1.0)) -saturation = float(hyperion.args.get('saturation', 1.0)) -reverse = bool(hyperion.args.get('reverse', False)) +brightness = float(hyperion.args.get('brightness', 1.0)) +saturation = float(hyperion.args.get('saturation', 1.0)) +reverse = bool(hyperion.args.get('reverse', False)) # Check parameters rotationTime = max(0.1, rotationTime) -brightness = max(0.0, min(brightness, 1.0)) -saturation = max(0.0, min(saturation, 1.0)) +brightness = max(0.0, min(brightness, 1.0)) +saturation = max(0.0, min(saturation, 1.0)) # Calculate the sleep time and hue increment sleepTime = 0.1 diff --git a/effects/rainbow-swirl.py b/effects/rainbow-swirl.py index 94f7877a..0cc0a6ab 100644 --- a/effects/rainbow-swirl.py +++ b/effects/rainbow-swirl.py @@ -8,7 +8,7 @@ centerY = float(hyperion.args.get('center_y', 0.5)) sleepTime = max(0.1, rotationTime) / 360 angle = 0 -centerX = int(round(hyperion.imageWidth)*centerX) +centerX = int(round(float(hyperion.imageWidth)*centerX)) centerY = int(round(float(hyperion.imageHeight)*centerY)) increment = -1 if reverse else 1 diff --git a/effects/x-mas.py b/effects/x-mas.py index 697d6f71..23552a6d 100644 --- a/effects/x-mas.py +++ b/effects/x-mas.py @@ -1,6 +1,4 @@ -import hyperion -import time -import colorsys +import hyperion, time, colorsys # Get the parameters sleepTime = float(hyperion.args.get('sleepTime', 1.0)) diff --git a/libsrc/jsonserver/JsonClientConnection.cpp b/libsrc/jsonserver/JsonClientConnection.cpp index 36e3e776..7c4b607e 100644 --- a/libsrc/jsonserver/JsonClientConnection.cpp +++ b/libsrc/jsonserver/JsonClientConnection.cpp @@ -1042,8 +1042,15 @@ void JsonClientConnection::handleConfigGetCommand(const QJsonObject& message, co result["success"] = true; result["command"] = command; result["tan"] = tan; - const QJsonObject & config = _hyperion->getQJsonConfig(); - result["result"] = config; + + try + { + result["result"] = QJsonFactory::readJson(QString::fromStdString(_hyperion->getConfigFileName())); + } + catch(...) + { + result["result"] = _hyperion->getQJsonConfig(); + } // send the result sendMessage(result); diff --git a/src/hyperiond/main.cpp b/src/hyperiond/main.cpp index a744b8b9..6f3af2eb 100644 --- a/src/hyperiond/main.cpp +++ b/src/hyperiond/main.cpp @@ -29,6 +29,8 @@ using namespace commandline; +#define PERM0664 QFileDevice::ReadOwner | QFileDevice::ReadGroup | QFileDevice::ReadOther | QFileDevice::WriteOwner | QFileDevice::WriteGroup + void signal_handler(const int signum) { QCoreApplication::quit(); @@ -128,16 +130,19 @@ int main(int argc, char** argv) { std::cout << "extract to folder: " << std::endl; QStringList filenames = directory.entryList(QStringList() << "*", QDir::Files, QDir::Name | QDir::IgnoreCase); + QString destFileName; foreach (const QString & filename, filenames) { - if (QFile::exists(destDir.dirName()+"/"+filename)) + destFileName = destDir.dirName()+"/"+filename; + if (QFile::exists(destFileName)) { - QFile::remove(destDir.dirName()+"/"+filename); + QFile::remove(destFileName); } std::cout << "Extract: " << filename.toStdString() << " ... "; - if (QFile::copy(QString(":/effects/")+filename, destDir.dirName()+"/"+filename)) + if (QFile::copy(QString(":/effects/")+filename, destFileName)) { + QFile::setPermissions(destFileName, PERM0664 ); std::cout << "ok" << std::endl; } else @@ -176,11 +181,15 @@ int main(int argc, char** argv) QDir().mkpath(FileUtils::getDirName(exportConfigFileTarget)); if (QFile::copy(":/hyperion_default.config",exportConfigFileTarget)) { + QFile::setPermissions(exportConfigFileTarget, PERM0664 ); Info(log, "export complete."); if (exitAfterexportDefaultConfig) return 0; } - Error(log, "can not export to %s",exportConfigFileTarget.toLocal8Bit().constData()); - if (exitAfterexportDefaultConfig) return 1; + else + { + Error(log, "error while export to %s",exportConfigFileTarget.toLocal8Bit().constData()); + if (exitAfterexportDefaultConfig) return 1; + } } if (configFiles.size() == 0) From 3124bb8bf10e4dec66517008f9cb3f39d1e80a89 Mon Sep 17 00:00:00 2001 From: redPanther Date: Sun, 4 Dec 2016 14:28:38 +0100 Subject: [PATCH 04/85] optimize adalight firmware (#308) --- assets/firmware/arduino/adalight/adalight.ino | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/assets/firmware/arduino/adalight/adalight.ino b/assets/firmware/arduino/adalight/adalight.ino index 6f8b0869..c9e6c1b0 100644 --- a/assets/firmware/arduino/adalight/adalight.ino +++ b/assets/firmware/arduino/adalight/adalight.ino @@ -9,12 +9,11 @@ set following values to your needs **************************************/ -// Number of leds in your strip. set to 1 and ANALOG_OUTPUT_ENABLED to true to activate analog only +// Number of leds in your strip. set to "1" and ANALOG_OUTPUT_ENABLED to "true" to activate analog only #define NUM_LEDS 100 - -#define SPI_LEDS false // connection type. Set "true" for 4 wire and "false" for 3 Wire stripes. -#define LED_TYPE WS2812B // type of your led controller, possible values, see below +// type of your led controller, possible values, see below +#define LED_TYPE WS2812B // 3 wire (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852 // S2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT @@ -22,8 +21,10 @@ // For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN. // For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed -#define DATA_PIN 6 -#define CLOCK_PIN 13 + +// DATA_PIN, or DATA_PIN, CLOCK_PIN +#define LED_PINS 6 // 3 wire leds +//#define LED_PINS 6, 13 // 4 wire leds #define COLOR_ORDER GRB // colororder of the stripe, set RGB in hyperion @@ -33,7 +34,7 @@ // ATTENTION this pin config is default for atmega328 based arduinos, others might work to // if you have flickering analog leds this might be caused by unsynced pwm signals // try other pins is more or less the only thing that helps -#define ANALOG_OUTPUT_ENABLED true +#define ANALOG_OUTPUT_ENABLED false #define ANALOG_MODE ANALOG_MODE_LAST_LED // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED #define ANALOG_GROUND_PIN 8 // additional ground pin to make wiring a bit easier #define ANALOG_RED_PIN 9 @@ -48,7 +49,8 @@ #define BRIGHTNESS 255 // maximum brightness 0-255 #define DITHER_MODE BINARY_DITHER // BINARY_DITHER or DISABLE_DITHER #define COLOR_TEMPERATURE CRGB(255,255,255) // RGB value describing the color temperature -#define COLOR_CORRECTION CRGB(255,255,255) // RGB value describing the color correction +#define COLOR_CORRECTION TypicalLEDStrip // predefined fastled color correction +//#define COLOR_CORRECTION CRGB(255,255,255) // or RGB value describing the color correction // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf) #define serialRate 460800 // use 115200 for ftdi based boards @@ -133,13 +135,9 @@ void setup() { } #if NUM_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false - #if SPI_LEDS == true - FastLED.addLeds(leds, ledCount); - #else - FastLED.addLeds(leds, ledCount); - #endif + FastLED.addLeds(leds, ledCount); #endif - + // color adjustments FastLED.setBrightness ( BRIGHTNESS ); FastLED.setTemperature( COLOR_TEMPERATURE ); From 8d55154164e7c199ffada4d7295684025ea6dda0 Mon Sep 17 00:00:00 2001 From: brindosch Date: Sun, 4 Dec 2016 19:32:23 +0100 Subject: [PATCH 05/85] Transit translation system (#309) * update schemas * update schemas * update schemas * schema update * update translation * upd --- assets/webconfig/content/colors.html | 6 +- assets/webconfig/content/connection_lost.html | 20 +- assets/webconfig/content/dashboard.html | 25 +- assets/webconfig/content/effects.html | 6 +- .../content/effects_configurator.html | 22 +- assets/webconfig/content/grabber.html | 6 +- assets/webconfig/content/kodiconf.html | 6 +- assets/webconfig/content/leds.html | 132 ++-- assets/webconfig/content/logging.html | 20 +- assets/webconfig/content/network.html | 7 +- assets/webconfig/content/remote.html | 16 +- assets/webconfig/content/support.html | 72 +- assets/webconfig/content/update.html | 10 +- assets/webconfig/i18n/de.json | 409 +++++++++++ assets/webconfig/i18n/en.json | 409 +++++++++++ assets/webconfig/i18n/qqq.json | 47 ++ assets/webconfig/index.html | 76 +- assets/webconfig/js/content_colors.js | 1 + assets/webconfig/js/content_effects.js | 2 +- .../js/content_effectsconfigurator.js | 69 +- assets/webconfig/js/content_grabber.js | 1 + assets/webconfig/js/content_index.js | 14 +- assets/webconfig/js/content_kodi.js | 1 + assets/webconfig/js/content_leds.js | 36 +- assets/webconfig/js/content_logging.js | 27 +- assets/webconfig/js/content_network.js | 1 + assets/webconfig/js/content_remote.js | 9 +- assets/webconfig/js/hyperion.js | 22 - assets/webconfig/js/lib/jquery-lang.js | 675 ------------------ .../webconfig/js/lib/jquery.i18n.emitter.js | 168 +++++ .../webconfig/js/lib/jquery.i18n.fallbacks.js | 186 +++++ assets/webconfig/js/lib/jquery.i18n.js | 287 ++++++++ .../webconfig/js/lib/jquery.i18n.language.js | 472 ++++++++++++ .../js/lib/jquery.i18n.messagestore.js | 125 ++++ assets/webconfig/js/lib/jquery.i18n.parser.js | 309 ++++++++ assets/webconfig/js/lib/js.cookie.js | 145 ---- assets/webconfig/js/lib/jsoneditor.js | 319 ++------- assets/webconfig/js/ui_utils.js | 4 + assets/webconfig/lang/de.json | 167 ----- effects/schema/fade.schema.json | 10 +- effects/schema/knight-rider.schema.json | 8 +- effects/schema/light-clock.schema.json | 4 +- effects/schema/mood-blobs.schema.json | 35 +- effects/schema/police.schema.json | 14 +- effects/schema/rainbow-mood.schema.json | 10 +- effects/schema/rainbow-swirl.schema.json | 12 +- effects/schema/random.schema.json | 10 +- effects/schema/running_dots.schema.json | 8 +- effects/schema/shutdown.schema.json | 10 +- effects/schema/snake.schema.json | 12 +- effects/schema/sparks.schema.json | 17 +- effects/schema/strobe.schema.json | 8 +- effects/schema/traces.schema.json | 4 +- effects/schema/x-mas.schema.json | 4 +- libsrc/hyperion/hyperion.schema.json | 249 ++++--- libsrc/leddevice/LedDevice.cpp | 2 +- libsrc/leddevice/schemas/schema-adalight.json | 9 +- libsrc/leddevice/schemas/schema-apa102.json | 7 +- libsrc/leddevice/schemas/schema-atmo.json | 6 +- libsrc/leddevice/schemas/schema-atmoorb.json | 13 +- libsrc/leddevice/schemas/schema-dmx.json | 13 +- libsrc/leddevice/schemas/schema-e131.json | 11 +- .../leddevice/schemas/schema-fadecandy.json | 16 +- libsrc/leddevice/schemas/schema-file.json | 2 +- libsrc/leddevice/schemas/schema-h801.json | 9 +- .../leddevice/schemas/schema-lightpack.json | 2 +- libsrc/leddevice/schemas/schema-lpd6803.json | 6 +- libsrc/leddevice/schemas/schema-lpd8806.json | 6 +- libsrc/leddevice/schemas/schema-p9813.json | 6 +- .../leddevice/schemas/schema-paintpack.json | 6 +- .../leddevice/schemas/schema-philipshue.json | 14 +- .../leddevice/schemas/schema-piblaster.json | 10 +- libsrc/leddevice/schemas/schema-rawhid.json | 6 +- libsrc/leddevice/schemas/schema-sedu.json | 6 +- .../leddevice/schemas/schema-sk6812spi.json | 9 +- .../leddevice/schemas/schema-tinkerforge.json | 8 +- libsrc/leddevice/schemas/schema-tpm2.json | 6 +- libsrc/leddevice/schemas/schema-tpm2net.json | 9 +- libsrc/leddevice/schemas/schema-udpraw.json | 4 +- libsrc/leddevice/schemas/schema-ws2801.json | 21 +- .../leddevice/schemas/schema-ws2812spi.json | 7 +- libsrc/leddevice/schemas/schema-ws281x.json | 12 +- 82 files changed, 3120 insertions(+), 1850 deletions(-) create mode 100644 assets/webconfig/i18n/de.json create mode 100644 assets/webconfig/i18n/en.json create mode 100644 assets/webconfig/i18n/qqq.json delete mode 100644 assets/webconfig/js/lib/jquery-lang.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.emitter.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.fallbacks.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.language.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.messagestore.js create mode 100644 assets/webconfig/js/lib/jquery.i18n.parser.js delete mode 100644 assets/webconfig/js/lib/js.cookie.js delete mode 100644 assets/webconfig/lang/de.json diff --git a/assets/webconfig/content/colors.html b/assets/webconfig/content/colors.html index 81af1370..30ff1e4b 100644 --- a/assets/webconfig/content/colors.html +++ b/assets/webconfig/content/colors.html @@ -2,14 +2,14 @@
- +
-

Color calibration, smoothing (color transistions) and detection of blackbars.

+

Color calibration, smoothing (color transistions) and detection of blackbars.


- +
diff --git a/assets/webconfig/content/connection_lost.html b/assets/webconfig/content/connection_lost.html index bf4927af..d5b8f2db 100644 --- a/assets/webconfig/content/connection_lost.html +++ b/assets/webconfig/content/connection_lost.html @@ -1,28 +1,28 @@ -
+
Redefine ambient light!
-

Lost connection to Hyperion service!

+

Lost connection to Hyperion service!


-

Possible reasons:

-

- Hyperion restarts

-

- You perform an update

-

- Hyperion isn't running

+

Possible reasons:

+

- Hyperion restarts

+

- You perform an update

+

- Hyperion isn't running


-

This page will be automatically refreshed.

-

We reconnect again after Hyperion is available.

- If not, click me or reload the page +

This page will be automatically refreshed.

+

We reconnect again after Hyperion is available.

+ If not, click me or reload the page
-
\ No newline at end of file diff --git a/assets/webconfig/content/effects.html b/assets/webconfig/content/effects.html index 019d17f9..1bcd7b6d 100644 --- a/assets/webconfig/content/effects.html +++ b/assets/webconfig/content/effects.html @@ -1,14 +1,14 @@
- +
-

Setting up a booteffect/color that is visible after Hyperion startup. Configure a background effect/color which is active, when all capture sources are disabled (also temporarily via Kodi Watch)

+

Setting up a booteffect/color that is visible after Hyperion startup. Configure a background effect/color which is active, when all capture sources are disabled (also temporarily via Kodi Watch)


- +
diff --git a/assets/webconfig/content/effects_configurator.html b/assets/webconfig/content/effects_configurator.html index 998d7248..7b3562bc 100644 --- a/assets/webconfig/content/effects_configurator.html +++ b/assets/webconfig/content/effects_configurator.html @@ -1,38 +1,38 @@
- +
-

Create out of the base effects new effects that are tuned to your liking. Depending on Effect there are options like color, speed, direction and more available.

+

Create out of the base effects new effects that are tuned to your liking. Depending on Effect there are options like color, speed, direction and more available.


- +
-
- +
@@ -55,7 +55,7 @@ @@ -102,60 +102,60 @@
- +
-
LEDs
+
LEDs
- +
-
LEDs
+
LEDs
- +
-
LEDs
+
LEDs
- +
-
LEDs
+
LEDs
- +
-
LEDs
+
LEDs
- +
- +
- +
@@ -165,37 +165,37 @@
- +
-
%
+
%
- +
-
%
+
%
- +
-
%
+
%
- +
-
%
+
%
@@ -204,7 +204,7 @@
@@ -212,76 +212,76 @@
- +
-
LEDs
+
LEDs
- +
-
LEDs
+
LEDs
- +
- +
-

This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.

-

Don't forget to save!

+

This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.

+

Don't forget to save!

@@ -290,17 +290,17 @@
-

LED Layout preview

+

LED Layout preview

-
No preview requested
+
No preview requested
diff --git a/assets/webconfig/content/logging.html b/assets/webconfig/content/logging.html index cdcfc5b6..73f335ed 100644 --- a/assets/webconfig/content/logging.html +++ b/assets/webconfig/content/logging.html @@ -1,17 +1,19 @@ -
+
- +
-

log messages.

+

Area to check log messages, depending on loglevel setting you see more or less.


- -
-
-
-
- +
+ +
+
+				
+
+ +
diff --git a/assets/webconfig/content/network.html b/assets/webconfig/content/network.html index 8a813b07..d34fd2f1 100644 --- a/assets/webconfig/content/network.html +++ b/assets/webconfig/content/network.html @@ -2,15 +2,14 @@
- +
-

All network based settings could you find here.

+

All network based settings are listed here.


-
- +
diff --git a/assets/webconfig/content/remote.html b/assets/webconfig/content/remote.html index baf86305..9df56c4b 100644 --- a/assets/webconfig/content/remote.html +++ b/assets/webconfig/content/remote.html @@ -1,7 +1,7 @@
- +
-

Set an effect/color. You could also select a source manually. The Components control give the opportunity to enable/disable components of Hyprion during runtime. All changes you made here are lost after a restart.

+

Set an effect/color. You could also select a source manually. The Components control give the opportunity to enable/disable components of Hyprion during runtime. All changes you made here are lost after a restart.


@@ -10,15 +10,15 @@
-
Colors/Effects
+
Colors/Effects
- Color: + Color:
-
Effect:
+
Effect:
- +
@@ -31,7 +31,7 @@
-
Source selection
+
Source selection

Hyperion uses a priority system to select a source. Everything you set has a priority (Effect/Color/Platform capture/USB capture and network sources). By default, Hyperion select sources depending on priority (lowest number reflects the current active source). Now you have the opportunity to select sources on your own.

Schema: NameOfSource(priority)

@@ -42,7 +42,7 @@
-
Components control
+
Components control
diff --git a/assets/webconfig/content/support.html b/assets/webconfig/content/support.html index 187e85eb..e0057f41 100644 --- a/assets/webconfig/content/support.html +++ b/assets/webconfig/content/support.html @@ -1,113 +1,117 @@

-

Donate or bookmark our affiliate links

+

Donate or use our affiliate links

    -
  1. Click on the appropriate link of your country
  2. -
  3. Everything you buy (doesn’t matter what) we get a small fee based on your turnover
  4. -
  5. You ALWAYS pay the same price, there is absolutely no difference. Try it out!
  6. +
  7. Click on the appropriate link of your country
  8. +
  9. Everything you buy (doesn’t matter what) we get a small fee based on your turnover
  10. +
  11. You ALWAYS pay the same price, there is absolutely no difference. Try it out!
- +

Bitcoin

-

Address:

+

Address:

1GGZbsT6fH3cGq25H5HS2PfisPfDnffSJR

-
+
+ + diff --git a/assets/webconfig/content/update.html b/assets/webconfig/content/update.html index c85ff832..6b9dad85 100644 --- a/assets/webconfig/content/update.html +++ b/assets/webconfig/content/update.html @@ -1,9 +1,9 @@
- +
-

This page gives you an overview of all Hyperion versions available. On top you could update or downgrade your version of Hyperion whenever you want. Sorted from newest to oldest

+

Overview about all available Hyperion versions. On top you could update or downgrade your version of Hyperion whenever you want. Sorted from newest to oldest


@@ -15,9 +15,11 @@
diff --git a/assets/webconfig/i18n/de.json b/assets/webconfig/i18n/de.json new file mode 100644 index 00000000..a3d89e39 --- /dev/null +++ b/assets/webconfig/i18n/de.json @@ -0,0 +1,409 @@ +{ + "@metadata": { + "authors": [ + "brindosch" + ], + "project" : "Hyperion WebUI", + "locale": "de", + "last-updated": "2016-11-30", + "message-documentation": "qqq" + }, + "general_country_de" : "Deutschland", + "general_country_us" : "Amerika", + "general_country_uk" : "England", + "general_country_fr" : "Frankreich", + "general_country_es" : "Spanien", + "general_country_it" : "Italien", + "general_country_nl" : "Niederlande", + "general_speech_de" : "Deutsch", + "general_speech_en" : "Englisch", + "general_comp_SMOOTHING" : "Glättung", + "general_comp_BLACKBORDER" : "Schwarze Balken Erkennung", + "general_comp_KODICHECKER" : "Kodi Überwachung", + "general_comp_FORWARDER" : "JSON/PROTO Weiterleitung", + "general_comp_UDPLISTENER" : "UDP Listener", + "general_comp_BOBLIGHTSERVER" : "Boblight Server", + "general_comp_GRABBER" : "Plattform Aufnahme", + "general_comp_V4L" : "USB Aufnahme", + "general_button_savesettings" : "Einstellungen speichern", + "dashboard_label_intro" : "Das Dashboard zeigt dir Informationen zum Systemstatus, ob Updates verfügbar sind, den Komponentenstatus sowie die letzten Blog-Posts vom Hyperion Team.", + "dashboard_infobox_label_title" : "Information", + "dashboard_infobox_label_currenthyp" : "Deine Hyperion Version:", + "dashboard_infobox_label_latesthyp" : "Aktuellste Hyperion Version:", + "dashboard_infobox_label_leddevice" : "LED Typ:", + "dashboard_infobox_label_device" : "Systeminformation:", + "dashboard_infobox_message_updatewarning" : "Eine aktuellere Version von Hyperion ist verfügbar! (V$1)", + "dashboard_infobox_message_updatesuccess" : "Du nutzt die aktuellste Version von Hyperion.", + "dashboard_componentbox_label_title" : "Komponenten Status", + "dashboard_componentbox_label_comp" : "Komponente", + "dashboard_componentbox_label_status" : "Status", + "dashboard_newsbox_label_title" : "Die letzten Blogposts", + "dashboard_alert_message_confedit" : "Deine Hyperion Konfiguration wurde verändert. Um die Änderungen anzuwenden, starte Hyperion neu.", + "dashboard_alert_button_restarthyerion" : "Hyperion neustarten", + "main_menu_dashboard_token" : "Dashboard", + "main_menu_configuration_token" : "Konfiguration", + "main_menu_leds_conf_token" : "LED Hardware", + "main_menu_grabber_conf_token" : "Aufnahme Hardware", + "main_menu_effect_conf_token" : "Effekte", + "main_menu_colors_conf_token" : "Bildverarbeitung", + "main_menu_kodiwatch_token" : "Kodi Überwachung", + "main_menu_network_conf_token" : "Netzwerk", + "main_menu_remotecontrol_token" : "Fernbedienung", + "main_menu_effectsconfigurator_token" : "Effekt Konfigurator", + "main_menu_support_token" : "Hilfe", + "main_menu_update_token" : "Update", + "main_menu_system_token" : "System", + "main_menu_input_selection_token" : "Eingabeauswahl", + "main_menu_logging_token" : "Protokoll", + "conf_effects_label_intro" : "Stelle einen Effekt oder Farbe ein, der beim Starten sichtbar sein soll. Stelle einen Hintergrundeffekt/Farbe ein der erst sichtbar wird, wenn alle Bildquellen abgeschaltet sind (Das gilt ebenfalls für temporäres abschalten mithilfe der Kodi Überwachung).", + "conf_leds_label_intro" : "Der LED Hardware bereich ermöglicht eine Vielzahl von Ausgabemöglichkeiten über Raspberry Pi GPIO, USB oder Netzwerk. Erstelle ein LED Layout das zu deinem Aufbau passt und schon kann es losgehen!", + "conf_leds_nav_label_ledcontroller" : "LED Steuerung", + "conf_leds_nav_label_ledlayout" : "LED Layout", + "conf_leds_nav_label_ledtesting" : "LED Test", + "conf_leds_contr_label_contrtype" : "Steuerungstyp:", + "conf_leds_optgroup_RPiSPI" : "RPi SPI", + "conf_leds_optgroup_RPiPWM" : "RPi PWM", + "conf_leds_optgroup_RPiGPIO" : "RPi GPIO", + "conf_leds_optgroup_network" : "Netzwerk", + "conf_leds_optgroup_usb" : "USB", + "conf_leds_optgroup_debug" : "Debug", + "conf_leds_layout_frame" : "Klassisches Layout (Rahmen)", + "conf_leds_layout_matrix" : "Matrix Layout (LED Wand)", + "conf_leds_layout_generatedconf" : "Generierte/Aktuelle LED Konfiguration", + "conf_leds_layout_button_savelay" : "Speichere Layout", + "conf_leds_layout_button_updsim" : "Aktualisiere Vorschau", + "conf_leds_layout_peview" : "LED Layout Vorschau", + "conf_leds_layout_advanced" : "Erweiterte Optionen", + "conf_leds_layout_preview_originCL" : "Erstellt von: Klassisches Layout (Rahmen)", + "conf_leds_layout_preview_originTEXT" : "Erstellt von: Textfeld", + "conf_leds_layout_preview_originMA" : "Erstellt von: Matrix Layout (LED Wand)", + "conf_leds_layout_preview_totalleds" : "LEDs gesamt: $1", + "conf_leds_layout_preview_empty" : "Es wurde keine Vorschau angefordert", + "conf_leds_layout_cl_top" : "Oben", + "conf_leds_layout_cl_bottom" : "Unten", + "conf_leds_layout_cl_left" : "Links", + "conf_leds_layout_cl_right" : "Rechts", + "conf_leds_layout_cl_gaglength" : "Lückenlänge", + "conf_leds_layout_cl_gappos" : "Lückenposition", + "conf_leds_layout_cl_inppos" : "Einspeisepunkt", + "conf_leds_layout_cl_reversdir" : "Richtung umkehren", + "conf_leds_layout_cl_hleddepth" : "Horizontale LED Tiefe", + "conf_leds_layout_cl_vleddepth" : "Vertikale LED Tiefe", + "conf_leds_layout_cl_generate" : "Generiere LED Konfiguartion", + "conf_leds_layout_cl_edgegap" : "Rahmenabstand", + "conf_leds_layout_cl_cornergap" : "Eckabstand", + "conf_leds_layout_ma_horiz" : "Horizontal", + "conf_leds_layout_ma_vert" : "Vertikal", + "conf_leds_layout_ma_cabling" : "Verkabelung", + "conf_leds_layout_ma_optsnake" : "Schlange", + "conf_leds_layout_ma_optparallel" : "Parallel", + "conf_leds_layout_ma_order" : "Reihenfolge", + "conf_leds_layout_ma_opthoriz" : "Horizontal", + "conf_leds_layout_ma_optvert" : "Vertikal", + "conf_leds_layout_ma_position" : "Einpeisepunkt", + "conf_leds_layout_ma_opttopleft" : "Oben links", + "conf_leds_layout_ma_opttopright" : "Oben rechts", + "conf_leds_layout_ma_optbottomleft" : "Unten links", + "conf_leds_layout_ma_optbottomright" : "Unten rechts", + "conf_leds_layout_textf1" : "Das Textfeld zeigt dir dein aktuell geladenes Layout, sofern du kein neues Layout mit den Optionen oben erstellt hast. Optional kann man die Werte hier weiter bearbeiten.", + "conf_leds_layout_textf2" : "Vergiss nicht zu speichern!", + "conf_leds_test_button_toggleleds" : "LEDs", + "conf_leds_test_button_togglelednumber" : "LED Nummerierung", + "conf_leds_test_button_toggleliveleds" : "LED Echtzeitansicht", + "conf_grabber_label_intro" : "Hyperion unterstützt 2 Hauptarten wie Bilder aufgenommen werden können. Zum Einen die Plattform Aufnahme, die sich direkt am System bedient auf dem Hyperion läuft (beste Qualität). Zum Anderen die USB Aufnahme, die sich an einem angeschlossenen Gerät bedient die benötigten Informationen für die Verarbeitung und Ausgabe zu erhalten (Mehr Konfigurationsaufwand und Kalibrierung)", + "conf_colors_label_intro" : "Neben der Farbkalibrierung, gehört auch die Glättung (sanfte Farbübergänge) und die Erkennung von störenden (schwarzen) Balken zur Bildverarbeitung.", + "conf_network_label_intro" : "Alle Einstellungen zu Ports, der Weiterleitung von JSON/PROTO und Boblight sowie UDP Listener.", + "conf_kodi_label_title" : "Kodi Überwachung", + "conf_kodi_label_intro" : "Die Kodi Überwachung ermöglicht es dir abhängig von dem Kodi Status dein ambient light an oder abzuschalten. Dies ist nicht limitiert auf das selbe Gerät. Du kannst jedes Kodi in deinem lokalen Netzwerk überwachen lassen.", + "conf_logging_label_intro" : "Überprüfe die Meldungen im Prokotoll um zu erfahren was Hyperion gerade beschäftigt. Je nach eingestellter Protokoll-Stufe siehst du mehr oder weniger Informationen.", + "conf_logging_btn_pbupload" : "Protokoll hochladen", + "conf_logging_btn_autoscroll" : "Automatisch scrollen", + "remote_label_intro" : "Die Fernbedienung ermöglicht dir während Hyperion läuft Farbe/Effekte zu starten/setzen, aber auch eine Quelle manuell festzulegen. Die Komponentensteuerung ermöglicht es dir gezielt Teile von Hyperion zu aktivieren/deaktivieren. Beachte, dass nach einem Neustart die hier durchgeführten Aktionen wieder zurückgesetzt werden.", + "remote_colors_label_coloreffect" : "Farbe/Effekt:", + "remote_colors_button_reset" : "Farbe/Effekt zurücksetzen", + "remote_colors_label_color" : "Farbe:", + "remote_effects_label_effects" : "Effekt:", + "remote_input_label_sourceselection" : "Quellenauswahl", + "remote_input_label_autoselect" : "Automatische Auswahl", + "remote_components_label_components" : "Komponentensteuerung", + "remote_optgroup_usreffets" : "Benutzer Effekte", + "remote_optgroup_syseffets" : "Mitgelieferte Effekte", + + "remote_effects_intro" : "Die Effekt-Fernbedienung ermöglicht es dir Effekte zu starten für Demonstrations- oder Testzwecke. Vergessse nicht den Effekt wieder zu stoppen, wenn du fertig bist.", + "remote_components_intro" : "Die Komponenten-Fenbedienung ermöglicht es dir Komponenten von Hyperion zu starten und stoppen. Beachte: Dies ist nur temporär und geht nach einem Neustart verloren. Möchtest du dauerhaft Komponenten aktivieren/deaktivieren benutze die Konfigurationsseiten.", + + "hue_button_create_user_token" : "Benutzer anlegen", + "hue_press_link_modal" : "Bitte Link Taste auf der Hue Bridge drücken.", + "hue_failure_connection_token" : "Connection Timeout. Bitte drücke die Taste rechtzeitig.", + "hue_button_pair" : "Verbinden", + "hue_btn_setup_helper" : "Hue Bridge Einrichtungshilfe", + "hue_failure_ip_token" : "Bitte überprüfe deine IP Adresse.", + "hue_label_username" : "Benutzername:", + "hue_label_ip" : "Hue Bridge IP:", + "effectsconfigurator_label_intro" : "Erstelle auf Grundlage der Basiseffekte neue Effekt die nach deinen Wünschen angepasst sind. Je nach Effekt stehen Optionen wie Farbe, Geschwindigkeit, oder Richtung und vieles mehr zur Auswahl.", + "effectsconfigurator_label_chooseeff" : "Basis-Effekt auswählen:", + "effectsconfigurator_button_saveeffect" : "Effekt speichern", + "effectsconfigurator_label_effectname" : "Effektname:", + "effectsconfigurator_button_starttest" : "Starte Effekttest", + "effectsconfigurator_button_stoptest" : "Stoppe Effekttest", + "effectsconfigurator_button_conttest" : "Fortlaufender Test", + "effectsconfigurator_label_deleffect" : "Effekt entfernen:", + "effectsconfigurator_button_deleffect" : "Effekt entfernen", + "support_label_title" : "Unterstütze Hyperion", + "support_label_intro" : "Hyperion ist ein kostenloses Open Source Projekt und ein kleines Team arbeitet an seiner Weiterentwicklung. Darum benötigen wir DEINE Unterstützung um den Ball weiter rollen zu lassen und um weiter in bessere Infrastruktur und Weiterentwicklung investieren zu können.", + "support_label_spreadtheword" : "Weitersagen!", + "support_label_fbtext" : "Teile Inhalte in Facebook und halte dich und andere auf dem Laufenden", + "support_label_twtext" : "Nutze die 140 Zeichen und bleibe auf dem Laufenden auch auf Twitter", + "support_label_ggtext" : "Platziere uns in deinen Kreisen auf Google+", + "support_label_yttext" : "Gelangweilt von Bildern? Werfe einen Blick auf unsere Youtube Videos", + "support_label_donate" : "Spende oder nutze unsere Affiliate Links", + "support_label_affinstr1" : "Klicke auf den Link deines Landes", + "support_label_affinstr2" : "Kaufe wie gewohnt ein, abhängig von deinem Umsatz bekommen wir eine kleine Provision", + "support_label_affinstr3" : "Du zahlst immer den selben Preis. Teste es!", + "support_label_btctext" : "Adresse:", + "support_label_donationpp" : "Spende:", + "support_label_webrestitle" : "Informationsquellen und Hilfe", + "support_label_webpagetitle" : "Internetseite", + "support_label_webpagetext" : "Das Zuhause von Hyperion", + "support_label_wikititle" : "Wiki", + "support_label_wikitext" : "Von A bis Z - Alles wissenwerte zu Hyperion", + "support_label_forumtitle" : "Forum", + "support_label_forumtext" : "Diskussion und Hilfestellung von der Community", + "update_label_intro" : "Diese Seite zeigt dir alle verfügbaren Versionen von Hyperion, du kannst nach Belieben eine aktuellere Version installieren oder eine Ältere. Die aktuellsten Versionen befinden sich immer oben.", + "update_label_description" : "Beschreibung:", + "update_button_install" : "Installieren", + "update_button_changelog" : "Zeige Änderungsprotokoll", + "update_label_type" : "Art:", + "update_versreminder" : "Deine Version: $1", + "info_conlost_label_title" : "Verbindung zum Hyperion Service unterbrochen!", + "info_conlost_label_reason" : "Mögliche Ursachen:", + "info_conlost_label_reason1" : "- Hyperion startet neu", + "info_conlost_label_reason2" : "- Ein Update wird durchgeführt", + "info_conlost_label_reason3" : "- Hyperion wird nicht mehr ausgeführt", + "info_conlost_label_autorecon" : "Du wirst verbunden, sobald Hyperion wieder verfügbar ist", + "info_conlost_label_autorefresh" : "Diese Seite wird automatisch aktualisiert", + "info_conlost_label_reload" : "Wenn nicht, klicke hier", + "infoDialog_leds_gap_title" : "Lücke verloren!", + "infoDialog_leds_gap_text" : "Deine LED Lücke/Position ist größer als die Anzahl der LEDs, verringere die Lückenposition und/oder Lückenlänge!", + "InfoDialog_leds_validfail_title" : "JSON Überprüfung fehlgeschlagen!", + "infoDialog_effconf_deleted_title" : "Effekt entnfernt!", + "infoDialog_effconf_deleted_text" : "Der Effekt $1 wurde erfolgreich entfernt!", + "infoDialog_effconf_created_title" : "Effekt erstellt!", + "infoDialog_effconf_created_text" : "Der Effekt $1 wurde erfolgreich erstellt!", + "infoDialog_effconf_invalidvalue_title" : "Fehlerhafte Werte!", + "infoDialog_effconf_invalidvalue_text" : "Es wurden unzulässige Werte eingetragen, überprüfe das rot markierte Feld und versuche es erneut!", + "edt_dev_general_heading_title" : "Allgemeine Einstellungen", + "edt_dev_general_name_title" : "Name der Konfiguration", + "edt_dev_general_ledCount_title" : "Anzahl Hardware LEDs", + "edt_dev_general_colorOrder_title" : "RGB Byte Reihenfolge", + "edt_dev_general_rewriteTime_title" : "Aktualisierungszeit", + "edt_dev_spec_header_title" : "Spezifische Einstellungen", + "edt_dev_spec_baudrate_title" : "Baudrate", + "edt_dev_spec_spipath_title" : "SPI Pfad", + "edt_dev_spec_invert_title" : "Invertiere Signal", + "edt_dev_spec_multicastGroup_title" : "Multicast Gruppe", + "edt_dev_spec_numberOfLeds_title" : "Anzahl der LEDs", + "edt_dev_spec_port_title" : "Port", + "edt_dev_spec_orbIds_title" : "Orb ID(s)", + "edt_dev_spec_useOrbSmoothing_title" : "Nutze Orb Glättung", + "edt_dev_spec_targetIp_title" : "Ziel IP", + "edt_dev_spec_targetIpHost_title" : "Ziel IP/hostname", + "edt_dev_spec_outputPath_title" : "Ausgabepfad", + "edt_dev_spec_delayAfterConnect_title" : "Verzögerung nach Verbindung", + "edt_dev_spec_FCsetConfig_title" : "Wende fadecandy Konfiguration an", + "edt_dev_spec_FCmanualControl_title" : "Manuelle Steuerung der fadecandy LEDs", + "edt_dev_spec_FCledToOn_title" : "Fadecandy LEDs set to on", + "edt_dev_spec_interpolation_title" : "Interpolation", + "edt_dev_spec_dithering_title" : "Dithering", + "edt_dev_spec_gamma_title" : "Gamma", + "edt_dev_spec_whitepoint_title" : "Weißpunkt", + "edt_dev_spec_username_title" : "Benutzername", + "edt_dev_spec_lightid_title" : "Lampen ID(s)", + "edt_dev_spec_lightid_itemtitle" : "ID", + "edt_dev_spec_transistionTime_title" : "Übergangszeit", + "edt_dev_spec_switchOffOnBlack_title" : "Aus bei schwarz", + "edt_dev_spec_uid_title" : "UID", + "edt_dev_spec_intervall_title" : "Intervall", + "edt_dev_spec_latchtime_title" : "Sperrzeit", + "edt_dev_spec_maxPacket_title" : "Paketgröße", + "edt_dev_spec_serial_title" : "Seriennummer", + "edt_dev_spec_vid_title" : "VID", + "edt_dev_spec_pid_title" : "PID", + "edt_dev_spec_cid_title" : "CID", + "edt_dev_spec_LBap102Mode_title" : "LightBerry APA102 Modus", + "edt_dev_spec_universe_title" : "Universum", + "edt_dev_spec_whiteLedAlgor_title" : "Weiß Algorithmus", + "edt_dev_spec_useRgbwProtocol_title" : "Nutze RGBW Protokoll", + "edt_dev_spec_maximumLedCount_title" : "Maximale Anzahl LEDs", + "edt_dev_spec_gpioNumber_title" : "GPIO Nummer", + "edt_dev_spec_gpioMap_title" : "GPIO Zuweisung", + "edt_dev_spec_PBFiFo_title" : "Pi-Blaster FiFo", + "edt_dev_spec_gpioBcm_title" : "GPIO Pin", + "edt_dev_spec_ledIndex_title" : "LED index", + "edt_dev_spec_colorComponent_title" : "Farbkomponente", + "edt_conf_general_enable_title" : "Aktiviert", + "edt_conf_general_priority_title" : "Priorität", + "edt_conf_general_port_title" : "Port", + "edt_conf_color_heading_title" : "Farbkalibrierung", + "edt_conf_smooth_heading_title" : "Glättung", + "edt_conf_smooth_type_title" : "Art", + "edt_conf_smooth_time_ms_title" : "Zeit", + "edt_conf_smooth_updateFrequency_title" : "Aktualisierungsfrequenz", + "edt_conf_smooth_updateDelay_title" : "Aktualisierungsverzögerung", + "edt_conf_smooth_continuousOutput_title" : "Fortlaufende Ausgabe", + "edt_conf_v4l2_heading_title" : "USB Aufnahme", + "edt_conf_v4l2_device_title" : "Gerät", + "edt_conf_v4l2_input_title" : "Eingang", + "edt_conf_v4l2_standard_title" : "Videoformat", + "edt_conf_v4l2_width_title" : "Breite", + "edt_conf_v4l2_height_title" : "Höhe", + "edt_conf_v4l2_frameDecimation_title" : "Bildverkleinerung", + "edt_conf_v4l2_sizeDecimation_title" : "Größenänderung", + "edt_conf_v4l2_mode_title" : "Modus", + "edt_conf_v4l2_useKodiChecker_title" : "Nutze Kodi Überwachung", + "edt_conf_v4l2_cropLeft_title" : "Entferne links", + "edt_conf_v4l2_cropRight_title" : "Entferne rechts", + "edt_conf_v4l2_cropTop_title" : "Entferne oben", + "edt_conf_v4l2_cropBottom_title" : "Entferne unten", + "edt_conf_v4l2_redSignalThreshold_title" : "Rote Signalschwelle", + "edt_conf_v4l2_greenSignalThreshold_title" : "Grüne Signalschwelle", + "edt_conf_v4l2_blueSignalThreshold_title" : "Blaue Signalschwelle", + "edt_conf_fg_heading_title" : "Plattform Aufnahme", + "edt_conf_fg_type_title" : "Typ", + "edt_conf_fg_frequency_Hz_title" : "Aufnahmefrequenz", + "edt_conf_fg_horizontalPixelDecimation_title" : "Horizontale Pixelreduzierung", + "edt_conf_fg_useXGetImage_title" : "Nutze XGetImage", + "edt_conf_fg_verticalPixelDecimation_title" : "Vertikale Pixelreduzierung", + "edt_conf_fg_device_title" : "Device", + "edt_conf_fg_display_title" : "Display", + "edt_conf_bb_heading_title" : "Schwarze Balken Erkennung", + "edt_conf_bb_threshold_title" : "Schwelle", + "edt_conf_bb_unknownFrameCnt_title" : "unknownFrameCnt", + "edt_conf_bb_borderFrameCnt_title" : "borderFrameCnt", + "edt_conf_bb_maxInconsistentCnt_title" : "maxInconsistentCn", + "edt_conf_bb_blurRemoveCnt_title" : "blurRemoveCnt", + "edt_conf_bb_mode_title" : "Modus", + "edt_conf_kodic_heading_title" : "Kodi Überwachung", + "edt_conf_kodic_kodiAddress_title" : "Kodi IP Adresse", + "edt_conf_kodic_kodiTcpPort_title" : "Kodi TCP Port", + "edt_conf_kodic_grabVideo_title" : "Video", + "edt_conf_kodic_grabPictures_title" : "Bilder", + "edt_conf_kodic_grabAudio_title" : "Audio", + "edt_conf_kodic_grabMenu_title" : "Menü", + "edt_conf_kodic_grabPause_title" : "Pause", + "edt_conf_kodic_grabScreensaver_title" : "Bildschirmschoner", + "edt_conf_kodic_enable3DDetection_title" : "Erkenne 3D", + "edt_conf_fw_heading_title" : "Weiterleitung", + "edt_conf_fw_json_title" : "Liste von JSON zielen", + "edt_conf_fw_json_itemtitle" : "JSON Ziel", + "edt_conf_fw_proto_title" : "Liste von PROTO zielen", + "edt_conf_fw_proto_itemtitle" : "PROTO Ziel", + "edt_conf_js_heading_title" : "JSON Server", + "edt_conf_ps_heading_title" : "PROTO Server", + "edt_conf_bobls_heading_title" : "Boblight Server", + "edt_conf_udpl_heading_title" : "UDP Listener", + "edt_conf_udpl_address_title" : "Addresse", + "edt_conf_udpl_timeout_title" : "Zeitüberschreitung", + "edt_conf_udpl_shared_title" : "Gemeinsam genutzt", + "edt_conf_webc_heading_title" : "Web Konfiguration", + "edt_conf_webc_docroot_title" : "Verzeichnis", + "edt_conf_effp_paths_title" : "Effekt Pfad(e)", + "edt_conf_effp_paths_itemtitle" : "Pfad", + "edt_conf_effp_disable_title" : "Deaktivierte Effekte", + "edt_conf_effp_disable_itemtitle" : "Effekt", + "edt_conf_log_heading_title" : "Protokoll", + "edt_conf_log_level_title" : "Protokollstufe", + "edt_eff_police_header_title" : "Polizei", + "edt_eff_fade_header_title" : "Farbübergang", + "edt_eff_rainbowmood_header_title" : "Regenbogen", + "edt_eff_knightrider_header_title" : "Knight Rider", + "edt_eff_lightclock_header_title" : "Lichtuhr", + "edt_eff_moodblobs_header_title" : "Stimmungskugeln", + "edt_eff_rainbowswirl_header_title" : "Regenbogenwirbel", + "edt_eff_random_header_title" : "Zufällig", + "edt_eff_runningdots_header_title" : "Rennende Punkte", + "edt_eff_systemshutdown_header_title" : "Herunterfahren", + "edt_eff_snake_header_title" : "Schlange", + "edt_eff_sparks_header_title" : "Funken", + "edt_eff_storbe_header_title" : "Stroboskop", + "edt_eff_traces_header_title" : "Farbspuren", + "edt_eff_x-mas_header_title" : "Weihnachten", + "edt_eff_color_title" : "Farbe", + "edt_eff_colorrandom_title" : "Zufällige Farbe", + "edt_eff_colorone_title" : "Farbe eins", + "edt_eff_colortwo_title" : "Farbe zwei", + "edt_eff_colorcount_title" : "Farblänge", + "edt_eff_rotationtime_title" : "Rotationszeit", + "edt_eff_sleeptime_title" : "Schlafzeit", + "edt_eff_reversedirection_title" : "Richtung umkehren", + "edt_eff_fadetime_title" : "Übergangszeit", + "edt_eff_colorstart_title" : "Farbe Start", + "edt_eff_colorend_title" : "Farbe Ende", + "edt_eff_speed_title" : "Geschwindigkeit", + "edt_eff_fadefactor_title" : "Verblass Faktor", + "edt_eff_showseconds_title" : "Zeige Sekunden", + "edt_eff_blobcount_title" : "Kugelanzahl", + "edt_eff_huechange_title" : "Farbänderung", + "edt_eff_basecolorchange_title" : "Basisfarben verändern", + "edt_eff_basecolorchangerate_title" : "BF Geschwindigkeit", + "edt_eff_basecolorrangeleft_title" : "BF Bereich links", + "edt_eff_basecolorrangeright_title" : "BF Bereich rechts", + "edt_eff_brightness_title" : "Helligkeit", + "edt_eff_centerx_title" : "Mittelpunkt X-Achse", + "edt_eff_centery_title" : "Mittelpunkt Y-Achse", + "edt_eff_saturation_title" : "Sättigung", + "edt_eff_colorevel_title" : "Farbstufe", + "edt_eff_whitelevel_title" : "Weißstufe", + "edt_eff_alarmcolor_title" : "Alarm Farbe", + "edt_eff_postcolor_title" : "Startfarbe", + "edt_eff_enableshutdown_title" : "Echtes herunterfahren", + "edt_eff_length_title" : "Länge", + "edt_eff_frequency_title" : "Frequenz", + "edt_append_ns" : "ns", + "edt_append_ms" : "ms", + "edt_append_s" : "s", + "edt_append_hz" : "Hz", + "edt_append_pixel" : "Pixel", + "edt_append_percent" : "%", + "edt_append_degree" : "°", + "edt_append_sdegree" : "s/grad", + "edt_append_leds" : "LEDs", + "edt_msg_error_notset" : "Attribut muss gesetzt sein", + "edt_msg_error_notempty" : "Eingabe benötigt", + "edt_msg_error_enum" : "Die Eingabe muss einem der aufgeführten Werte entsprechen", + "edt_msg_error_anyOf" : "Die Eingabe muss gegen mindestens eines der gegebenen Schemata validiert werden können", + "edt_msg_error_oneOf" : "Die Eingabe muss gegen genau eines der gegebenen Schemata validiert werden können. Momentan können $1 Schemata validiert werden", + "edt_msg_error_not" : "Die Eingabe darf nicht gegen das gegebene Schema validiert werden können", + "edt_msg_error_type_union" : "Die Eingabe muss einem der gegebenen Typen entsprechen", + "edt_msg_error_type" : "Die Eingabe muss vom Typ $1 sein", + "edt_msg_error_disallow_union" : "Die Eingabe darf nicht einem der gegebenen Werte entsprechen", + "edt_msg_error_disallow" : "Die Eingabe muss vom Typ $1 sein", + "edt_msg_error_multipleOf" : "Die Eingabe muss ein Vielfaches von $1 sein", + "edt_msg_error_maximum_excl" : "Der Wert muss kleiner als $1 sein", + "edt_msg_error_maximum_incl" : "Der Wert darf höchstens $1 sein", + "edt_msg_error_minimum_excl" : "Der Wert muss größer als $1 sein", + "edt_msg_error_minimum_incl" : "Der Wert muss mindestens $1 sein", + "edt_msg_error_maxLength" : "Die Eingabe darf höchstens $1 Zeichen lang sein", + "edt_msg_error_minLength" : "Die Eingabe muss mindestens $ Zeichen lang sein", + "edt_msg_error_pattern" : "Die Eingabe muss dem gegebenen Muster entsprechen", + "edt_msg_error_additionalItems" : "In diesem Feld sind keine weiteren Elemente erlaubt", + "edt_msg_error_maxItems" : "Das Feld darf höchstens $1 Element(e) beinhalten", + "edt_msg_error_minItems" : "Das Feld muss mindestens $1 Element(e) beinhalten", + "edt_msg_error_uniqueItems" : "Das Feld darf nur einzigartige Elemente beinhalten", + "edt_msg_error_maxProperties" : "Das Objekt darf höchstens $1 Attribute habe", + "edt_msg_error_minProperties" : "Das Objekt muss mindestens $1 Attribute haben", + "edt_msg_error_required" : "Das Objekt beinhaltet nicht das benötigte Attribut '$1'", + "edt_msg_error_additional_properties" : "Es sind keine weiteren Attribute erlaubt. $1 muss entfernt werden", + "edt_msg_error_dependency" : "Das Attribut $1 ist zwingend erforderlich", + "edt_msg_button_delete_all" : "Alle", + "edt_msg_button_delete_all_title" : "Alle löschen", + "edt_msg_button_delete_last" : "Letzes $1-Element", + "edt_msg_button_delete_last_title" : "Letzes $1-Element löschen", + "edt_msg_button_add_row_title" : "$1 Hinzufügen", + "edt_msg_button_move_down_title" : "Nach unten verschieben", + "edt_msg_button_move_up_title" : "Nach oben verschieben", + "edt_msg_button_delete_row_title" : "$1 Löschen", + "edt_msg_button_delete_row_title_short" : "Löschen", + "edt_msg_button_collapse" : "Einklappen", + "edt_msg_button_expand" : "Ausklappen" +} \ No newline at end of file diff --git a/assets/webconfig/i18n/en.json b/assets/webconfig/i18n/en.json new file mode 100644 index 00000000..1e3a31cb --- /dev/null +++ b/assets/webconfig/i18n/en.json @@ -0,0 +1,409 @@ +{ + "@metadata": { + "authors": [ + "brindosch" + ], + "project" : "Hyperion WebUI", + "locale": "en", + "last-updated": "2016-11-30", + "message-documentation": "qqq.json" + }, + "general_country_de" : "Germany", + "general_country_us" : "United States", + "general_country_uk" : "United Kingdom", + "general_country_fr" : "France", + "general_country_es" : "Spain", + "general_country_it" : "Italy", + "general_country_nl" : "Netherlands", + "general_speech_de" : "German", + "general_speech_en" : "English", + "general_comp_SMOOTHING" : "Smoothing", + "general_comp_BLACKBORDER" : "Blackbar Detection", + "general_comp_KODICHECKER" : "Kodi Watch", + "general_comp_FORWARDER" : "JSON/PROTO Forward", + "general_comp_UDPLISTENER" : "UDP Listener", + "general_comp_BOBLIGHTSERVER" : "Boblight Server", + "general_comp_GRABBER" : "Platform Capture", + "general_comp_V4L" : "USB Capture", + "general_button_savesettings" : "Save settings", + "dashboard_label_intro" : "The dashboard give you a quick overview about the status of Hyperion and show you the latest news of the Hyperion Blog.", + "dashboard_infobox_label_title" : "Information", + "dashboard_infobox_label_currenthyp" : "Your Hyperion version:", + "dashboard_infobox_label_latesthyp" : "Latest Hyperion version:", + "dashboard_infobox_label_leddevice" : "LED Controller:", + "dashboard_infobox_label_device" : "System:", + "dashboard_infobox_message_updatewarning" : "A newer version of Hyperion is available! (V$1)", + "dashboard_infobox_message_updatesuccess" : "You run the latest version of Hyperion.", + "dashboard_componentbox_label_title" : "Components status", + "dashboard_componentbox_label_comp" : "Component", + "dashboard_componentbox_label_status" : "Status", + "dashboard_newsbox_label_title" : "Latest Blog posts", + "dashboard_alert_message_confedit" : "Your Hyperion configuration has been modified. To apply it, restart Hyperion.", + "dashboard_alert_button_restarthyerion" : "Restart Hyperion", + "main_menu_dashboard_token" : "Dashboard", + "main_menu_configuration_token" : "Configuration", + "main_menu_leds_conf_token" : "LED Hardware", + "main_menu_grabber_conf_token" : "Capturing Hardware", + "main_menu_effect_conf_token" : "Effects", + "main_menu_colors_conf_token" : "Image Processing", + "main_menu_kodiwatch_token" : "Kodi Watch", + "main_menu_network_conf_token" : "Network Services", + "main_menu_remotecontrol_token" : "Remote Control", + "main_menu_effectsconfigurator_token" : "Effects Configurator", + "main_menu_support_token" : "Support", + "main_menu_update_token" : "Update", + "main_menu_system_token" : "System", + "main_menu_input_selection_token" : "Eingabeauswahl", + "main_menu_logging_token" : "Log", + "conf_effects_label_intro" : "Setting up a booteffect/color that is visible after Hyperion startup. Configure a background effect/color which is active, when all capture sources are disabled (also temporarily via Kodi Watch)", + "conf_leds_label_intro" : "The LED controller of youre choice is your way to output the led data via Raspberry PI GPIO, USB or network! Choose one, define your led layout and enjoy the light!", + "conf_leds_nav_label_ledcontroller" : "LED Controller", + "conf_leds_nav_label_ledlayout" : "LED Layout", + "conf_leds_nav_label_ledtesting" : "LED Testing", + "conf_leds_contr_label_contrtype" : "Controller type:", + "conf_leds_optgroup_RPiSPI" : "RPi SPI", + "conf_leds_optgroup_RPiPWM" : "RPi PWM", + "conf_leds_optgroup_RPiGPIO" : "RPi GPIO", + "conf_leds_optgroup_network" : "Network", + "conf_leds_optgroup_usb" : "USB", + "conf_leds_optgroup_debug" : "Debug", + "conf_leds_layout_frame" : "Classic Layout (LED Frame)", + "conf_leds_layout_matrix" : "Matrix Layout (LED Wall)", + "conf_leds_layout_generatedconf" : "Generated/Actual LED Configuration", + "conf_leds_layout_button_savelay" : "Save Layout", + "conf_leds_layout_button_updsim" : "Update Preview", + "conf_leds_layout_peview" : "LED Layout Preview", + "conf_leds_layout_advanced" : "Advanced Settings", + "conf_leds_layout_preview_originCL" : "Created from: Classic Layout (LED Frame)", + "conf_leds_layout_preview_originTEXT" : "Created from: Textfield", + "conf_leds_layout_preview_originMA" : "Created from: Matrix Layout(LED wall)", + "conf_leds_layout_preview_totalleds" : "Totel LEDs: $1", + "conf_leds_layout_preview_empty" : "Es wurde keine Vorschau angefordert", + "conf_leds_layout_cl_top" : "Top", + "conf_leds_layout_cl_bottom" : "Bottom", + "conf_leds_layout_cl_left" : "Left", + "conf_leds_layout_cl_right" : "Right", + "conf_leds_layout_cl_gaglength" : "Gap length", + "conf_leds_layout_cl_gappos" : "gap position", + "conf_leds_layout_cl_inppos" : "Input position", + "conf_leds_layout_cl_reversdir" : "Reverse direction", + "conf_leds_layout_cl_hleddepth" : "Horizontal LED depth", + "conf_leds_layout_cl_vleddepth" : "Vertical LED depth", + "conf_leds_layout_cl_generate" : "Generate LED configuration", + "conf_leds_layout_cl_edgegap" : "Edge Gap", + "conf_leds_layout_cl_cornergap" : "Corner Gap", + "conf_leds_layout_ma_horiz" : "Horizontal", + "conf_leds_layout_ma_vert" : "Vertical", + "conf_leds_layout_ma_cabling" : "Cabling", + "conf_leds_layout_ma_optsnake" : "Snake", + "conf_leds_layout_ma_optparallel" : "Parallel", + "conf_leds_layout_ma_order" : "Order", + "conf_leds_layout_ma_opthoriz" : "Horizontal", + "conf_leds_layout_ma_optvert" : "Vertical", + "conf_leds_layout_ma_position" : "Input", + "conf_leds_layout_ma_opttopleft" : "Top Left", + "conf_leds_layout_ma_opttopright" : "Top right", + "conf_leds_layout_ma_optbottomleft" : "Bottom left", + "conf_leds_layout_ma_optbottomright" : "Bottom right", + "conf_leds_layout_textf1" : "This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.", + "conf_leds_layout_textf2" : "Don't forget to save!", + "conf_leds_test_button_toggleleds" : "toggle leds", + "conf_leds_test_button_togglelednumber" : "toggle led numbers", + "conf_leds_test_button_toggleliveleds" : "toggle live leds", + "conf_grabber_label_intro" : "Hyperion supports two ways on how to get captured pictures for processing and output. The platform capture: internal at the device you are running Hyperion on (best qualitiy) and the USB Capture which gathers from a connected device the necessary pictures (more calibration work and configuration).", + "conf_colors_label_intro" : "Color calibration, smoothing (color transistions) and detection of blackbars.", + "conf_network_label_intro" : "All network based settings are listed here.", + "conf_kodi_label_title" : "Kodi Watch", + "conf_kodi_label_intro" : "The Kodi Watcher enables you to enable and disable the screencapture depending on Kodi state. This is not limited to the same machine, you could observe also a Kodi on any other device at your network.", + "conf_logging_label_intro" : "Area to check log messages, depending on loglevel setting you see more or less information.", + "conf_logging_btn_pbupload" : "Upload log", + "conf_logging_btn_autoscroll" : "Auto scrolling", + "remote_label_intro" : "Set an effect/color. You could also select a source manually. The Components control give the opportunity to enable/disable components of Hyprion during runtime. All changes you made here are lost after a restart.", + "remote_colors_label_coloreffect" : "Colors/Effects", + "remote_colors_button_reset" : "Reset Color/Effect", + "remote_colors_label_color" : "Color:", + "remote_effects_label_effects" : "Effect:", + "remote_input_label_sourceselection" : "Source Selection", + "remote_input_label_autoselect" : "Auto Selection", + "remote_components_label_components" : "Components control", + "remote_optgroup_usreffets" : "User Effects", + "remote_optgroup_syseffets" : "Provided Effects", + + "remote_effects_intro" : "Die Effekt-Fernbedienung ermglicht es dir Effekte zu starten fr Demonstrations- oder Testzwecke. Vergessse nicht den Effekt wieder zu stoppen, wenn du fertig bist.", + "remote_components_intro" : "Die Komponenten-Fenbedienung ermglicht es dir Komponenten von Hyperion zu starten und stoppen. Beachte: Dies ist nur temporr und geht nach einem Neustart verloren. Mchtest du dauerhaft Komponenten aktivieren/deaktivieren benutze die Konfigurationsseiten.", + + "hue_button_create_user_token" : "Create User", + "hue_press_link_modal" : "Please press link button on the Hue Bridge.", + "hue_failure_connection_token" : "Connection Timeout. Please press the button in time.", + "hue_button_pair" : "Connect", + "hue_btn_setup_helper" : "Hue Bridge Setup Helper", + "hue_failure_ip_token" : "Please check your IP Address.", + "hue_label_username" : "Hue Bridge Username", + "hue_label_ip" : "Hue Bridge IP:", + "effectsconfigurator_label_intro" : "Create out of the base effects new effects that are tuned to your liking. Depending on Effect there are options like color, speed, direction and more available.", + "effectsconfigurator_label_chooseeff" : "Choose Base-Effect:", + "effectsconfigurator_button_saveeffect" : "Save Effect", + "effectsconfigurator_label_effectname" : "Effect name:", + "effectsconfigurator_button_starttest" : "Start Effecttest", + "effectsconfigurator_button_stoptest" : "Stop Effecttest", + "effectsconfigurator_button_conttest" : "Toggle continuous testing", + "effectsconfigurator_label_deleffect" : "Delete Effect::", + "effectsconfigurator_button_deleffect" : "Delete Effect", + "support_label_title" : "Support Hyperion", + "support_label_intro" : "Hyperion is a free non-profit software. A small team is working on it and this is why we need your steady support.", + "support_label_spreadtheword" : "Spread the word", + "support_label_fbtext" : "Share our Hyperion Facebook page and get a notice when new updates are released", + "support_label_twtext" : "Share and follow on Twitter, be always up to date with latest post about the Hyperion development", + "support_label_ggtext" : "Circle us on Google +!", + "support_label_yttext" : "Bored from pictures? Checkout our Youtube channel!", + "support_label_donate" : "Donate or use our affiliate links", + "support_label_affinstr1" : "Click on the appropriate link of your country", + "support_label_affinstr2" : "Everything you buy (doesnt matter what) we get a small fee based on your turnover", + "support_label_affinstr3" : "You ALWAYS pay the same price, there is absolutely no difference. Try it out!", + "support_label_btctext" : "Address:", + "support_label_donationpp" : "Donation:", + "support_label_webrestitle" : "Information and help ressources", + "support_label_webpagetitle" : "Webpage", + "support_label_webpagetext" : "Home of Hyperion", + "support_label_wikititle" : "Wiki", + "support_label_wikitext" : "The A to Z source for almost everything Hyperion related", + "support_label_forumtitle" : "Forum", + "support_label_forumtext" : "Showcases, discussions, help and more", + "update_label_intro" : "Overview about all available Hyperion versions. On top you could update or downgrade your version of Hyperion whenever you want. Sorted from newest to oldest", + "update_label_description" : "Description:", + "update_button_install" : "Install", + "update_button_changelog" : "Full changelog", + "update_label_type" : "Type:", + "update_versreminder" : "Your version: $1", + "info_conlost_label_title" : "Lost connection to Hyperion service!", + "info_conlost_label_reason" : "Possible reasons:", + "info_conlost_label_reason1" : "- Hyperion restarts", + "info_conlost_label_reason2" : "- You perform an update", + "info_conlost_label_reason3" : "- Hyperion isn't running", + "info_conlost_label_autorecon" : "We reconnect again after Hyperion is available.", + "info_conlost_label_autorefresh" : "This page will be automatically refreshed.", + "info_conlost_label_reload" : "If not, click me or reload the page", + "infoDialog_leds_gap_title" : "GAP LOST IN SPACE!", + "infoDialog_leds_gap_text" : "Your gap length/position is higher than your LED count, lower the gap length or gap position!", + "InfoDialog_leds_validfail_title" : "JSON Validation failed!", + "infoDialog_effconf_deleted_title" : "Effect deleted!", + "infoDialog_effconf_deleted_text" : "The effect $1 has been deleted successfully!", + "infoDialog_effconf_created_title" : "Effect created!", + "infoDialog_effconf_created_text" : "The effect $1 has been created successfully!", + "infoDialog_effconf_invalidvalue_title" : "INVALID VALUE(S)", + "infoDialog_effconf_invalidvalue_text" : "Please check for red marked input(s) and try again!", + "edt_dev_general_heading_title" : "General Settings", + "edt_dev_general_name_title" : "Configuration name", + "edt_dev_general_ledCount_title" : "Count of all hardware LEDs", + "edt_dev_general_colorOrder_title" : "RGB byte order", + "edt_dev_general_rewriteTime_title" : "Refresh time", + "edt_dev_spec_header_title" : "Specific Settings", + "edt_dev_spec_baudrate_title" : "Baudrate", + "edt_dev_spec_spipath_title" : "SPI path", + "edt_dev_spec_invert_title" : "Invert signal", + "edt_dev_spec_multicastGroup_title" : "Multicast group", + "edt_dev_spec_numberOfLeds_title" : "Number of LEDs", + "edt_dev_spec_port_title" : "Port", + "edt_dev_spec_orbIds_title" : "Orb ID(s)", + "edt_dev_spec_useOrbSmoothing_title" : "Use orb smoothing", + "edt_dev_spec_targetIp_title" : "Target IP", + "edt_dev_spec_targetIpHost_title" : "Target IP/hostname", + "edt_dev_spec_outputPath_title" : "Output path", + "edt_dev_spec_delayAfterConnect_title" : "Delay after connect", + "edt_dev_spec_FCsetConfig_title" : "Set fadecandy configuration", + "edt_dev_spec_FCmanualControl_title" : "Manual control of fadecandy LED", + "edt_dev_spec_FCledToOn_title" : "Fadecandy LED set to on", + "edt_dev_spec_interpolation_title" : "Interpolation", + "edt_dev_spec_dithering_title" : "Dithering", + "edt_dev_spec_gamma_title" : "Gamma", + "edt_dev_spec_whitepoint_title" : "Whitepoint", + "edt_dev_spec_username_title" : "Username", + "edt_dev_spec_lightid_title" : "Light ID(s)", + "edt_dev_spec_lightid_itemtitle" : "ID", + "edt_dev_spec_transistionTime_title" : "Transistion time", + "edt_dev_spec_switchOffOnBlack_title" : "Switch off on black", + "edt_dev_spec_uid_title" : "UID", + "edt_dev_spec_intervall_title" : "Intervall", + "edt_dev_spec_latchtime_title" : "Latch time", + "edt_dev_spec_maxPacket_title" : "Max packet", + "edt_dev_spec_serial_title" : "Serial number", + "edt_dev_spec_vid_title" : "VID", + "edt_dev_spec_pid_title" : "PID", + "edt_dev_spec_cid_title" : "CID", + "edt_dev_spec_LBap102Mode_title" : "LightBerry APA102 Mode", + "edt_dev_spec_universe_title" : "Universe", + "edt_dev_spec_whiteLedAlgor_title" : "White LED algorithm", + "edt_dev_spec_useRgbwProtocol_title" : "Use RGBW protocol", + "edt_dev_spec_maximumLedCount_title" : "Maximum LED count", + "edt_dev_spec_gpioNumber_title" : "GPIO number", + "edt_dev_spec_gpioMap_title" : "GPIO mapping", + "edt_dev_spec_PBFiFo_title" : "Pi-Blaster FiFo", + "edt_dev_spec_gpioBcm_title" : "GPIO Pin", + "edt_dev_spec_ledIndex_title" : "LED index", + "edt_dev_spec_colorComponent_title" : "Color component", + "edt_conf_general_enable_title" : "Activate", + "edt_conf_general_priority_title" : "Priority channel", + "edt_conf_general_port_title" : "Port", + "edt_conf_color_heading_title" : "Color Calibration", + "edt_conf_smooth_heading_title" : "Smoothing", + "edt_conf_smooth_type_title" : "Type", + "edt_conf_smooth_time_ms_title" : "Time", + "edt_conf_smooth_updateFrequency_title" : "Update frequency", + "edt_conf_smooth_updateDelay_title" : "Update delay", + "edt_conf_smooth_continuousOutput_title" : "Continuous output", + "edt_conf_v4l2_heading_title" : "USB Capture", + "edt_conf_v4l2_device_title" : "Device", + "edt_conf_v4l2_input_title" : "Input", + "edt_conf_v4l2_standard_title" : "Video standard", + "edt_conf_v4l2_width_title" : "Width", + "edt_conf_v4l2_height_title" : "Height", + "edt_conf_v4l2_frameDecimation_title" : "Frame decimation", + "edt_conf_v4l2_sizeDecimation_title" : "Size decimation", + "edt_conf_v4l2_mode_title" : "Mode", + "edt_conf_v4l2_useKodiChecker_title" : "Use Kodi Watch", + "edt_conf_v4l2_cropLeft_title" : "Crop left", + "edt_conf_v4l2_cropRight_title" : "Crop right", + "edt_conf_v4l2_cropTop_title" : "Crop top", + "edt_conf_v4l2_cropBottom_title" : "Crop bottom", + "edt_conf_v4l2_redSignalThreshold_title" : "Red signal threshold", + "edt_conf_v4l2_greenSignalThreshold_title" : "Green signal threshold", + "edt_conf_v4l2_blueSignalThreshold_title" : "Blue signal threshold", + "edt_conf_fg_heading_title" : "Platform Capture", + "edt_conf_fg_type_title" : "Type", + "edt_conf_fg_frequency_Hz_title" : "Capture frequency", + "edt_conf_fg_horizontalPixelDecimation_title" : "Horizontal pixel decimation", + "edt_conf_fg_useXGetImage_title" : "Use XGetImage", + "edt_conf_fg_verticalPixelDecimation_title" : "Vertical pixel decimation", + "edt_conf_fg_device_title" : "Device", + "edt_conf_fg_display_title" : "Display", + "edt_conf_bb_heading_title" : "Blackbar detector", + "edt_conf_bb_threshold_title" : "Threshold", + "edt_conf_bb_unknownFrameCnt_title" : "unknownFrameCnt", + "edt_conf_bb_borderFrameCnt_title" : "borderFrameCnt", + "edt_conf_bb_maxInconsistentCnt_title" : "maxInconsistentCn", + "edt_conf_bb_blurRemoveCnt_title" : "blurRemoveCnt", + "edt_conf_bb_mode_title" : "Mode", + "edt_conf_kodic_heading_title" : "Kodi Watch", + "edt_conf_kodic_kodiAddress_title" : "Kodi IP address", + "edt_conf_kodic_kodiTcpPort_title" : "Kodi TCP port", + "edt_conf_kodic_grabVideo_title" : "Video", + "edt_conf_kodic_grabPictures_title" : "Pictures", + "edt_conf_kodic_grabAudio_title" : "Audio", + "edt_conf_kodic_grabMenu_title" : "Menu", + "edt_conf_kodic_grabPause_title" : "Pause", + "edt_conf_kodic_grabScreensaver_title" : "Screensaver", + "edt_conf_kodic_enable3DDetection_title" : "Detect 3D", + "edt_conf_fw_heading_title" : "Forwarder", + "edt_conf_fw_json_title" : "List of JSON clients", + "edt_conf_fw_json_itemtitle" : "JSON target", + "edt_conf_fw_proto_title" : "List of PROTO clients", + "edt_conf_fw_proto_itemtitle" : "PROTO target", + "edt_conf_js_heading_title" : "JSON Server", + "edt_conf_ps_heading_title" : "PROTO Server", + "edt_conf_bobls_heading_title" : "Boblight Server", + "edt_conf_udpl_heading_title" : "UDP Listener", + "edt_conf_udpl_address_title" : "Address", + "edt_conf_udpl_timeout_title" : "Timeout", + "edt_conf_udpl_shared_title" : "Shared", + "edt_conf_webc_heading_title" : "Web Configuration", + "edt_conf_webc_docroot_title" : "Document Root", + "edt_conf_effp_paths_title" : "Effect Path(s)", + "edt_conf_effp_paths_itemtitle" : "Path", + "edt_conf_effp_disable_title" : "Disabed Effects", + "edt_conf_effp_disable_itemtitle" : "Effect", + "edt_conf_log_heading_title" : "Logging", + "edt_conf_log_level_title" : "Log-Level", + "edt_eff_police_header_title" : "Police", + "edt_eff_fade_header_title" : "Fade", + "edt_eff_rainbowmood_header_title" : "Rainbow Mood", + "edt_eff_knightrider_header_title" : "Knight Rider", + "edt_eff_lightclock_header_title" : "Light Clock", + "edt_eff_moodblobs_header_title" : "Mood Blobs", + "edt_eff_rainbowswirl_header_title" : "Rainbow Swirl", + "edt_eff_random_header_title" : "Random", + "edt_eff_runningdots_header_title" : "Running Dots", + "edt_eff_systemshutdown_header_title" : "System Shutdown", + "edt_eff_snake_header_title" : "Snake", + "edt_eff_sparks_header_title" : "Sparks", + "edt_eff_storbe_header_title" : "Strobe", + "edt_eff_traces_header_title" : "Color Traces", + "edt_eff_x-mas_header_title" : "X-Mas", + "edt_eff_color_title" : "Color", + "edt_eff_colorrandom_title" : "Random color", + "edt_eff_colorone_title" : "Color one", + "edt_eff_colortwo_title" : "Color two", + "edt_eff_colorcount_title" : "Color length", + "edt_eff_rotationtime_title" : "Rotation time", + "edt_eff_sleeptime_title" : "Sleep time", + "edt_eff_reversedirection_title" : "Reverse direction", + "edt_eff_fadetime_title" : "Fade time", + "edt_eff_colorstart_title" : "Color start", + "edt_eff_colorend_title" : "Color end", + "edt_eff_speed_title" : "Speed", + "edt_eff_fadefactor_title" : "Fade factor", + "edt_eff_showseconds_title" : "Show seconds", + "edt_eff_blobcount_title" : "Blob count", + "edt_eff_huechange_title" : "Color change", + "edt_eff_basecolorchange_title" : "Base color change", + "edt_eff_basecolorchangerate_title" : "BC change rate", + "edt_eff_basecolorrangeleft_title" : "BC range left", + "edt_eff_basecolorrangeright_title" : "BC range right", + "edt_eff_brightness_title" : "Brightness", + "edt_eff_centerx_title" : "Center X-Axis", + "edt_eff_centery_title" : "Center Y-Axis", + "edt_eff_saturation_title" : "Saturation", + "edt_eff_colorevel_title" : "Color level", + "edt_eff_whitelevel_title" : "White level", + "edt_eff_alarmcolor_title" : "Alarm color", + "edt_eff_postcolor_title" : "Post color", + "edt_eff_enableshutdown_title" : "Real shutdown", + "edt_eff_length_title" : "Length", + "edt_eff_frequency_title" : "Frequency", + "edt_append_ns" : "ns", + "edt_append_ms" : "ms", + "edt_append_s" : "s", + "edt_append_hz" : "Hz", + "edt_append_pixel" : "Pixel", + "edt_append_percent" : "%", + "edt_append_degree" : "", + "edt_append_sdegree" : "s/degree", + "edt_append_leds" : "LEDs", + "edt_msg_error_notset" : "Property must be set", + "edt_msg_error_notempty" : "Value required", + "edt_msg_error_enum" : "Value must be one of the enumerated values", + "edt_msg_error_anyOf" : "Value must validate against at least one of the provided schemas", + "edt_msg_error_oneOf" : "Value must validate against exactly one of the provided schemas. It currently validates against $1 of the schemas.", + "edt_msg_error_not" : "Value must not validate against the provided schema", + "edt_msg_error_type_union" : "Value must be one of the provided types", + "edt_msg_error_type" : "Value must be of type $1", + "edt_msg_error_disallow_union" : "Value must not be one of the provided disallowed types", + "edt_msg_error_disallow" : "Value must not be of type $1", + "edt_msg_error_multipleOf" : "Value must be a multiple of $1", + "edt_msg_error_maximum_excl" : "Value must be less than $1", + "edt_msg_error_maximum_incl" : "Value must be at most $1", + "edt_msg_error_minimum_excl" : "Value must be greater than $1", + "edt_msg_error_minimum_incl" : "Value must be at least $1", + "edt_msg_error_maxLength" : "Value must be at most $1 characters long", + "edt_msg_error_minLength" : "Value must be at least $1 characters long", + "edt_msg_error_pattern" : "Value must match the pattern", + "edt_msg_error_additionalItems" : "No additional items allowed in this array", + "edt_msg_error_maxItems" : "Value must have at most $1 items", + "edt_msg_error_minItems" : "Value must have at least $1 items", + "edt_msg_error_uniqueItems" : "Array must have unique items", + "edt_msg_error_maxProperties" : "Object must have at most $1 properties", + "edt_msg_error_minProperties" : "Object must have at least $1 properties", + "edt_msg_error_required" : "Object is missing the required property '$1'", + "edt_msg_error_additional_properties" : "No additional properties allowed, but property $1 is set", + "edt_msg_error_dependency" : "Must have property $1", + "edt_msg_button_delete_all" : "All", + "edt_msg_button_delete_all_title" : "Delete All", + "edt_msg_button_delete_last" : "Last $1", + "edt_msg_button_delete_last_title" : "Delete Last $1", + "edt_msg_button_add_row_title" : "Add $1", + "edt_msg_button_move_down_title" : "Move down", + "edt_msg_button_move_up_title" : "Move up", + "edt_msg_button_delete_row_title" : "Delete $1", + "edt_msg_button_delete_row_title_short" : "Delete", + "edt_msg_button_collapse" : "Collapse", + "edt_msg_button_expand" : "Expand" +} \ No newline at end of file diff --git a/assets/webconfig/i18n/qqq.json b/assets/webconfig/i18n/qqq.json new file mode 100644 index 00000000..9722d677 --- /dev/null +++ b/assets/webconfig/i18n/qqq.json @@ -0,0 +1,47 @@ +{ + "@metadata": { + "authors": [ + "brindosch" + ], + "project" : "Hyperion WebUI string docu", + "last-updated": "2016-11-30" + }, + "edt_msg_error_notset" : " When a property is not set", + "edt_msg_error_notempty" : "When a string must not be empty", + "edt_msg_error_enum" : "When a value is not one of the enumerated values", + "edt_msg_error_anyOf" : "When a value doesn't validate any schema of a 'anyOf' combination", + "edt_msg_error_oneOf" : "When a value doesn't validate. $1 = This key takes one variable: The number of schemas the value does not validate", + "edt_msg_error_not" : "When a value does not validate a 'not' schema", + "edt_msg_error_type_union" : "When a value does not match any of the provided types", + "edt_msg_error_type" : "When a value does not match the given type. $1 = This key takes one variable: The type the value should be of", + "edt_msg_error_disallow_union" : "When the value validates one of the disallowed types", + "edt_msg_error_disallow" : "When the value validates a disallowed type. $1 = This key takes one variable: The type the value should not be of", + "edt_msg_error_multipleOf" : "When a value is not a multiple of or divisible by a given number. $1 = This key takes one variable: The number mentioned above", + "edt_msg_error_maximum_excl" : "When a value is greater than it's supposed to be (exclusive). $1 = This key takes one variable: The maximum", + "edt_msg_error_maximum_incl" : "When a value is greater than it's supposed to be (inclusive). $1 = This key takes one variable: The maximum", + "edt_msg_error_minimum_excl" : "When a value is lesser than it's supposed to be (exclusive). $1 = This key takes one variable: The minimum", + "edt_msg_error_minimum_incl" : "When a value is lesser than it's supposed to be (inclusive). $1 = This key takes one variable: The minimum", + "edt_msg_error_maxLength" : "When a value have too many characters. $1 = This key takes one variable: The maximum character count", + "edt_msg_error_minLength" : "When a value does not have enough characters. $1 = This key takes one variable: The minimum character count", + "edt_msg_error_pattern" : "When a value does not match a given pattern.", + "edt_msg_error_additionalItems" : "When an array has additional items whereas it is not supposed to", + "edt_msg_error_maxItems" : "When there are to many items in an array. $1 = This key takes one variable: The maximum item count", + "edt_msg_error_minItems" : "When there are not enough items in an array. $1 = This key takes one variable: The minimum item count", + "edt_msg_error_uniqueItems" : "When an array is supposed to have unique items but has duplicates", + "edt_msg_error_maxProperties" : "When there are too many properties in an object. $1 = This key takes one variable: The maximum property count", + "edt_msg_error_minProperties" : " When there are not enough properties in an object. $1 = This key takes one variable: The minimum property count", + "edt_msg_error_required" : "When a required property is not defined. $1 = This key takes one variable: The name of the missing property", + "edt_msg_error_additional_properties" : "When there is an additional property is set whereas there should be none. $1 = This key takes one variable: The name of the additional property", + "edt_msg_error_dependency" : "When a dependency is not resolved. $1 = This key takes one variable: The name of the missing property for the dependency", + "edt_msg_button_delete_all" : "Text on Delete All buttons", + "edt_msg_button_delete_all_title" : "Title on Delete All buttons", + "edt_msg_button_delete_last" : "Text on Delete Last buttons. $1 = This key takes one variable: The title of object to delete", + "edt_msg_button_delete_last_title" : "Text on Delete Last buttons. $1 = This key takes one variable: The title of object to delete", + "edt_msg_button_add_row_title" : "Title on Add Row buttons. $1 = This key takes one variable: The title of object to add", + "edt_msg_button_move_down_title" : "Title on Move Down buttons", + "edt_msg_button_move_up_title" : "Title on Move Up buttons", + "edt_msg_button_delete_row_titlet" : "Title on Delete Row buttons. $1 = This key takes one variable: The title of object to delete", + "edt_msg_button_delete_row_title_short" : "Title on Delete Row buttons, short version (no parameter with the object title)", + "edt_msg_button_collapse" : "Title on Collapse buttons", + "edt_msg_button_expand" : "Title on Expand buttons" +} \ No newline at end of file diff --git a/assets/webconfig/index.html b/assets/webconfig/index.html index fe3ae62f..dbe7339f 100644 --- a/assets/webconfig/index.html +++ b/assets/webconfig/index.html @@ -1,5 +1,5 @@ - + @@ -29,29 +29,17 @@ - - - + + + + + + + - - - @@ -100,21 +88,6 @@

-
@@ -35,7 +34,6 @@
-
diff --git a/assets/webconfig/content/grabber.html b/assets/webconfig/content/grabber.html index a089ed76..a3adf492 100644 --- a/assets/webconfig/content/grabber.html +++ b/assets/webconfig/content/grabber.html @@ -7,11 +7,8 @@

Hyperion supports two ways on how to get captured pictures for processing and output. The platform grabber which captures internal at the device you are running Hyperion on (best qualitiy) and the USB Grabber which gathers from a connected device the necessary pictures (more calibration work and configuration).


-
-
- -
- +
+
diff --git a/assets/webconfig/content/kodiconf.html b/assets/webconfig/content/kodiconf.html index 886cc1d9..f62458d9 100644 --- a/assets/webconfig/content/kodiconf.html +++ b/assets/webconfig/content/kodiconf.html @@ -10,14 +10,10 @@ HINT 1: In any case you need to enable the remote control for Kodi. Please checkout Wiki for instructions. LINK
HINT 2: If you just use a USB-Grabber you could enable the Kodi Watch for this separately at the USB-Grabber page.
- -
-
- -
- +
+
- \ No newline at end of file + diff --git a/assets/webconfig/content/leds.html b/assets/webconfig/content/leds.html index ee7823d9..b2a4a57e 100644 --- a/assets/webconfig/content/leds.html +++ b/assets/webconfig/content/leds.html @@ -98,14 +98,31 @@
- +
+ +
+
+

This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.

+

Don't forget to save!

+ +
+ +
+
-
+
@@ -218,21 +235,21 @@
- +
LEDs
- +
LEDs
- +
@@ -267,24 +284,6 @@
-
- -
-
-

This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.

-

Don't forget to save!

- -
- -
-
@@ -293,7 +292,7 @@

LED Layout preview

-
No preview requested
+
diff --git a/assets/webconfig/content/network.html b/assets/webconfig/content/network.html index d34fd2f1..eb2b3d33 100644 --- a/assets/webconfig/content/network.html +++ b/assets/webconfig/content/network.html @@ -1,4 +1,3 @@ -
@@ -7,14 +6,10 @@

All network based settings are listed here.


-
-
- -
- +
+
- diff --git a/assets/webconfig/content/webconfig.html b/assets/webconfig/content/webconfig.html new file mode 100644 index 00000000..2d81b0fd --- /dev/null +++ b/assets/webconfig/content/webconfig.html @@ -0,0 +1,15 @@ +
+
+
+ +
+

Webinterface settings. Edit wisely

+
+
+
+ +
+
+
+ + diff --git a/assets/webconfig/i18n/de.json b/assets/webconfig/i18n/de.json index 9247882e..97d6c895 100644 --- a/assets/webconfig/i18n/de.json +++ b/assets/webconfig/i18n/de.json @@ -17,6 +17,8 @@ "general_country_nl" : "Niederlande", "general_speech_de" : "Deutsch", "general_speech_en" : "Englisch", + "general_access_default" : "Standard", + "general_access_expert" : "Experte", "general_comp_SMOOTHING" : "Glättung", "general_comp_BLACKBORDER" : "Schwarze Balken Erkennung", "general_comp_KODICHECKER" : "Kodi Überwachung", @@ -26,6 +28,9 @@ "general_comp_GRABBER" : "Plattform Aufnahme", "general_comp_V4L" : "USB Aufnahme", "general_button_savesettings" : "Einstellungen speichern", + "general_btn_ok" : "OK", + "general_btn_abort" : "Abbrechen", + "general_btn_save" : "Speichern", "dashboard_label_intro" : "Das Dashboard zeigt dir Informationen zum Systemstatus, ob Updates verfügbar sind, den Komponentenstatus sowie die letzten Blog-Posts vom Hyperion Team.", "dashboard_infobox_label_title" : "Information", "dashboard_infobox_label_currenthyp" : "Deine Hyperion Version:", @@ -55,6 +60,7 @@ "main_menu_system_token" : "System", "main_menu_input_selection_token" : "Eingabeauswahl", "main_menu_logging_token" : "Protokoll", + "main_menu_webconfig_token" : "Webkonfiguration", "conf_effects_label_intro" : "Stelle einen Effekt oder Farbe ein, der beim Starten sichtbar sein soll. Stelle einen Hintergrundeffekt/Farbe ein der erst sichtbar wird, wenn alle Bildquellen abgeschaltet sind (Das gilt ebenfalls für temporäres abschalten mithilfe der Kodi Überwachung).", "conf_leds_label_intro" : "Der LED Hardware Bereich ermöglicht eine Vielzahl von Ausgabemöglichkeiten über Raspberry Pi GPIO, USB oder Netzwerk. Erstelle ein LED Layout das zu deinem Aufbau passt und schon kann es losgehen!", "conf_leds_nav_label_ledcontroller" : "LED Steuerung", @@ -78,7 +84,6 @@ "conf_leds_layout_preview_originTEXT" : "Erstellt von: Textfeld", "conf_leds_layout_preview_originMA" : "Erstellt von: Matrix Layout (LED Wand)", "conf_leds_layout_preview_totalleds" : "LEDs gesamt: $1", - "conf_leds_layout_preview_empty" : "Es wurde keine Vorschau angefordert", "conf_leds_layout_cl_top" : "Oben", "conf_leds_layout_cl_bottom" : "Unten", "conf_leds_layout_cl_left" : "Links", @@ -105,7 +110,7 @@ "conf_leds_layout_ma_opttopright" : "Oben rechts", "conf_leds_layout_ma_optbottomleft" : "Unten links", "conf_leds_layout_ma_optbottomright" : "Unten rechts", - "conf_leds_layout_textf1" : "Das Textfeld zeigt dir dein aktuell geladenes Layout, sofern du kein neues Layout mit den Optionen oben erstellt hast. Optional kann man die Werte hier weiter bearbeiten.", + "conf_leds_layout_textf1" : "Das Textfeld zeigt dir dein aktuell geladenes Layout, sofern du kein neues Layout mit den Optionen unten erstellt hast. Optional kann man die Werte hier weiter bearbeiten.", "conf_leds_layout_textf2" : "Vergiss nicht zu speichern!", "conf_leds_test_button_toggleleds" : "LEDs", "conf_leds_test_button_togglelednumber" : "LED Nummerierung", @@ -118,6 +123,7 @@ "conf_logging_label_intro" : "Überprüfe die Meldungen im Prokotoll um zu erfahren was Hyperion gerade beschäftigt. Je nach eingestellter Protokoll-Stufe siehst du mehr oder weniger Informationen.", "conf_logging_btn_pbupload" : "Protokoll hochladen", "conf_logging_btn_autoscroll" : "Automatisch scrollen", + "conf_webconfig_label_intro" : "Einstellungen zur Webkonfiguration. Änderungen können die Erreichbarkeit des Webinterfaces beeinflussen.", "remote_label_intro" : "Die Fernbedienung ermöglicht dir während Hyperion läuft Farbe/Effekte zu starten/setzen, aber auch eine Quelle manuell festzulegen. Die Komponentensteuerung ermöglicht es dir gezielt Teile von Hyperion zu aktivieren/deaktivieren. Beachte, dass nach einem Neustart die hier durchgeführten Aktionen wieder zurückgesetzt werden.", "remote_colors_label_coloreffect" : "Farbe/Effekt:", "remote_colors_button_reset" : "Farbe/Effekt zurücksetzen", @@ -128,7 +134,7 @@ "remote_components_label_components" : "Komponentensteuerung", "remote_optgroup_usreffets" : "Benutzer Effekte", "remote_optgroup_syseffets" : "Mitgelieferte Effekte", - "remote_help_text" : "Hyperion nutzt ein Prioritätensystem um die Quelle zu wählen. Alles was du setzte hat eine Prioität (Effekte/Farben/Plattform Capture/USB Capture und Netzwerkquellen). Standartmäßig nutzt Hyperion die Quelle mit der niedrigsten Prioität. Hier hast du die Möglichkeit die Quelle manuell auszuwählen.", + "remote_help_text" : "Hyperion nutzt ein Prioritätensystem um die Quelle zu wählen. Alles was du setzte hat eine Prioität (Effekte/Farben/Plattform Capture/USB Capture und Netzwerkquellen). Standartmäßig nutzt Hyperion die Quelle mit der niedrigsten Prioität. Hier hast du die Möglichkeit die Quelle manuell auszuwählen.", "hue_button_create_user_token" : "Benutzer anlegen", "hue_press_link_modal" : "Bitte Link Taste auf der Hue Bridge drücken.", "hue_failure_connection_token" : "Connection Timeout. Bitte drücke die Taste rechtzeitig.", @@ -137,7 +143,7 @@ "hue_failure_ip_token" : "Bitte überprüfe deine IP Adresse.", "hue_label_username" : "Benutzername:", "hue_label_ip" : "Hue Bridge IP:", - "hue_help_text" : "Mit diesem Setupassistenten kannst du einen neuen User auf der Hue Bridge anlegen und deine LightIDs für die Hyperion Konfiguration herausfinden. Wenn du bereits einen eingetragenen User hast, siehst du diesen bereits untenstehend eingetragen. Du kannst allerdings jederzeit einen neuen Anlegen. Beachte: Dies ist nur ein Assistent. Du musst die Daten in die Konfiguration kopieren.", + "hue_help_text" : "Mit diesem Setupassistenten kannst du einen neuen User auf der Hue Bridge anlegen und deine LightIDs für die Hyperion Konfiguration herausfinden. Wenn du bereits einen eingetragenen User hast, siehst du diesen bereits untenstehend eingetragen. Du kannst allerdings jederzeit einen neuen Anlegen. Beachte: Dies ist nur ein Assistent. Du musst die Daten in die Konfiguration kopieren.", "effectsconfigurator_label_intro" : "Erstelle auf Grundlage der Basiseffekte neue Effekt die nach deinen Wünschen angepasst sind. Je nach Effekt stehen Optionen wie Farbe, Geschwindigkeit, oder Richtung und vieles mehr zur Auswahl.", "effectsconfigurator_label_chooseeff" : "Basis-Effekt auswählen:", "effectsconfigurator_button_saveeffect" : "Effekt speichern", @@ -190,6 +196,10 @@ "infoDialog_effconf_created_text" : "Der Effekt $1 wurde erfolgreich erstellt!", "infoDialog_effconf_invalidvalue_title" : "Fehlerhafte Werte!", "infoDialog_effconf_invalidvalue_text" : "Es wurden unzulässige Werte eingetragen, überprüfe das rot markierte Feld und versuche es erneut!", + "InfoDialog_lang_title" : "Spracheinstellung", + "InfoDialog_lang_text" : "Sollte dir die Vorauswahl der automatischen Spracherkennung nicht gefallen, kannst du die Sprache hier manuell festlegen.", + "InfoDialog_access_title" : "Zugriffsstufe", + "InfoDialog_access_text" : "Abhängig von der Stufe hast du Zugriff auf mehr oder weniger Einstellungen. Empfohlen ist 'Standard'.", "edt_dev_general_heading_title" : "Allgemeine Einstellungen", "edt_dev_general_name_title" : "Name der Konfiguration", "edt_dev_general_ledCount_title" : "Anzahl Hardware LEDs", diff --git a/assets/webconfig/i18n/en.json b/assets/webconfig/i18n/en.json index 2c1c2d04..1e390224 100644 --- a/assets/webconfig/i18n/en.json +++ b/assets/webconfig/i18n/en.json @@ -17,6 +17,8 @@ "general_country_nl" : "Netherlands", "general_speech_de" : "German", "general_speech_en" : "English", + "general_access_default" : "Default", + "general_access_expert" : "Expert", "general_comp_SMOOTHING" : "Smoothing", "general_comp_BLACKBORDER" : "Blackbar Detection", "general_comp_KODICHECKER" : "Kodi Watch", @@ -26,6 +28,9 @@ "general_comp_GRABBER" : "Platform Capture", "general_comp_V4L" : "USB Capture", "general_button_savesettings" : "Save settings", + "general_btn_ok" : "OK", + "general_btn_abort" : "Abort", + "general_btn_save" : "Save", "dashboard_label_intro" : "The dashboard give you a quick overview about the status of Hyperion and show you the latest news of the Hyperion Blog.", "dashboard_infobox_label_title" : "Information", "dashboard_infobox_label_currenthyp" : "Your Hyperion version:", @@ -55,6 +60,7 @@ "main_menu_system_token" : "System", "main_menu_input_selection_token" : "Eingabeauswahl", "main_menu_logging_token" : "Log", + "main_menu_webconfig_token" : "Webconfiguration", "conf_effects_label_intro" : "Setting up a booteffect/color that is visible after Hyperion startup. Configure a background effect/color which is active, when all capture sources are disabled (also temporarily via Kodi Watch)", "conf_leds_label_intro" : "The LED controller of youre choice is your way to output the led data via Raspberry PI GPIO, USB or network! Choose one, define your led layout and enjoy the light!", "conf_leds_nav_label_ledcontroller" : "LED Controller", @@ -78,7 +84,6 @@ "conf_leds_layout_preview_originTEXT" : "Created from: Textfield", "conf_leds_layout_preview_originMA" : "Created from: Matrix Layout(LED wall)", "conf_leds_layout_preview_totalleds" : "Totel LEDs: $1", - "conf_leds_layout_preview_empty" : "Es wurde keine Vorschau angefordert", "conf_leds_layout_cl_top" : "Top", "conf_leds_layout_cl_bottom" : "Bottom", "conf_leds_layout_cl_left" : "Left", @@ -105,7 +110,7 @@ "conf_leds_layout_ma_opttopright" : "Top right", "conf_leds_layout_ma_optbottomleft" : "Bottom left", "conf_leds_layout_ma_optbottomright" : "Bottom right", - "conf_leds_layout_textf1" : "This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.", + "conf_leds_layout_textf1" : "This textfield shows by default your current loaded layout and will be overwritten if you generate a new one with the options below. Optional you could perform further edits.", "conf_leds_layout_textf2" : "Don't forget to save!", "conf_leds_test_button_toggleleds" : "toggle leds", "conf_leds_test_button_togglelednumber" : "toggle led numbers", @@ -118,6 +123,7 @@ "conf_logging_label_intro" : "Area to check log messages, depending on loglevel setting you see more or less information.", "conf_logging_btn_pbupload" : "Upload log", "conf_logging_btn_autoscroll" : "Auto scrolling", + "conf_webconfig_label_intro" : "Webconfiguration settings. Edit wisely.", "remote_label_intro" : "Set an effect/color. You could also select a source manually. The Components control give the opportunity to enable/disable components of Hyprion during runtime. All changes you made here are lost after a restart.", "remote_colors_label_coloreffect" : "Colors/Effects", "remote_colors_button_reset" : "Reset Color/Effect", @@ -128,7 +134,7 @@ "remote_components_label_components" : "Components control", "remote_optgroup_usreffets" : "User Effects", "remote_optgroup_syseffets" : "Provided Effects", - "remote_help_text" : "Hyperion uses a priority system to select a source. Everything you set has a priority (Effect/Color/Platform capture/USB capture and network sources). By default, Hyperion select sources depending on priority (lowest number reflects the current active source). Now you have the opportunity to select sources on your own.", + "remote_help_text" : "Hyperion uses a priority system to select a source. Everything you set has a priority (Effect/Color/Platform capture/USB capture and network sources). By default, Hyperion select sources depending on priority (lowest number reflects the current active source). Now you have the opportunity to select sources on your own.", "hue_button_create_user_token" : "Create User", "hue_press_link_modal" : "Please press link button on the Hue Bridge.", "hue_failure_connection_token" : "Connection Timeout. Please press the button in time.", @@ -137,7 +143,7 @@ "hue_failure_ip_token" : "Please check your IP Address.", "hue_label_username" : "Hue Bridge Username", "hue_label_ip" : "Hue Bridge IP:", - "hue_help_text" : "With this Setup Helper you can get a new User for your Hue Bridge and you can see your Lights with the IDs for Hyperion Configuration. If you already have a working User you will see it below. But you can always create a new one as well. Remember: This is only a helper. You have to copy and paste them in your config above.", + "hue_help_text" : "With this Setup Helper you can get a new User for your Hue Bridge and you can see your Lights with the IDs for Hyperion Configuration. If you already have a working User you will see it below. But you can always create a new one as well. Remember: This is only a helper. You have to copy and paste them in your config above.", "effectsconfigurator_label_intro" : "Create out of the base effects new effects that are tuned to your liking. Depending on Effect there are options like color, speed, direction and more available.", "effectsconfigurator_label_chooseeff" : "Choose Base-Effect:", "effectsconfigurator_button_saveeffect" : "Save Effect", @@ -190,6 +196,10 @@ "infoDialog_effconf_created_text" : "The effect $1 has been created successfully!", "infoDialog_effconf_invalidvalue_title" : "INVALID VALUE(S)", "infoDialog_effconf_invalidvalue_text" : "Please check for red marked input(s) and try again!", + "InfoDialog_lang_title" : "Language setting", + "InfoDialog_lang_text" : "If you don't like the result of the automatic language detection you could overwrite it here.", + "InfoDialog_access_title" : "Level setting", + "InfoDialog_access_text" : "Depending on settings level you could change more or less settings. Recommended is the default level.", "edt_dev_general_heading_title" : "General Settings", "edt_dev_general_name_title" : "Configuration name", "edt_dev_general_ledCount_title" : "Count of all hardware LEDs", diff --git a/assets/webconfig/index.html b/assets/webconfig/index.html index dbe7339f..fb2ec737 100644 --- a/assets/webconfig/index.html +++ b/assets/webconfig/index.html @@ -88,6 +88,16 @@
diff --git a/assets/webconfig/content/grabber.html b/assets/webconfig/content/grabber.html index a3adf492..0b72c94a 100644 --- a/assets/webconfig/content/grabber.html +++ b/assets/webconfig/content/grabber.html @@ -5,10 +5,40 @@

Hyperion supports two ways on how to get captured pictures for processing and output. The platform grabber which captures internal at the device you are running Hyperion on (best qualitiy) and the USB Grabber which gathers from a connected device the necessary pictures (more calibration work and configuration).

+
+
+
+
+
+
Kodi Watch
+
+
+
+ +
+
+
+
+
+
+
+
+
+
Kodi Watch
+
+
+
+ +
+
+
+
+
-
-
-
diff --git a/assets/webconfig/content/kodiconf.html b/assets/webconfig/content/kodiconf.html index f62458d9..9106f650 100644 --- a/assets/webconfig/content/kodiconf.html +++ b/assets/webconfig/content/kodiconf.html @@ -4,14 +4,28 @@

The Kodi Watcher enables you to enable and disable the screencapture depending on Kodi state. This is not limited to the same machine, you could observe also a Kodi on any other device at your network.

+
-
-
- +
+
+
+
Kodi Watch
+
+
+
+ +
+
+
+
+
+
diff --git a/assets/webconfig/content/leds.html b/assets/webconfig/content/leds.html index d4c4e458..6ae1e6bd 100644 --- a/assets/webconfig/content/leds.html +++ b/assets/webconfig/content/leds.html @@ -32,8 +32,9 @@

The LED controller of youre choice is your way to output the led data via Raspberry PI GPIO, USB or network! Choose one, define your led layout and enjoy the light!

+
-
+
-
-
-
-
Kodi Watch
-
-
-
- -
-
-
-
-
- -
-
-
Kodi Watch
-
-
-
- -
-
-
-
-
-
+
diff --git a/assets/webconfig/content/kodiconf.html b/assets/webconfig/content/kodiconf.html index 9106f650..7db6f27a 100644 --- a/assets/webconfig/content/kodiconf.html +++ b/assets/webconfig/content/kodiconf.html @@ -10,22 +10,7 @@ HINT 1: In any case you need to enable the remote control for Kodi. Please checkout Wiki for instructions. LINK
HINT 2: If you just use a USB-Grabber you could enable the Kodi Watch for this separately at the USB-Grabber page.
-
-
-
-
Kodi Watch
-
-
-
- -
-
-
-
-
-
+
diff --git a/assets/webconfig/content/leds.html b/assets/webconfig/content/leds.html index 6ae1e6bd..41624227 100644 --- a/assets/webconfig/content/leds.html +++ b/assets/webconfig/content/leds.html @@ -1,12 +1,3 @@ - - -
@@ -38,7 +27,6 @@
@@ -79,58 +67,27 @@
-
-