Skip to content

Commit 60854b0

Browse files
committed
Merge remote-tracking branch 'upstream/master' into arm64
2 parents 53f8412 + 37bf1cc commit 60854b0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+865
-385
lines changed

CHANGELOG.md

Lines changed: 141 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -6,93 +6,147 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased](https://github.com/hyperion-project/hyperion.ng/compare/2.0.16...HEAD)
88

9-
### Breaking
10-
11-
**JSON-API**
12-
- Align JSON subscription update elements. `ledcolors-imagestream-update, ledcolors-ledstream-update, logmsg-update` now return data via `data` and not `result
13-
- Global global configuration elements are now separated form instance specific ones
14-
15-
### Added
16-
17-
- Support for ftdi chip based LED-devices with ws2812, sk6812 apa102 LED types (Many thanks to @nurikk) (#1746)
18-
- Support for Skydimo devices
19-
- Support gaps on Matrix Layout (#1696)
20-
- Support a configurable grabber inactive detection time interval (#1740)
21-
- Support for dominant color processing on a full image which is applied to all LEDs (#1853)
22-
- Windows: Added a new grabber that uses the DXGI DDA (Desktop Duplication API). This has much better performance than the DX grabber as it does more of its work on the GPU.
23-
- Support to freely select source and target instances to be used by forwarder
24-
- Support to import, export and backup Hyperion's full configuration via the UI, JSON-API and commandline (`--importConfig, --exportConfig`) (#804)
25-
- Allow to force starting Hyperion in read-only mode (`--readonlyMode`)
26-
- Effects: Limit the maximum update rate to 200Hz
27-
- Systray: Support multiple instances
28-
- UI: Validate that key ports do not overlap across editors and pages
29-
- UI: Provide additional details in error dialogue
30-
- UI: LED preview - show instance's name the preview is applicable to
31-
- Http-Server: Support Cross-Origin Resource Sharing (CORS) (#1496)
32-
- GitHub: Windows 11 (arm64) has been added to the Qt6 workflow build
33-
34-
**JSON-API**
35-
- New subscription support for event updates, i.e. `Suspend, Resume, Idle, idleResume, Restart, Quit`.
36-
- Support direct or multiple instance addressing via single requests (#809)
37-
- Support of `serverinfo` subcommands: `getInfo, subscribe, unsubscribe, getSubscriptions, getSubscriptionCommands`
38-
- [Overview](https://github.com/hyperion-project/hyperion.ng/blob/API_Auth/doc/development/JSON-API%20_Commands_Overview.md) of API commands and subscription updates
39-
- Support to query for a dedicated set of configuration items for a set of instances
40-
- Support to save a dedicated set of configuration items for a set of instances
41-
- Limit update emission frequency: Images (25Hz), raw LED-Colors (40Hz) & LED-Device data (200Hz)
42-
- Support for requesting instance-data via JSON-API. Implemented requesting the current image in different formats or led colors.
43-
44-
### Changed
45-
46-
- Removed hard dependency on the first instance. All instances can now be freely created/removed, started or stopped
47-
- Fixed: Cross Site Scripting Vulnerability (CVE-2024-4174, CVE-2024-4175)
48-
- Fixed: hyperion-v4l2 taking screenshot failed (#1722)
49-
- Nanoleaf: Support new devices and do not restore ExtControl state
50-
- Workaround to address Web UI keeps forcing browser to download the html instead (#1692)
51-
- Fixed: Kodi Color Calibration, Refactor Wizards (#1674)
52-
- Fixed: Token Dialog not closing
53-
- Fixed: Philip Hue APIv2 support without Entertainment group defined (#1742)
54-
- Refactored: Database access layer
55-
- Refactored: Hyperion's configuration database is validated before start-up (and migrated, if required)
56-
- Refactored: Python to enable parallel effect processing under Python 3.12
57-
- Refactored: Forwarder
58-
- Refactored: Flatbuffer connection- and client handling
59-
- Refactored: Decouple Effect definitions from Instance
60-
- Refactored: Decouple WebServer and SSDPHandler
61-
- Refactored: Corrected thread affinity across various classes
62-
- Refactored: Improved code resilience and error handling
63-
- Refactored: Streamlined the UI code
64-
- Standalone grabber do not capture screens when no connection to remote host
65-
- Fixed: Python 3.12 crashes (#1747)
66-
- osX Grabber: Use ScreenCaptureKit under macOS 15 and above
67-
- Removed maximum LED number constraint from Matrix layout schema which was not synced with the UI behaviour (#1804)
68-
- Fixed bespoke WebSocket implementation by using of QWebSockets (#1816, #1448, #1247, #1130)
69-
- Fixed mDNS Browser deadlock, plus run in own thread now
70-
- Fixed that LED Buffer and Layout might get out of sync.
71-
- Fixed Screen capture error (#1824)
72-
- Fixed Provide custom forwarding targets is not possible (#1713)
73-
- Fixed Last update of an effect event is not removed in sources overview
74-
- Fixed Removed stale _logger object
75-
- Fixed Smoothing (#1863)
76-
- UI: Instance listings are sorted, enabled instances are high-lighted in drop-downs
77-
- GitHub: For Windows, Pull request artifacts are now built with RelWithDebInfo (#1865 )
78-
79-
**JSON-API**
80-
- Refactored JSON-API to ensure consistent authorization behaviour across sessions and single requests with token authorization.
81-
- Provide additional error details with API responses, esp. on JSON parsing, validation or token errors.
82-
- Generate random TANs for every API request from the Hyperion UI
83-
- Configuration requests do not any longer require a running instance
84-
- Ensure that API service does not process commands when Hyperion is quitting
85-
- Fixed: Handling of IP4 addresses wrapped in IPv6 for external network connections
86-
- Fixed: Local Admin API Authentication rejects valid tokens (#1251)
87-
- Fixed: Create a proper API response, when Effects are not part of a build
88-
- Fixed: Return correct mapping type for a running instance
89-
90-
### Removed
91-
92-
**JSON-API**
93-
- Removed ability to enable/disable local admin authorization. All admin commands require authorization, i.e. `authorize-adminRequired` will always be `true`.
94-
- Removed `session-updates` subscription
95-
- `serverinfo/subscribe` element will be deprecated and replaced by corresponding subcommand
9+
### ⚠️ Breaking Changes
10+
11+
#### JSON-API
12+
- Standardized subscription update elements: `ledcolors-imagestream-update`, `ledcolors-ledstream-update`, and `logmsg-update` now return data under `data` instead of `result`.
13+
- Global configuration elements are now separated from instance-specific ones.
14+
15+
---
16+
17+
### ✨ Added
18+
19+
- **Windows:** Added a new grabber using **DXGI DDA (Desktop Duplication API)** for improved GPU-based performance. _Thanks to @davidsansome_ (#1745, #1753)
20+
- Support for **bottom-up image** handling using the MF grabber. _Thanks to @Thinner77_ (#1752)
21+
- Support for **FTDI** chip-based LED devices (`WS2812`, `SK6812`, `APA102`). _Thanks to @nurikk_ (#1746)
22+
- Support for **16-bit HD108 LEDs** via SPI. _Thanks to @FutureMan0_ (#1826)
23+
- Support for **HomeAssistant** devices (#1763)
24+
- Support for **Skydimo** devices
25+
- Support for new **Nanoleaf device types**
26+
- Support for **gaps in matrix layout** (#1696)
27+
- Support for **NV12 format** in Flat-Buffer image streams
28+
- Support for **SizeDecimation** in Flat-Buffer inputs
29+
- Support for **temperature adjustment** (#658)
30+
- Configurable **grabber inactivity detection** interval (#1740)
31+
- **Dominant color processing** across the full image, applied to all LEDs (#1853)
32+
- Selectable **source and target instances** in the forwarder
33+
- Import, export, and backup of **Hyperion's configuration** via UI, JSON-API, and CLI (`--importConfig`, `--exportConfig`) (#804)
34+
- Option to **force read-only mode** at startup (`--readonlyMode`)
35+
- **Effects:** Limit update rate to 200 Hz
36+
- **Systray:** Support for multiple instances
37+
- **UI:**
38+
- Validation to ensure key ports do not overlap across editors/pages
39+
- Enhanced error dialog with additional details
40+
- LED preview displays the associated instance name
41+
- **HTTP Server:** Support for **Cross-Origin Resource Sharing (CORS)** (#1496)
42+
- **GitHub builds** Added Windows 11 on arm64 platform
43+
44+
#### JSON-API
45+
- New event subscriptions: `Suspend`, `Resume`, `Idle`, `IdleResume`, `Restart`, `Quit`
46+
- Support for **direct/multi-instance addressing** within single requests (#809)
47+
- `serverinfo` subcommands: `getInfo`, `subscribe`, `unsubscribe`, `getSubscriptions`, `getSubscriptionCommands`
48+
- [API Overview](https://api.hyperion-project.org/)
49+
- Query/save specific configuration items per instance
50+
- Update frequency limits:
51+
- Images: 25 Hz
52+
- Raw LED colors: 40 Hz
53+
- LED device data: 200 Hz
54+
- Request **instance data** (e.g., image snapshots, LED colors). _Thanks to @xIronic_ (#1839)
55+
56+
---
57+
58+
### 🔧 Changed
59+
60+
- Instances no longer depend on the first instance; any can be created, started, stopped, or removed independently.
61+
62+
- **Security Fixes:**
63+
- Fixed Cross-Site Scripting (XSS) vulnerabilities (CVE-2024-4174, CVE-2024-4175)
64+
- Added detailed logs for "Trust on first use" certificates, especially when a certificate can't be stored
65+
66+
- **Fixes:**
67+
- Broken links in README. _Thanks to @blueicehaller_ (#1780)
68+
- RGB24/BGR24 cleanup. _Thanks to @Thinner77_ (#1748, #1749)
69+
- Clarifying comments in MF grabber. _Thanks to @Thinner77_ (#1754)
70+
- Nanoleaf LED strip overlap error. _Thanks to @geekykayaker_ (#1844)
71+
- Philips Hue APIv2 support without Entertainment group (#1742)
72+
- `hyperion-v4l2` screenshot failures (#1722)
73+
- Token dialog not closing
74+
- Kodi color calibration and wizard refactor (#1674)
75+
- Forwarding to custom targets (#1713)
76+
- Screen capture error (#1824)
77+
- Python 3.12 crash fixes (#1747)
78+
- UI LED buffer/layout sync issues
79+
- Last effect event not cleared in source overview
80+
- Smoothing issues (#1863)
81+
- Crash when switching display managers (XCB/X11 to Wayland)
82+
- Effect not suspended when instance is stopped (#1586)
83+
- Background effect incorrectly starts when instance is disabled
84+
- Incorrect target directory built during effect export
85+
- Removed stale `_logger` object
86+
- Windows: improper use of “/dev/null”
87+
- Fragmented HTTP headers causing "incorrect HTTP headers" error (#1688)
88+
- Misleading "Access Denied" message; disabled "Identify" for the same serial device type (#1737)
89+
90+
- **Web UI:**
91+
- Workaround that Content type is wrongly resoved (#1692)
92+
- Sorted instance lists; active instances are now highlighted in dropdowns
93+
94+
- **Networking/UI:**
95+
- Replaced custom WebSocket implementation with `QWebSockets` (#1816, #1448, #1247, #1130)
96+
- Fixed mDNS browser deadlock by moving it to a dedicated thread
97+
98+
- **Platform-Specific:**
99+
- **macOS:** Use `ScreenCaptureKit` on macOS 15+
100+
- Standalone grabber no longer captures without a connected remote host
101+
102+
- **Layout:**
103+
- Removed maximum LED limit from matrix layout schema to match UI (#1804)
104+
105+
- **Refactors:**
106+
- ImageResampler improvements. _Thanks to @Thinner77_ (#1744)
107+
- Corrected confusing `_noSignalDetected` logic. _Thanks to @Thinner77_ (#1731)
108+
- Removed unused libraries for Amlogic. _Thanks to @Portisch_ (#1725)
109+
- GrabberWrapper constructors (#1714)
110+
- Database access and validation/migration on startup
111+
- Forwarder cleanup
112+
- Flatbuffer client/connection handling
113+
- Decoupled effect definitions from instances
114+
- Decoupled WebServer from SSDP handler
115+
- Python effects: support parallel processing (Python 3.12)
116+
- Corrected threads' affinity
117+
- Use of smart pointers
118+
- UI code streamlining
119+
- Improved `install_pr` script
120+
- Enhanced resilience and error handling
121+
122+
- **Build:**
123+
- Updated **CompileHowto for macOS**. _Thanks to @Rastafabisch_ (#1757)
124+
- Added missing `ENABLE_MDNS`. _Thanks to @Links2004_ (#1711)
125+
- Build system now uses **pre-built dependencies** to reduce resource usage
126+
- Introduced **CMakePresets** and a **CMakeUserPresets** template
127+
- GitHub Windows, Pull request artifacts are built with RelWithDebInfo (#1865 )
128+
129+
#### JSON-API
130+
- Consistent token authorization across sessions and single requests
131+
- Improved error messages (e.g., JSON parsing, token issues)
132+
- Random TAN generation per API request (from UI)
133+
- Configuration requests no longer require a running instance
134+
- Commands are ignored during shutdown
135+
- Fixed IPv4-in-IPv6 handling for external connections
136+
- Fixed admin authentication token validation (#1251)
137+
- Fixed error on missing effects in builds
138+
- Corrected mapping type for running instances
139+
140+
---
141+
142+
### 🗑️ Removed
143+
144+
#### JSON-API
145+
- Removed the ability to disable local admin authorization
146+
- `authorize-adminRequired` is now always `true`
147+
- Removed: `session-updates` subscription
148+
- Deprecated: `serverinfo/subscribe`
149+
- Use `subscribe` / `unsubscribe` subcommands instead
96150

97151
## [2.0.16](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.16) - 2024-01
98152

@@ -419,7 +473,6 @@ To run Hyperion with root privileges (e.g. for WS281x) execute <br> `sudo update
419473
- Fixed: Nanoleaf does not turn on
420474
- Fixed LED layout - Additional parameters for classic layout were not saved (#1314)
421475
- Fixed Network LED-Device UI: Trigger getProperties for the configured host, when no hosts were discovered
422-
- Fixed Nanoleaf error if LEDs in strip overlap
423476

424477
### Removed:
425478

assets/webconfig/i18n/de.json

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@
403403
"edt_conf_enum_dl_verbose2": "Stufe 2",
404404
"edt_conf_enum_dl_verbose3": "Stufe 3",
405405
"edt_conf_enum_dominant_color": "Dominante Farbe - pro LED",
406-
"edt_conf_enum_dominant_color_advanced": "Dominante Farbe fortgeschritten - pro LED",
406+
"edt_conf_enum_dominant_color_advanced": "Dominante Farbe (fortgeschritten) - pro LED",
407407
"edt_conf_enum_effect": "Effekt",
408408
"edt_conf_enum_gbr": "GBR",
409409
"edt_conf_enum_grb": "GRB",
@@ -428,6 +428,8 @@
428428
"edt_conf_enum_transeffect_sudden": "Sofort",
429429
"edt_conf_enum_udp_ddp": "DDP",
430430
"edt_conf_enum_udp_raw": "RAW",
431+
"edt_conf_enum_unicolor_dominant": "Dominante Farbe Gesamtbild - auf alle LED angewandt",
432+
"edt_conf_enum_unicolor_dominant_advanced": "Dominante Farbe Gesamtbild (fortgeschritten) - auf alle LED angewandt",
431433
"edt_conf_enum_unicolor_mean": "Durchschnittsfarbe Gesamtbild - auf alle LED angewandt",
432434
"edt_conf_fg_display_expl": "Gebe an, von welchem Desktop aufgenommen werden soll. (Multi Monitor Setup)",
433435
"edt_conf_fg_display_title": "Display",
@@ -1090,6 +1092,7 @@
10901092
"remote_input_ip": "IP:",
10911093
"remote_input_label": "Quellenauswahl",
10921094
"remote_input_label_autoselect": "Automatische Auswahl",
1095+
"remote_input_no_sources": "Keine Quellen verfügbar.",
10931096
"remote_input_origin": "Ursprung",
10941097
"remote_input_owner": "Typ",
10951098
"remote_input_priority": "Priorität",
@@ -1099,10 +1102,12 @@
10991102
"remote_losthint": "Hinweis: Alle Änderungen gehen nach einem Neustart verloren.",
11001103
"remote_maptype_intro": "Für gewöhnlich entscheidet dein LED-Layout welcher Bildbereich welche LED zugewiesen bekommt, dies kann hier geändert werden: $1",
11011104
"remote_maptype_label": "LED-Bereich Zuordnung",
1102-
"remote_maptype_label_dominant_color": "Dominante Farbe",
1103-
"remote_maptype_label_dominant_color_advanced": "Dominante Farbe fortgeschritten",
1104-
"remote_maptype_label_multicolor_mean": "Durchschnittsfarbe einfach",
1105-
"remote_maptype_label_multicolor_mean_squared": "Durchschnittsfarbe zum Quadrat",
1105+
"remote_maptype_label_dominant_color": "Dominante Farbe - einfach",
1106+
"remote_maptype_label_dominant_color_advanced": "Dominante Farbe - fortgeschritten",
1107+
"remote_maptype_label_multicolor_mean": "Durchschnittsfarbe - einfach",
1108+
"remote_maptype_label_multicolor_mean_squared": "Durchschnittsfarbe - zum Quadrat",
1109+
"remote_maptype_label_unicolor_dominant": "Dominante Farbe Gesamtbild - einfach",
1110+
"remote_maptype_label_unicolor_dominant_advanced": "Dominante Farbe Gesamtbild - fortgeschritten",
11061111
"remote_maptype_label_unicolor_mean": "Durchschnittsfarbe Gesamtbild",
11071112
"remote_optgroup_syseffets": "Mitgelieferte Effekte",
11081113
"remote_optgroup_templates_custom": "Nutzer Vorlage",
@@ -1228,5 +1233,8 @@
12281233
"wiz_yeelight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Mit der Position wählst du aus, wo die jeweilige Lampe \"im Bild\" sitzen soll. Deaktivierte Lampen werden nicht hinzugefügt. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
12291234
"wiz_yeelight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Yeelight. Zu den Funktionen zählen ein automatisches Finden der Yeelights, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.",
12301235
"wiz_yeelight_title": "Yeelight Einrichtungsassistent",
1231-
"wiz_yeelight_unsupported": "Nicht unterstützt"
1236+
"wiz_yeelight_unsupported": "Nicht unterstützt",
1237+
"ws_error_occured": "Ein WebSocket-Fehler ist aufgetreten",
1238+
"ws_not_supported": "Ihr Browser unterstützt kein Websocket Verbindungen",
1239+
"ws_processing_exception": "Bei der Verarbeitung von Websocket-Nachrichten gibt es einen Fehler"
12321240
}

0 commit comments

Comments
 (0)