Commit Graph

1129 Commits

Author SHA1 Message Date
Markus
addff6f7ef
Dynamic loading of the Dispmanx Grabber (#1440)
* BCM dynamic loading

* cleanup

* better handle start of dispmanx

* set GrabberWrapper pointer to null on exit

* Update DispmanxFrameGrabber.cpp
2022-03-20 14:42:21 +01:00
LordGrey
f32db90c12
Fix Effects and refactor Smoothing (#1442) 2022-03-16 09:28:00 +01:00
LordGrey
62829d9bf8
Allow to disable switching LEDs on during startup (#1443) 2022-03-16 09:27:37 +01:00
LordGrey
3e8c6f3b25
Update UI JS Libraries (#1441)
* Update Gijgo to 1.9.13

* Update DOMPurify 2.3.6

* Update Marked 4.0.12

* Update metismenu 3.0.7

* Issue Update Priority, if first LED changes for COLOR update (to reflect color correctly in UI)

* Add Yeelight W3 MultiColor

* Update to jquery 3.6.0
2022-03-13 16:38:28 +01:00
tuxuser
14b6a114bb
libsrc/utils: Do not catch SIGILL signal (#1435)
libcrypto performs cpu feature checks on ARM platforms, by calling `OPENSSL_cpuid_setup`.
In there, it tries to call various instructions and traps `illegal instructions` aka. non-existing instructions itself.

However, as hyperion.ng also tries to trap all signals, the call inside libcrypto is propagated and hyperiond gets killed by itself.

This patch lets execution proceed, even when `SIGILL` occurs.

References:
- libcrypto OPENSSL_cpuid_setup: 954f45ba4c/crypto/armcap.c (L183)
2022-03-02 19:56:12 +01:00
LordGrey
160c5d0b3a
UI and Web updates (#1421)
* Stop Web-Capture when priority changes

* Remote control UI: Treat duration=0 as endless

* Stop Web-Capture on non-Image events changes

* LED Matrix Layout - Support vertical cabling direction

* Additional Yeelight models

* Treat http headers case insensitive

* Update change log

* Treat http headers case insensitive (consider Qt version)

* API - Consider provided format when setImage

* UI - Support Boblight configuration per LED instance

* Support multiple Boblight clients with different priorities

* Update changelog

* Simplify isGUI rules allowing for QT only builds

* Sysinfo: Fix indents

* LED-Devices: Show warning, if get properties failed

* Qt-Grabber: Fixed position handling of multiple monitors

* LED layout: Remove indention limitations

* Yeelight: Test YLTD003

* hyperion-remote: Provide image filename to muxer/UI

* Refactor PriorityMuxer and related

* Temp: Build under Windows 2019

* Yeelight: Remove YLTD003 as it is not working without additional changes

* Test Windows-latest with out removing redistributables/new MSVC

* correct workflows

* correct CI script

* Build Windows with Qt 5.15.2

* Priority Muxer: Updates after testing

* Fix Typo

* Update BGHandler

* QTGrabber - Reactivate windows code to avoid cursor issues

* Emit prioritiesChanged when autoselect was changed by user

Co-authored-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
2022-02-22 20:58:59 +01:00
LordGrey
5078688dc8
Hyperion Light 2 (#1428)
* Hyperion Light - Have EffectEngine as component

* Hyperion light - Build switches for LED Devices (Serial, Network)

* Fix file uri generation

* Fix missing guard for Windows

* Fix file uri generation

* Update jsonschema and checkschema

* Allow to provide cmake build args to docker build
2022-02-11 20:36:15 +01:00
LordGrey
2efc03b612
Logging enhancement / fixes (#1419)
* Instance in logging output

* Fix: Trigger that previous log lines are shown in the Log UI
2022-01-22 17:48:03 +01:00
Markus
98654e48f6
Flatbuffer/Protobuf now able to receive rgba data (#1399)
* Flatbuffer/Protobuf now able to receive rgba data

* Proto/Flat schema comment added

* Prevent diveded by zero

* Address LGTM findings

* Fix EncoderThread & cleanup

Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
2022-01-09 17:23:50 +01:00
LordGrey
2f573a117f
Hyperion "Light", Build improvements and minor fixes (#1400)
* Allow build, if no grabbers are enabled

* Align available functions to right Qt version

* Update to next development version

* Align available functions to right Qt version

* fix workflows (apt/nightly)

* Disable QNetworkConfigurationManager deprecation warnings

* Initial go on Smart Pointers

* Add Deallocation

* Correct QT_WARNING_DISABLE_DEPRECATED (available since 5.9)

* Cluster Build Variables

* Hyperion Light

* Address build warnings

* Hyperion Light - UI

* Update Protobuf to latest master

* Removed compiler warnings

* Added restart ability to systray

* Correct Protobuf

* Ignore 'no-return' warning on protobuf build

* hyperion-remote: Fix auto discovery of hyperion server

* Fix Qt version override

* Update changelog

* Remove Grabber Components, if no Grabber exists

* Standalone Grabber - Fix fps default

* Remote Control - Have Source Selction accrosswhole screen

* Enable Blackborder detection only, if relevant input sources available

* Enable Blackborder detection only, if relevant input sources available

* Remote UI - rearrange containers

* - QT5/6 path for arm64 added
- Remove ZLib Dependency
- Fix macOS bundle info details
- Cleanup

Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>
Co-authored-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
2022-01-07 14:47:51 +01:00
LordGrey
fcd0fb0c52
Fix #967 (#1378)
* Fix #967

* Start Smoothing in pause mode to avoid resource usage, if hyperion is started without active priority

* Update Changelog
2021-12-14 07:55:34 +01:00
LordGrey
442fab9c59
Fix/Workaround set-music error when music is already off (#1379)
* Fix/Workaround set-music error when music is already off

* Do not ignore error when setting music mode
2021-12-14 07:54:53 +01:00
LordGrey
e3b494428a
Fix standalone grabbers (#1384)
* Fix too much copy/paste
* Fix typo
* Commandlineoptions: Additional error details for Int and Double ranges
* Standalone grabbers: Show fps range on error, fix default host address
2021-11-29 18:51:03 +01:00
LordGrey
72d99a1121
Prep 2.0.12 Release (#1377)
* APA102 - Migrate ColorOrder to align with fix
* Address LGTM findings
* Updated Changelog with updates since last release
2021-11-20 16:20:01 +01:00
LordGrey
7311c3e424
Support MBEDTLS 3 (#1374)
* Support MBEDTLS 3

* mbedTLS 2 & 3 support (incl. System libs)

Co-authored-by: Markus <16664240+Paulchen-Panther@users.noreply.github.com>
2021-11-18 21:58:56 +01:00
LordGrey
80ec037832
SettingsManager - Fix Migration Scenario 2021-11-17 22:38:15 +01:00
LordGrey
ad293b2fb6
IPv6 support (#1369)
* hyperion-remote - Support IPv6

* LEDDevices - Remove IPv6 limitations

* Separate JsonEditorHostValidation

* Standalone grabbers & JSON/Flatbuffer forwarder: IPv6 support

* remote: Fix setting multiple colors via Hex, add standard logging

* IPv6 Updates -Add db migration activities

* Addressing non-Windows compile issues

* Code cleanup, address clang feedback

* Update address (hostname, IPv4/IPv6) help text

* Apply migration steps to "old" configurations imported

* Show user the UI-Url, if hyperion is already running, address clang findings

* Windows Cmake OpenSLL output

* Minor Text update
2021-11-17 21:30:43 +01:00
Markus
b33466d392
APT update / Submodule updates / added updateHyperionUser script again (#1366)
* Test new APT builds

* test build

* final changes for bookworm and jammy

* - Include updateHyperionUser script again
- Update package dependencies for APT builds

* Installation guide updated

* Removed alpha notes and added arm64 APT builds

* update docker-compile script

* Overwrite CMAKE_SYSTEM_PROCESSOR on Windows builds
2021-11-17 20:35:28 +01:00
LordGrey
67280b8566
Razor Chroma Support - Initial version (#1054)
* Razor Chroma Support - Initial version

* Address clang and lgtm findings

* Razer Fixes

* Merge branch 'master' into Razer_Chroma_Support

# Conflicts:
#	assets/webconfig/i18n/en.json
#	assets/webconfig/js/content_leds.js
#	libsrc/leddevice/dev_net/ProviderRestApi.cpp
#	libsrc/leddevice/dev_net/ProviderRestApi.h

* Corrections

* Set default config for Razer

* Simplify

* Razer - Support individual LEDs and have default layout per device type

* Differentiate between HWLEDCount and LayoutLEDCount

* Revert "Differentiate between HWLEDCount and LayoutLEDCount"

This reverts commit b147b215a5.

* Correct LGTM finding

* Disable verbose mode
2021-11-17 20:34:49 +01:00
LordGrey
25d79a9f3f
Qt6 support (#1363)
* Initial Qt6 config

* Change Package order to reingfence missing packages

* Update to QT 6.2.0

* Qt 6.2.0 updates

* macOS fix

* Simplify handling QT5 & Qt6 in parallel

* Updates for Windows

* Fix macos build

* macOS linker fix

* General support of QTDIR, update docu

* MaxOS add default qt directories

* Fix merge typo

* Update default CMakeSettings.json with installation path options

* Add additional libs required by Qt6 to CompileHowTo

* Fix Qt5 items

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2021-11-16 18:12:56 +01:00
LordGrey
b0c529c05d
EffectModule - Fix 2021-11-04 09:40:12 +01:00
LordGrey
954112a88e
APA102 protocol fix (#1352) (#1361)
* Fix APA102 protocoll

* Minor clean-ups

* Revert updates
2021-10-28 19:54:54 +02:00
Markus
a1dee08195
Drag'n Drop for macOS / Fix #1109 / ... (#1353) 2021-10-16 14:07:36 +02:00
LordGrey
c9a7258160
Fix API Subscription initialisation (#1354)
* Fix #1352,#1351

* Fix/Add details on client address
2021-10-16 13:55:23 +02:00
LordGrey
532ac7e330
Fix Database migration version handling (#1356) 2021-10-16 13:54:18 +02:00
Markus
2c79656b4a [HotFix] Release 2.0.0-alpha.11 2021-10-05 21:22:19 +00:00
Markus
eb96553975
Systemd changes | root script | URL support for gif effects (#1319)
* Systemd changes and URL option for Gif Effects
* Add grayscale to gif effect
* WebUI adjustments
* Rename version to .version
* Copy runHyperionAsRoot.sh to rpi packages
* Pack script into all unix packages
* Start hyperion only after network is available
* Snap builds removed due to poor server connection
* Flexible updateHyperionUser.sh
* updateHyperionUser script entered in the package
* Print help on none sudo execute
* Corrected embedded Python location
* Replacement for the QWindowsScreen grabWindow function
* Updated to latest 2.x mbedtls version 2.27

Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
2021-10-02 18:02:52 +02:00
LordGrey
f269268def
Fix LED Devices (Lightpack, Atmo/Karate, Hue) (#1337)
* Fix that lighpack cores when lack of permissions

* Atmo/Karate - Fix LedCount constraint handling

* Hue updates - Have EntertainmentAPI as default, disable hardwareledcount as cacultated

* Have Gamma per default 2.2
2021-09-30 18:06:23 +02:00
LordGrey
2a10ef955d
Limit maximum LEDs number for WLED and UDP-Raw (#1334)
* Have maximum 490 LEDs configured for WLED and UDP-Raw

* Add additional Warning
2021-09-20 09:36:59 +02:00
LordGrey
8134917c51
Correct PR1312 and LEDSim fixes (#1336)
* Revert Refactor/Optimization of PR1312

* LED Layout - Only update preview image when visible

* Revert Debug updates

* Correct Refactor/Optimization of PR1312

* LedSim: Do not stream LED data when not required, LedS-im/Layout: Sync on video streaming

* Remove initial switch to instance 0 during API init
2021-09-20 08:44:09 +02:00
LordGrey
da49f25b4e
Do not limit priorities for Boblight (#1269) (#1298)
* Do not limit priorities for Boblight (#1269)

* Boblight - Allow to exclude component from build

* Fix merge

* Amlogic - Correct Pixelformat reference

* Remove "wrong" Amlogic ifdef, which was not working before
2021-09-15 10:32:19 +02:00
LordGrey
8a785e70c8
LED-Device updates (#1315)
* SPI Fix - Free allocated memory in case of invert

* Remove development statement

* UI updates

* Minor corrections

* Tpm2net Fix - Free allocated memory

* LGTM Finding

* Add config directory and user type to SysInfo

* WS281x - Ensure that device runs with root priviliges

* WS281x - Update DMA defauls as per rpi_ws281x recommendation

* Support Sysinfo for Qt < 5.10

* Address LGTM finding
2021-09-15 10:31:56 +02:00
Markus
8fb3d76b9c
[Hotfix] reuse local SSDP address (Issue #1324) 2021-09-07 17:50:51 +02:00
LordGrey
1ef3a106f1
Smoothing Fixes, Optimizations (#1295)
* Fix #1098, Removed Continuous Output as being obsolete

* Pause output processing when no input source is available

* Only show configurable options for Linear smoothing
2021-08-31 10:56:06 +02:00
LordGrey
f0bd38d473
Nanoleaf Updates (#1299)
* Discover additional Nanoleaf devices

* Fix Nanoleaf not turning on

* Added LGTM configuration file

* Allow to pass QJsonObject as payload for put

* Nanoleaf - Support Restore State & Overwrite Brightness

* Removed because this is already included

Co-authored-by: Markus <16664240+Paulchen-Panther@users.noreply.github.com>
2021-08-31 10:55:49 +02:00
LordGrey
12cdd1d58a
Streamline API calls from UI (incl. Fix #1311, #1314) (#1312)
* JSONeditor: Disable watchers when updating selections dynamically

* Refactor - Load last instance config when loading UI page

* LED Devices - Notify getproperties watchers for configured hostname

* Remove unused variable

* Fix #1314 - Additional classic & matrix configuration items were not saved
2021-08-31 10:55:32 +02:00
LordGrey
d3a912f014
Fix #1276 (#1279) 2021-07-31 20:57:08 +02:00
LordGrey
d3c8e6da4e
Amlogic updates (#1285)
* Limit Amlogic grabber to 30fps

* Exclude FB Grabber on Amlogic platform, as FB is included in Amlogic Grabber

* Amlogic Grabber - Have continuous feed even when paused. Have no delay when pausing/unpausing

* Revert back to CAP_FLAG_AT_END capture method

* Clarification on Capture Frequency
2021-07-31 20:56:45 +02:00
Paulchen-Panther
4f3c853263 Release 2.0.0-alpha.10 2021-07-17 22:39:22 +02:00
LordGrey
10b6317777
Prepare for Alpha.10 (#1272)
* Update Changelog for Alpha.10

* Address lgtm findings

* Correct some texts

* Improve Password handling

* search for turbojpeg only if MF is enabled

* Chnagelog updates

* Fix LED layout overwrite for previously save LEDs

* LED Device- Fix default selection for selected network devices

* Sreengrabber - Select default fps

* Update database migration steps

Co-authored-by: Markus <16664240+Paulchen-Panther@users.noreply.github.com>
2021-07-17 20:55:16 +02:00
Markus
c135d91986
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed

* Added libjpeg-turbo to dependencies

* Fix OSX build
Removed Azure Pipelines from build scripts

* Remove Platform from Dashboard

* Correct Grabber Namings

* Grabber UI improvements, generic JSONEditor Selection Update

* Active grabber fix

* Stop Framebuffer grabber on failure

* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added

* Refactor MediaFoundation (Part 1)

* Remove QDebug output

* Added image flipping ability to MF Grabber

* fix issue 1160

* -Reload MF Grabber only once per WebUI update
- Cleanup

* Improvements

* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped

* Refactor MediaFoundation (Part 2)

* Refactor V4L2 grabber (part 1) (#62)

* Media Foundation grabber adapted to V4L2 change

* Enable Media Foundation grabber on windows

* Have fps as int, fix height typo

* Added video standards to JsonAPI output

* Error handling in source reader improved

* Fix "Frame to small" error

* Discovery VideoSources and Dynamically Update Editor

* Hide all element when no video grabber discovered, upate naming

* Do not show unsupported grabbers

* Copy Log to Clipboard

* Update Grabber schema and Defaults

* Update access levels and validate crop ranges

* Height and width in Qt grabber corrected

* Correct formatting

* Untabify

* Global component states across instances

* Components divided on the dashboard

* refactor

* Fix Merge-issues

* Database migration aligning with updated grabber model

* Align Grabber.js with new utility functions

* Allow editor-validation for enum-lists

* Handle "Show Explainations scenario" correctly

* Grabber - Ensure save is only possible on valid content

* Dashboard update + fix GlobalSignal connection

* Ensure default database is populated with current release

* Correct grabber4L2 access level

* Display Signal detection area in preview

* Write Hyperion version into default config on compiling.

* Create defaultconfig.json dynamically

* WebUI changes

* Correct grabber config look-ups

* Refactor i18n language loading

* Fix en.json

* Split global capture from instance capture config

* Update grabber default values

* Standalone grabber: Add --debug switch

* Enhance showInputOptionsForKey for multiple keys

* Add grabber instance link to system grabber config

* Only show signal detection area, if grabber is enabled

* Always show Active element on grabber page

* Remote control - Only display gabber status, if global grabber is enabled

* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview

* V4L2/MF changes

* Jsoneditor, Correct translation for default values

* Refactor LED-Device handling in UI and make element naming consistent

* MF Discovery extended

* Fix LGTM finding

* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults

* Concider Access level for item filtering

* Concider Access level for item filtering

* Revert "Concider Access level for item filtering"

This reverts commit 5b0ce3c0f2.

* Disable fpsSoftwareDecimation for framegrabber, as not supported yet

* JSON-Editor- Add updated schema for validation on dynamic elements

* added V4L2 color IDs

* LGTM findings fix

* destroy SR callback only on exit

* Grabber.js - Hide elements not supported by platform

* Fixed freezing start effect

* Grabber UI - Hardware controls - Show current values and allow to reset to defaults

* Grabber - Discovery - Add current values to properties

* Small things

* Clean-up Effects and have ENDLESS consistently defined

* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority

* Add missing translation mappings

* DirectX Grabber reactivated/ QT Grabber size decimation fixed

* typo in push-master workflow

* Use PreciseTimer for Grabber to ensure stable FPS timing

* Set default Screencapture rate consistently

* Fix libjpeg-turbo download

* Remove Zero character from file

* docker-compile Add PLATFORM parameter, only copy output file after successful compile

* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers

* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile

* Fix definition

* OSXFRameGrabber - Revert cast

* Clean-ups nach Feedback

* Disable certain libraries when building armlogic via standard stretch image as developer

* Add CEC availability to ServerInfo to have it platform independent

* Grabber UI - Fix problem that crop values are not populated when refining editor rage

* Preserve value when updating json-editor range

* LEDVisualisation - Clear image when source changes

* Fix - Preserve value when updating json-editor range

* LEDVisualisation - Clear image when no component is active

* Allow to have password handled by Password-Manager (#1263)

* Update default signal detection area to green assuming rainbow grabber

* LED Visualisation - Handle empty priority update

* Fix yuv420 in v4l2 grabber

* V4L2-Grabber discovery - Only report grabbers with valid video input information

* Grabber - Update static variables to have them working in release build

* LED Visualisation - ClearImage when no priorities

* LED Visualisation - Fix Logo resizing issue

* LED Visualisation - Have nearly black background and negative logo

Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
Markus
b0e1510a78
websocket crashes fixed (#1258) 2021-07-14 20:22:13 +02:00
LordGrey
4c2806f966
Serial-Devices - Add udev support (#1246) 2021-05-23 19:11:05 +02:00
LordGrey
9199aa8216
Fix #1216 (#1250) 2021-05-20 19:40:05 +02:00
LordGrey
feec395756
Minor Updates (#1241) 2021-05-16 18:33:24 +02:00
Paulchen Panther
17d4406deb
Refactor PR #957 (#1234) 2021-05-01 17:00:44 +02:00
Daniel Schwierzeck
724d90bfdb
Initial support for Hue Play Gradient Lightstrip (#1187)
Model ID is LCX001. Add as Gamut C device.
2021-04-25 17:22:16 +02:00
Portisch
aede77b7ca
AmlogicGrabber: set and decrease frame grab timeout to 500ms (#1225)
This prevent an internal timeout when no frame is delivered like on playback pause.
2021-04-25 16:49:42 +02:00
LordGrey
7eeb740177
Dynamic Device Selection/Configuration (#1164) 2021-04-24 19:37:29 +02:00
LordGrey
94d9b02734
Fix 1181 - Effects were not started from tray (#1199)
* Fix 1181, add constants and defaults

* Include #1195 changes
2021-03-19 22:52:41 +01:00