Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update resource, force HyperSerial detection #723

Merged
merged 10 commits into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/push-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
pull_request:

env:
USE_CACHE: "1"
USE_CACHE: "0"
RESET_CACHE: "0"
USE_CODEQL: "1"
BUILD_ARCHIVES: ${{ startsWith(github.event.ref, 'refs/tags') && 1 || 0 }}
Expand Down
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
- Fix verbose command line option #737 (v20 beta2 🆕)
- New features: disable LEDs/components on startup #737 (v20 beta2 🆕)
- New features: stop processing when user has locked the system #737 (v20 beta2 🆕)
- Force HyperSerial detection #732 Thanks @alex-013 (v20 beta2 🆕)
- Fix Linux DBus sleep/wakeup handler (v20 beta2 🆕)
- Fix pipewire grabber for non-contiguous DMA memory & EGL #711 Thanks @Mic92 (v20 beta2 🆕)
- Update build scripts and include Ubuntu 24.04 LTS (v20 beta2 🆕)
- Fixes for v20beta1 #705 (v20 beta2 🆕)
- Refactoring. Migration to C++ smart pointers (v20 beta 🆕)
- Pixel and vertex shaders hardware acceleration for DX11 Windows grabber (v20 beta 🆕)
- Unified LED driver smoothing and clocking for better linear transition (v20 beta 🆕)
Expand All @@ -13,7 +21,7 @@
- Upgrade Fedora 38 to 39, Ubuntu 23.04 to 23.10 #667 (v20 beta 🆕)
- Colorized logs #640 (v20 beta 🆕)
- Fix macOS build #638 #671 #672 (v20 beta 🆕)
- Update language file's. Thanks @AstaRom #617 (v20 beta 🆕)
- Update language file's. Thanks @AstaRom #505 #538 #571 #617 #710 #716 #723 (v20 beta 🆕)
- Make bonjour use logging utilities. Thanks @nurikk #529 (v20 beta 🆕)
- New interface: removed ancient Font Awesome 4 (so 2017...) Migrate to SVG: Bootstrap Icons and Google Material Icons/Symbols #605 (v20 beta 🆕)
- New device discovery service #605 (v20 beta 🆕)
Expand Down Expand Up @@ -44,7 +52,6 @@
- Update Github actions/download@v3 #372 (v20 beta 🆕)
- Remove depraciated ::set-output from Github Action #390 (v20 beta 🆕)
- Upgrade Bootstrap to 5.2.3 / improved 'video live preview' on smartphones #336 (v20 beta 🆕)
- Update language file's. Thanks @AstaRom #505 (v20 beta 🆕)
- LED designer context menu to disable, identify or customize LED position and size etc
- Added Philips Hue Entertainment API 2. Support for Hue gradients (thanks @gibahjoe)
- Save/restore WLED state and set max brightness at startup
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2020-2023 awawa-dev
Copyright (c) 2020-2024 awawa-dev

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## About

Open source ambient lighting implementation for television and music sets based on the video and audio streams analysis. Focused on stability while ensuring performance and quality, especially for USB grabbers. Single and multi-threaded video processing optimization for **Windows**, **macOS** and **Linux x64 & ARM** (Raspberry Pi and others).
Open source ambient lighting implementation for television and music sets based on the video and audio streams analysis. Focused on stability while ensuring performance and quality. Single and multi-threaded video processing optimization for **Windows**, **macOS** and **Linux x64 & ARM** (Raspberry Pi and others).

![v20](https://github.com/awawa-dev/HyperHDR/assets/69086569/9bc7999d-1515-4a96-ba5e-8a732cf7d8a4)

Expand All @@ -17,14 +17,14 @@ Open source ambient lighting implementation for television and music sets based
* Support for USB grabbers under Linux, Windows 10, macOS (x64/M1)
* Pipewire/Portal hardware-accelerated screen capturer for Linux/Wayland
* DirectX screen grabber with pixel and vertex shader processing acceleration for Windows 10/11
* DirectX screen grabber supports native Windows HDR modes like DXGI_FORMAT_R16G16B16A16_FLOAT
* Dynamic video cache buffers. Now Rpi can process even 1080p120 NV12 stream without any size decimation
* Built-in audio visualization effects using **spectrum analysis**
* MQTT support for IoT
* Entertainment API v2: per-channel support for Philips Gradient Strip and others
* Automatic LUT calibration detects grabber model specific properties for the best quality of HDR/SDR
* Optimized multi-instances. You can use for example your TV LED strip and multiple WLED or Philips Hue light sources.
* Built-in latency benchmark for USB grabbers
* Software screen grabbers: DirectX11 (Windows), CoreGraphics (macOS), Pipewire/Wayland/x11 (Linux), frame buffer (Linux)
* easy LED strip geometry editing process, automatic or manual with mouse and context menu per single LED
* Automatic signal detection with smart learning capability for USB grabbers
* SK6812 RGBW: advanced calibration of the white color channel for [HyperSerialEsp8266](https://github.com/awawa-dev/HyperSerialEsp8266), [HyperSerialESP32](https://github.com/awawa-dev/HyperSerialESP32), [HyperSPI](https://github.com/awawa-dev/HyperSPI), [HyperSerialPico](https://github.com/awawa-dev/HyperSerialPico)
Expand All @@ -33,7 +33,9 @@ Open source ambient lighting implementation for television and music sets based
* Support for 48bits HD108 LED strip
* Support WS281x, APA102, HD107, SK9822 and SK6812 RGBW LED strips using the fastest possible cable solution for generic ESP8266/ESP32/rp2040 external LED drivers: [HyperSPI](https://github.com/awawa-dev/HyperSPI). Alternatively, there is a simple solution using a high-speed connection via a standard USB serial port for ESP8266/ESP32/Pico with data integrity check and white channel calibration: [HyperSerialEsp8266](https://github.com/awawa-dev/HyperSerialEsp8266) and [HyperSerialESP32](https://github.com/awawa-dev/HyperSerialESP32) and for Raspberry Pi Pico [HyperSerialPico](https://github.com/awawa-dev/HyperSerialPico). You can also use our WLED fork for ESP8266 and ESP32 using 2Mb baud speed (or higher): [HyperSerialWLED](https://github.com/awawa-dev/HyperSerialWLED)

Our advanced video processing can improve the source for the LEDs, making the ambient lighting even more enjoyable and colorful.
Our advanced video processing can improve the source for the LEDs, making the ambient lighting even more enjoyable and colorful.
You can use it for SDR video streams as well as for HDR and Dolby Vision (LLDV if your hardware supports it). Or instead of using a USB grabber, let your computer screen be the video source with software capture.

![example](https://github.com/awawa-dev/HyperHDR/assets/69086569/4077c05d-4c02-47eb-8d64-a334064403b3)

## Download packages & sources
Expand Down
2 changes: 1 addition & 1 deletion cmake/osxbundle/LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 awawa-dev
Copyright (c) 2024 awawa-dev

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
Expand Down
2 changes: 1 addition & 1 deletion include/base/ColorCalibration.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/base/LedCalibration.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/base/RawUdpServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/bonjour/DiscoveryRecord.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/bonjour/DiscoveryWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/grabber/DX/PixelShaderHyperHDR.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/grabber/DX/VertexShaderHyperHDR.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/proto-nano-server/ProtoNanoClientConnection.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/utils/ChannelCalibration.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/utils/GlobalSignals.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/utils/InternalClock.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 2 additions & 0 deletions include/utils/Logger.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ class Logger : public QObject
static Logger* getInstance(const QString& name = "", LogLevel minLevel = Logger::INFO);
static void deleteInstance(const QString& name = "");
static void setLogLevel(LogLevel level, const QString& name = "");
static void forceVerbose();
static LogLevel getLogLevel(const QString& name = "");
static QString getLastError();

Expand All @@ -95,6 +96,7 @@ class Logger : public QObject
static QMutex _mapLock;
static QMap<QString, Logger*> _loggerMap;
static QAtomicInteger<int> GLOBAL_MIN_LOG_LEVEL;
static QAtomicInteger<bool> _forceVerbose;
static QString _lastError;
static bool _hasConsole;
const QString _name;
Expand Down
2 changes: 1 addition & 1 deletion include/utils/LutCalibrator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/utils/Macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion include/utils/MemoryBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/ColorCalibration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
28 changes: 17 additions & 11 deletions sources/base/ComponentController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,26 @@ void ComponentController::handleCompStateChangeRequest(hyperhdr::Components comp
bool disableLeds = _disableOnStartup && !isComponentEnabled(COMP_ALL) && _prevComponentStates.empty();

Debug(_log, "Disabling HyperHDR instance: saving current component states first");
for (const auto& comp : _componentStates)
if (comp.first != COMP_ALL)
{
if (disableLeds && comp.first == COMP_LEDDEVICE)
_prevComponentStates.emplace(comp.first, true);
else
_prevComponentStates.emplace(comp.first, comp.second);
_componentStates[COMP_ALL] = false;

if (comp.second)
for (int i = 0; i < 2; i++)
for (const auto& comp : _componentStates)
if (comp.first != COMP_ALL &&
((i == 0 && comp.first == COMP_LEDDEVICE) || (i == 1 && comp.first != COMP_LEDDEVICE)))
{
emit SignalRequestComponent(comp.first, false);
if (disableLeds && comp.first == COMP_LEDDEVICE)
_prevComponentStates.emplace(comp.first, true);
else
_prevComponentStates.emplace(comp.first, comp.second);

if (comp.second)
{
emit SignalRequestComponent(comp.first, false);
}
}
}
setNewComponentState(COMP_ALL, false);

Debug(_log, "Disabling HyperHDR instance: preparations completed");
emit SignalComponentStateChanged(COMP_ALL, false);
}
else
{
Expand Down
2 changes: 1 addition & 1 deletion sources/base/DetectionAutomatic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/Grabber.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/GrabberHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/GrabberWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/HyperHdrInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/HyperHdrManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/ImageColorAveraging.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/ImageToLedManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/LedCalibration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/NetworkForwarder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/RawUdpServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/Smoothing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
2 changes: 1 addition & 1 deletion sources/base/SoundCapture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
*
* MIT License
*
* Copyright (c) 2020-2023 awawa-dev
* Copyright (c) 2020-2024 awawa-dev
*
* Project homesite: https://github.com/awawa-dev/HyperHDR
*
Expand Down
Loading