21 Commits

Author SHA1 Message Date
c46fade6b0 feat: Refactor main application to use HyperionProcessor and WledClient with environment variable configuration 2025-08-16 05:40:47 +02:00
e31f154b38 feat: Implement and verify HyperionProcessor with live visualization 2025-08-16 03:58:49 +02:00
edb694fd81 feat(wled-config-tool): Re-implement and fix demo and flash modes
- Re-implemented the demo and interactive flashing functionality for the wled_config_tool from scratch based on the detailed specification in lessons_learned.md.
- Added a new WledClient::setLedsColor method to send the entire LED state in a single packet, preventing flickering.
- Fixed multiple build issues, including missing Qt module dependencies, deprecated function calls, and linker errors.
- Updated lessons_learned.md to document the code loss and recovery process, as well as the build fixes.
2025-08-16 01:28:58 +02:00
f6dec995f9 feat: Implement and verify WLED configuration retrieval tool 2025-08-16 00:06:57 +02:00
c50aed732e feat: Implement WLED direct communication, config tool, and screen capture test setup. 2025-08-15 23:31:28 +02:00
77059a24aa Refactor: Remove wled_test and update CMakeLists.txt 2025-08-15 21:58:22 +02:00
be1342393e Lessons Learned: Hyperion JSON API is JSON-RPC based, command structure, and specific handlers. 2025-08-15 00:11:29 +02:00
3dda269c4b Fix: Correct image orientation in Wayland grabber
Resolved the issue where captured images were appearing upside down or flipped.
Implemented a final vertical flip on the QImage after reading from the OpenGL
Framebuffer Object (FBO) to ensure correct orientation before sending to Hyperion.
This completes the basic hardware-accelerated scaling pipeline.
2025-08-14 22:19:15 +02:00
0471752613 Refactor: Transition to Wayland-only grabber, remove X11 code, and rename components for clarity. 2025-08-14 21:48:14 +02:00
18a8812d66 feat: Refactor to Wayland-only and add mock server
- Remove all X11-related code and dependencies.
- Create a mock Hyperion server for testing.
- Refactor the main application to be Wayland-only.
- Update the build system and documentation.
2025-08-14 20:31:00 +02:00
7dbc11afe1 feat: Migrate Wayland POC to Qt6 and QScreenCapture 2025-08-14 19:43:28 +02:00
ab4bb5a7ec Refactor: Initial setup for Wayland POC with KDE-specific protocol and Docker build environment. 2025-08-14 19:07:12 +02:00
710918a622 feat: Refactor wayland_poc to use QDBus for xdg-desktop-portal interaction
This commit refactors the wayland_poc executable to use Qt's QDBus
module for interacting with xdg-desktop-portal. This approach bypasses
the problematic direct inclusion of PipeWire session manager headers
(e.g., session-manager.h) that were causing persistent compilation errors.

The wayland_poc now focuses solely on requesting screen capture permission
via D-Bus and retrieving the PipeWire node ID, without attempting to
create or manage PipeWire streams directly.

This change aims to provide a working foundation for the xdg-desktop-portal
interaction, which can then be integrated with the core PipeWire stream
capture logic (demonstrated by tutorial5.c).
2025-08-14 04:26:53 +02:00
cdc253bbc7 feat: Add Wayland screen capture POC using PipeWire
This commit introduces a standalone proof-of-concept (POC) for screen
capture on Wayland using PipeWire and xdg-desktop-portal.

The POC demonstrates:
- Initializing PipeWire context and core.
- Requesting screen capture permission via xdg-desktop-portal, which
  triggers a user consent dialog.
- Receiving the PipeWire node ID for the selected screen/window.
- Connecting a PipeWire stream to the capture node.
- Processing a single video frame from the PipeWire stream.
- Converting the raw frame data into a QImage and saving it as a PNG file.

This POC serves as a foundational step towards adapting the Hyperion
grabber to work natively on Wayland, replacing the existing X11-specific
grabbing logic.

Further work will involve integrating this logic into the main grabber
application and handling continuous frame processing.
2025-08-14 03:02:54 +02:00
kevin
e68da0a4cc Add a new method for determining user inactivity.
Fix some bugs.
2019-06-26 19:15:32 -04:00
kevin
621a8e2ce5 Set release flag on cmake 2019-06-24 15:59:34 -04:00
kevin
3f2c055515 Slightly optimize performance by caching some variables and frameskipping in the damage loop. 2019-06-24 15:57:32 -04:00
kevin
07ba3830a3 Reduce CPU usage by more than half by using QImage to do ABGR -> RGB conversion.
Now the main CPU hog is base64encoding the image data to send to Hyperion.
Don't sent signal as exit code.
2019-06-24 09:18:22 -04:00
kevin
ef28856d8b Remove uneeded package from CMakeLists 2019-06-23 14:17:38 -04:00
kevin
d39d4a687c Add functions / arguments to adjust LED's 2019-06-23 12:36:27 -04:00
kevin
4aa7578cf7 Adding files 2019-06-22 22:34:40 -04:00