1199 Commits

Author SHA1 Message Date
LordGrey
adfe039feb Support NV12 format on Flatbuffer 2024-12-01 15:04:06 +01:00
LordGrey
27f74af4e3
Skydimo as own device (#1800)
* Skydimo as own device type

* Skydimo updates
2024-11-15 18:37:17 +01:00
LordGrey
5cb3076698
Config refactoring fixes (#1799)
* Correct JS requestConfig call

* Update requestWriteConfig to new API format

* Add hyperion-light and bare-minimum preset scenarios
2024-11-15 15:03:33 +01:00
LordGrey
ecceb4e7ae
Refactor Settings DB and Handling (#1786)
* Refactor config API

* Corrections

* Test Qt 6.8

* Revert "Test Qt 6.8"

This reverts commit eceebec49ecf1a3eda281a0630a9a7577b44ef0a.

* Corrections 2

* Update Changelog

* Add configFilter element for getconfig call

* Do not create errors for DB updates when in read-only mode

* Have configuration migration and validation before Hyperion starts

* Correct Tests

* Corrections

* Add migration items

* Correct windows build

* Ensure that first instance as default one exists

* Remove dependency between AuthManager and SSDPHandler

* Correct typos

* Address CodeQL findings

* Replace CamkeSettings by Presets and provide debug scenarios
2024-09-30 22:03:13 +02:00
LordGrey
4f1b95ec83
Add Home Assistant Lights support (#1763)
* New HomeAssistant LEDDevice

* Fix typos

* Ping Qt for Windows to 6.7 until aqtinstaller is fixed

* Fix HA default port handling

* HA - Update default latchtime and range

* Add HA Wizard and light selection

* Naming consistency

* Fix "Selected Hyperion instance is not running"

* CodeQL findings

* HA - allow to overwrite brightness by HA yes or no

* HA - Support switch off on black

* HA - Add transition time
2024-08-25 17:34:27 +02:00
LordGrey
6c3fc8521a
Skydimo LedDevice support (#1765)
* Support Skydimo devices

* Temporarily downgrade CMake to 3.28.3 (CodeQL)
2024-07-16 19:46:43 +02:00
Thinner77
719c844dda
add some clarifying comments (#1754) 2024-06-16 18:01:33 +02:00
Paulchen-Panther
c2bd875bc8
Remove Windows C++ redist hack
This was a hack workaround for the broken azure runner images: https://github.com/actions/runner-images/issues/10004
2024-06-15 13:02:27 +02:00
David Sansome
0bdf865f5c
DDA grabber: Set a 500ms timeout when waiting for a new frame (#1753)
* Add a DXDI DDA grabber

* Change all names to camel case

* Handle cropping and pixel decimation

* Try more persistently to restart capture after an error occurred.

These can happen when changing resolution, or resuming from sleep.

* Set a 500ms timeout when acquiring a frame.

The API won't give us a new frame if nothing on the screen has changed,
so an INFINITE timeout means we'll wait forever in this case, and
eventually the LED connection will timeout.

---------

Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2024-06-14 20:40:50 +02:00
Thinner77
7f90637a2d
MF-grabber: Add support for bottom-up image handling (#1752)
* prepare bottom-up image handling

* add default stride handling, code cleaning

* fix code

* move whole logic to MF-grabber

* minor fix

---------

Co-authored-by: Thinner77 <none>
2024-06-14 20:40:17 +02:00
LordGrey
943f9e22f3
Update external modules (#1755)
* Update flatbuffers to 24.3.25

* Update protobuf to 27.1

* Update mbedtls to 3.6.0

* Change source of Vulkan SDK

* Readd directx-sdk

* Windows Fix?

* Update qt5_6.yml

* Typo

* Revert "Update qt5_6.yml"

This reverts commit cf8db993ec9b9d18b9054f992c77fe687ba8c412.

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2024-06-14 20:39:27 +02:00
LordGrey
15c305b8f2
RGB24 and BGR24 cleanup (#1749)
* RGB24 and BGR24 cleanup

* Fix MF-Grabber

* Add BGR32 to V42L Grabber

* Add BGR32 to V42L Grabber

* Add BGR16 to V42L

* Revert "Add BGR16 to V42L"

This reverts commit 42975380f47a30a09f06d7dee7440b64b93aa305.
2024-06-01 20:26:20 +02:00
LordGrey
76fff98f5c
Implement ftdi led device - 2 (#1746) 2024-05-31 23:08:13 +02:00
Thinner77
897e4aac8a
Fix V4L2 BGR24 handling (#1748) 2024-05-30 22:30:29 +02:00
David Sansome
8c303c8b9c
Windows: Add a DDA grabber for much better performance (#1745)
* Add a DXDI DDA grabber

* Change all names to camel case

* Handle cropping and pixel decimation

* Try more persistently to restart capture after an error occurred.

These can happen when changing resolution, or resuming from sleep.
2024-05-30 13:39:46 +02:00
Thinner77
5bcbe599d3
Fix flipmode for BGR24 special handling (#1739) 2024-05-24 17:57:10 +02:00
Thinner77
bde5d156a9
faster imageresampler (#1744) 2024-05-24 09:13:33 +02:00
LordGrey
e6714b21f9
Fix Philip Hue APIv2 support without Entertainment group defined (#1743) 2024-05-21 19:37:43 +02:00
LordGrey
4a5b0b6bf2
Fix #1688 - Fragmented http-Headers (#1741) 2024-05-18 09:14:30 +02:00
Thinner77
f6cc92606c
Change confusing logic (#1731)
* Change confusing logic

* Change confusing logic #2

* revert indent

---------

Co-authored-by: Thinner77 <none>
2024-05-13 19:31:51 +02:00
LordGrey
cf287f5adb
Refactor Hyperion JSON-API (#1727) 2024-05-08 22:06:32 +02:00
LordGrey
aca757138e
Nanoleaf Updates (#1724)
* Add new devices

* Do not restore ExtControl state
2024-04-16 21:57:51 +02:00
LordGrey
d5438acbf4
Fix Cross Site Scripting Vulnerability 1 (#1720) 2024-04-02 21:44:46 +02:00
LordGrey
86d08823a8
Add workaround for issue #1692 (#1695) 2024-03-30 15:44:18 +01:00
LordGrey
806206ec01
Fix #1714 (#1717) 2024-03-15 20:23:53 +01:00
LordGrey
fedb409157
Matrix Layout enhancements (#1701)
* Support gaps on Matrix Layout

* Ensure BlackBorder objects are initialised

* Update Changelog

* Fix automated semicolon insertion

* Fix automated semicolon insertion

* Remove SPI activation from post install script (#1708)
2024-03-14 21:29:15 +01:00
LordGrey
31df065c0f
Start SmartPointers (#1679)
* Refactor to fix #1671

* Add GUI/NonGUI mode to info page

* Do not show lock config, if in non-UI mode

* Updae Changelog

* Correct includes

* Ensure key member initialization - RGB Channels

* Ensure key member initialization - WebServer

* Update RGBChannels

* Fix initialization order

* Fix key when inserting new logger in LoggerMap,
Prepare logBuffer-JSON snapshot view in LoggerManager,
Increase buffered loglines to 500

* Fix Memory leak in GrabberWrapper

* Fix Memory leak in BlackBorderProcessor

* Fix Memory leak in BlackBorderProcessor

* use ninja generator under macos

* Fix BGEffectHandler destruction

* Fix Mdns code

* Clear list after applying qDeleteAll

* Fix deletion of CecHandler

* Fix memory leak caused by wrong buffer allocation

* Remove extra pixel consistently

* Change mDNS to Qt SmartPointers

* Correct removal

* Fix usage of _width/_height (they are the output resolution, not the screen resolution)
That avoids unnecessary resizing of the output image with every transferFrame call

* Move main non Thread Objects to Smart Pointers

* Refactor Hyperion Daemon unsing smartpointers

* Correction

* Correct typos/ align text

* Fix startGrabberDispmanx

* Fix startGrabberDispmanx

* Address CodeQL finding

* Create Screen grabbers via Template

* Fix typo

* Change way of logging

* Revert change

* Address deprecation warning

* Correct auto screen grabber evaluation

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2024-02-25 17:35:39 +01:00
LordGrey
05d24b99c4
Fix Memory leaks (#1678)
* Refactor to fix #1671

* Add GUI/NonGUI mode to info page

* Do not show lock config, if in non-UI mode

* Updae Changelog

* Correct includes

* Ensure key member initialization - RGB Channels

* Ensure key member initialization - WebServer

* Update RGBChannels

* Fix initialization order

* Fix key when inserting new logger in LoggerMap,
Prepare logBuffer-JSON snapshot view in LoggerManager,
Increase buffered loglines to 500

* Fix Memory leak in GrabberWrapper

* Fix Memory leak in BlackBorderProcessor

* Fix Memory leak in BlackBorderProcessor

* use ninja generator under macos

* Fix BGEffectHandler destruction

* Fix Mdns code

* Clear list after applying qDeleteAll

* Fix deletion of CecHandler

* Fix memory leak caused by wrong buffer allocation

* Remove extra pixel consistently

* Change mDNS to Qt SmartPointers

* Correct removal

* Fix usage of _width/_height (they are the output resolution, not the screen resolution)
That avoids unnecessary resizing of the output image with every transferFrame call

* Move main non Thread Objects to Smart Pointers

* Revert "Move main non Thread Objects to Smart Pointers"

This reverts commit 26102ca963982e2fbc4ffb8d4db6139f0128a3cc.

* Add missing deletes

* Revert MdnsBrowser chnage

* Revert MdnsBrowser change

* Fix memory leaks related standalone grabber

* Address CodeQL finding

* delete pointer OsxFrameGrabber

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2024-01-13 17:04:45 +01:00
LordGrey
cdd59ffc87
Fix #1671 (#1672)
* Refactor to fix #1671

* Add GUI/NonGUI mode to info page

* Do not show lock config, if in non-UI mode

* Updae Changelog

* Correct includes

* Remove unused variable

* use ninja generator under macos

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2024-01-03 19:43:46 +01:00
LordGrey
0fce43840c
Corrections (#1662)
* Address "SyntaxWarning: invalid escape sequence"

* Correcttypo for CEC Blue button

* Fix enablement when already open

* Icons path corrected

* Correct path and simplify command

* Have enum class generalised

* Address compile warnings

* Update tinkerforce led_strip

* Address compiler waring

* Fix Install/Uninstall desktop- and icon file handling

* Address "fatal: detected dubious ownership in repository"

* platform fix

* Test  "fatal: detected dubious ownership in repository"

* Update "fatal: detected dubious ownership in repository"

* Update to Protobuf 25.1

* Update cmds with sudo

* Update SEDU default baud rates

* Replace deprecated Py_NoSiteFlag

* Correct default config

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2023-12-03 21:23:31 +01:00
LordGrey
a1f0821f33
Introduce Event Services (#1653)
* Allow to enable/disable suspend & lock event handling

* Fix Windows

* Refactor event handling incl.CEC

* Revert "Auxiliary commit to revert individual files from 0d9a8b8a3a4a09609a339f54c7d8a9384c561282"

This reverts commit 80737d926ad151a07b2493dd1685ed502975cb2e.

* Support Events for Grabbers generically

* Have CECEvent to actions configurable, further clean-ups

* Remove handleEvent from V4L2grabber, as grabber will be stopped on suspend

* Validate that one CEC Event can only trigger one action

* MacOS lock/unlock added

* fast windows fix

* Corrections

* Fix CodeQL findings

* add macos lock/unlock handler

* Migration of CEC-config and have default actions

* Correct target_link_libraries

* Include Foundation

* macOS include AppKit

* Support Scheduled Events, cleanups.

* Fix destructing

* Fix coredump during free

* Consider additional error sceanrio

* Fix missing code

* install desktop icons

* correct bash logic

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2023-11-27 09:06:43 +01:00
LordGrey
2e0cc9cfa8
Improvements (#1658)
* Restart Servial Device, if write error occurred.

* Fix typos

* Fix FOUND_USER command

* Use SUDO_USER in postinst

* Align install_pr with new package names

* Package named arm64 instead of aarch64

* Update Change log

* Fix to have the architecture resolved

* All tls plugin directory for Qt6

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2023-11-23 20:51:49 +01:00
Paulchen-Panther
91270966f9
Refactor/Create APT/DNF Repository (#1648) 2023-11-16 21:05:56 +01:00
LordGrey
27027b224c
Fix self-signed certificate handling (#1649) 2023-10-29 21:13:34 +01:00
LordGrey
b73e9f4996
Qt 6.7 (#1650)
* Do not validate values for options without value

* Clean-up

* ws281x include files workaround

* Revert "ws281x include files workaround"

This reverts commit 1b983087183e3c563a191edd34a318cfd0cdace1.

* Use https://github.com/hyperion-project/rpi_ws281x while fix is applied in original repository
2023-10-29 21:12:59 +01:00
LordGrey
a5625cf984
Upward version compatability (#1639)
* Fix macOS build

* Update minimum cmake version

* Correct compile errorswith Qt6.7

* Update minimum cmake version (2)

* Use C++17

* Correct compile errors with Qt6.7

* Replace unsupported Lambda UniqueConnection

* Support UTF-8 Output on console

* Update general page

* Fix Matrix Effect

* Install PR relative to current path

* Additional update

* Correct compile errors with Qt6.7 after master merge

* Add language - Hebrew

* Consolidate Changelog
2023-10-15 21:27:21 +02:00
LordGrey
b1e68a3572
Nanoleaf (#1647)
* Support Philips Hue APIv2 and refactoring

* Fix MDNSBrower - if timeout during host resolvment occurs

* Hue API v2 - Migrate database

* Fix macOS build

* Handle network timeout before any other error

* Address CodeQL findings

* Clean-up and Fixes

* Only getProperties, if username is available

* Option to layout by entertainment area center

* Fix Wizard

* Fix Nanoleaf, add user auth token wizard

* Nanoleaf fixes and enhancements

* Consider rotated panel layouts

* Corrections

* Layout corrections and filter for non LED panels

* Add LED test effect lightening up LEDs in sequence

* Align rotation value to 15 degree steps

* Align rotation value to 15 degree steps

* Skip non LED panels

* Fix Rotation and refactoring

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2023-10-15 17:04:51 +02:00
LordGrey
cd22d4454d
Philips Hue APIv2 support (#1637)
* Support Philips Hue APIv2 and refactoring

* Fix MDNSBrower - if timeout during host resolvment occurs

* Hue API v2 - Migrate database

* Fix macOS build

* Handle network timeout before any other error

* Address CodeQL findings

* Clean-up and Fixes

* Only getProperties, if username is available

* Option to layout by entertainment area center

* Fix Wizard

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
2023-10-03 20:33:11 +02:00
LordGrey
08dc59c885
Fix #1630 - Audio Capture settings are ignored (#1640)
* Fix macOS build

* Update minimum cmake version

* Correct compile errorswith Qt6.7

* Update minimum cmake version (2)

* Use C++17

* Correct compile errors with Qt6.7

* Replace unsupported Lambda UniqueConnection

* Support UTF-8 Output on console

* Fix #1630
2023-10-01 21:56:53 +02:00
LordGrey
a5bb7e905b
Fix non image updates ignore blacklisted leds (#1635)
* Fix #1634

* Refactor to process blacklisted LEDs with less resources
2023-08-26 11:12:43 +02:00
LordGrey
d1879c2e39
ws281x - Update logic to identify is user is admin (#1623) 2023-08-03 22:40:25 +02:00
LordGrey
42c98da470
Update platforms (#1617)
* Remove stretch, bionic, add lunar

* Fix CEC CMakeList for Ubuntu 23.04

* Fix git version identification when run in docker and local code

* Update SYSTEM_LIBS_SKIP list

* Updates after Ubuntu Server 20.04, latest PI OS Light and CoreElec 20

* Update year

* Skip List working with Fedora38 Server (x86) and libreElec 11 (x86)

* Update platform tag handling

* Show error, if ssl lib cannot be found

* Update supported platforms

* Script to install selected Pull Requests

* Fix misspelled explanation + improve description

* Correct run-id evaluation

* Support python3 and python2

* Support to copy existing config for PR testing
2023-07-21 16:45:37 +02:00
LordGrey
64642a4457
Fix WLED UI handling non supported segment streaming (#1610) 2023-07-10 20:39:35 +02:00
LordGrey
5535b884bf
Fixes (#1605)
* Correct misleading Error messages

* Fix that Audio Capture is not shown when there is no screen nor video grabber

* Fix - Audio Capture enabled after reboot automatically (#1581)
2023-05-07 14:04:45 +02:00
Portisch
85eb62f314
Fix missing Include (#1585)
'std::numeric_limits' do need '#include <limits>'
2023-03-09 08:38:05 +01:00
LordGrey
24a00e3b0b
Prep Release 2.0.15 (#1571)
* Readd import Collections to show JSON validation failures details

* Editorial update

* Audiograbber - Remove config for not implemented feature

* Smoothing - Update defaults and range

* Version 2.0.15
2023-02-19 13:24:43 +01:00
Michael Rochelle
acdf733936
Audio Grabber Feature (#1570)
* Creating Audio Grabber

Creating Audio Grabber

Creating Audio Grabber.

Successfully began capturing audio in windows. Starting to implement a hard-coded UV Visualizer.

Got Windows DirectSound Implementation working.
Hardcoded basic VU Meter.

Begin working on linux audio grabber implementation.

Finished Linux Draft Implementation.
Minor Mods to windows implementation.

Windows:
 - Free memory used by device id.
 - Prevent starting audio if the grabber is disabled
 - More debug logging

Linux:
 - Prevent starting audio if the grabber is disabled

Added strings to english
Removed "custom" from device selection
Made hard-coded visualizer values configurable.
wrote values to imageData with BGR priority to enable configurable values to be set in RGB format.
created logic to support "Automatic" to enable the API to select the default device.

Add language key for audio in "Remote Control" section.
Removed audio configuration for number of channels. This was causing an error with some devices.

Fixed logic to update capture while its active.
Optimizing code .

UI Tweaks
Destructuring.

Fixed build error on linux.

Custom Effects - Clean-ups and Enhancements (#1163)

* Cleanup EffectFileHandler

* Support Custom Effect Schemas and align EffectFileHandler

* Change back to colon prefix for system effects

* WebSockets - Fix error in handling fragmented frames

* Correct missing colon updates

* Update json with image file location for custom gif effects

* Image effect deletion - considere full filename is stored in JSON

* Correct selection lists indentions

Creating Audio Grabber

Creating Audio Grabber

Creating Audio Grabber.

Successfully began capturing audio in windows. Starting to implement a hard-coded UV Visualizer.

Got Windows DirectSound Implementation working.
Hardcoded basic VU Meter.

Begin working on linux audio grabber implementation.

Finished Linux Draft Implementation.
Minor Mods to windows implementation.

Windows:
 - Free memory used by device id.
 - Prevent starting audio if the grabber is disabled
 - More debug logging

Linux:
 - Prevent starting audio if the grabber is disabled

Added strings to english
Removed "custom" from device selection
Made hard-coded visualizer values configurable.
wrote values to imageData with BGR priority to enable configurable values to be set in RGB format.
created logic to support "Automatic" to enable the API to select the default device.

Add language key for audio in "Remote Control" section.
Removed audio configuration for number of channels. This was causing an error with some devices.

Fixed logic to update capture while its active.
Optimizing code .

UI Tweaks
Destructuring.

Fixed build error on linux.

Commented setVideoMode from AudioGrabber.

Linux Threading changes.

Implementing new API

Continuing to implement audio into new APIs

Fixed Audio Grabber for DirectSound on Windows
Fixed UI for Audio Grabber Configuration
Default AUDIO to off unless specified.

fixed missing #ifdef for audio grabber.

Added logic to calculate a dynamic multiplier from the signal input.

Updating linux api for discovering devices.

Fixed HTML/JS issues with view.
Fixed NPE in Windows.
Disabled setting thread priority in linux.

updated the schema options check to pass through hidden states and commented the change.

Updated grabber start conditions
Updated Audio grabber to instantiate similar to video grabber

Updated windows grabber to set "started" flag to false when shutting down.
Removed "tryStart" to prevent enabling audio capture unnecessarily.

Fixing instance audio grabber device configuration

Added configurable resolution
Reduced tolerance to 5%
Fixed issue where grabber failed for additional instances when "start" was called multiple times.

Fixed resolution calculation

Change averaging algorithm to prevent overflowing the sum.

Updated logic to stop audio grabber when disabled.

Fix integer casting and rounding.

Restart grabber on configuration change.
Fix missing include/grabber/AudioGrabber.
Disable tolerance.

Added configurable tolerance.
Fixed tolerance algorithm.
reset multiplier on configuration change.

Line Endings

Proposed change and questions/request to fix

implementing more of LordGrey's suggestions.

Fix mode for snd_pcm_open. Latest ALSA uses SND_PCM_NONBLOCK instead of SND_PCM_OPEN_NONBLOCK
defaulted multiplier to 0 "auto"
defaulted tolerance to 20%

changed 100 to 100.0 for pixel value percentage calculation to fix value from being 0.

missed a 100 as a double so precision isn't lost during math operation.

Fix Windows grabber and further cleanups

Enable Audio grabbing in standard build

Remove empty methods

Fix audio capture priority setting

Remove unused code

Clean-up default config

Allow additional json-editor attributes

Allow multiple effects and resetting to defaults

Correct default values

Allow to build for Qt < 5.14

Update CodeQL build dependency

Update build dependencies

Remove effect1 placeholder

* Renamed uvMeter to VU Meter (Volume Unit)
- Fixed issues flagged by code scanning bot.

* Moved stop call into destructor of implementing class.

* Removed commented linux audio channel configuration logic.

---------

Co-authored-by: Michael Rochelle <michael@j2inn.com>
2023-02-19 09:36:39 +01:00
LordGrey
a1bfa63343
Update schema-webConfig.json 2023-02-17 17:09:12 +01:00
LordGrey
1ae37d151e
Dominant Color support (#1569)
* Dominant Color and Mean Color Squared

* Workaround - Suppress empty LED updates

* Add missing text

* Dominant Colors advanced

* Test with fixed initial colors

* Test with fixed initial colors

* Support new processing values via API

* ImageToLED - Add reduced pixel processing, make dominant color advanced configurable

* Updates on Grabber fps setting

* ImageToLedMap - Remove maptype and update test

* Update dynamic cluster array allocation
2023-02-17 16:02:51 +01:00
LordGrey
bf418686e3
Fix WLED & Smoothing (#1567)
* WLED - Fix empty segment element in DB

* WLED - Fix to not overwrite on state when not isStayOnAfterStreaming

* Refactor ProviderRestApi, increase default timeout

* Fix Smoothing - Fix empty updates, consider smoothing configs for effects

* UI - Fix not removed priority

* Add missing header and code updates

* setRedirectPolicy was only introduced in Qt 5.9

* Adalight - Align to HyperSerial v9.0.0

* HyperSerial Hyperion with awa protocol v8.0.0

* Correct line-endings
2023-02-12 21:20:50 +01:00