From c46fade6b0bf71c89c03cbb65d724e98d3db06b4 Mon Sep 17 00:00:00 2001 From: "Tobias J. Endres" Date: Sat, 16 Aug 2025 05:40:47 +0200 Subject: [PATCH] feat: Refactor main application to use HyperionProcessor and WledClient with environment variable configuration --- .qt/QtDeployTargets.cmake | 6 - CMakeLists.txt | 62 +-- HyperionProcessor.cpp | 31 +- HyperionProcessor.h | 4 + Hyperion_Grabber_Wayland_QT | Bin 116120 -> 155624 bytes .../EWIEGA46WW/moc_HyperionProcessor.cpp | 90 ++++ .../EWIEGA46WW/moc_HyperionProcessor.cpp.d | 435 ++++++++++++++++++ .../EWIEGA46WW/moc_hyperiongrabber.cpp | 35 +- Hyperion_Grabber_Wayland_QT_autogen/deps | 11 + .../mocs_compilation.cpp | 1 + LinearColorSmoothing.cpp | 36 ++ LinearColorSmoothing.h | 19 + grabberconfigurator | Bin 161432 -> 165976 bytes grabberconfigurator.cpp | 15 +- .../EWIEGA46WW/moc_HyperionProcessor.cpp.d | 1 + grabberconfigurator_autogen/deps | 2 + .../include/grabberconfigurator.moc.d | 1 + hyperiongrabber.cpp | 26 +- lessons_learned.md | 7 + main.cpp | 182 ++++---- 20 files changed, 799 insertions(+), 165 deletions(-) create mode 100644 Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp create mode 100644 Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d create mode 100644 LinearColorSmoothing.cpp create mode 100644 LinearColorSmoothing.h diff --git a/.qt/QtDeployTargets.cmake b/.qt/QtDeployTargets.cmake index eca9367..fcd8a89 100644 --- a/.qt/QtDeployTargets.cmake +++ b/.qt/QtDeployTargets.cmake @@ -1,11 +1,5 @@ set(__QT_DEPLOY_TARGET_Hyperion_Grabber_Wayland_QT_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/Hyperion_Grabber_Wayland_QT) set(__QT_DEPLOY_TARGET_Hyperion_Grabber_Wayland_QT_TYPE EXECUTABLE) -set(__QT_DEPLOY_TARGET_wled_config_tool_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/wled_config_tool) -set(__QT_DEPLOY_TARGET_wled_config_tool_TYPE EXECUTABLE) -set(__QT_DEPLOY_TARGET_grabberconfigurator_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/grabberconfigurator) -set(__QT_DEPLOY_TARGET_grabberconfigurator_TYPE EXECUTABLE) -set(__QT_DEPLOY_TARGET_test_hyperion_processor_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/test_hyperion_processor) -set(__QT_DEPLOY_TARGET_test_hyperion_processor_TYPE EXECUTABLE) set(__QT_DEPLOY_TARGET_hyperion-mock_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/hyperion-mock) set(__QT_DEPLOY_TARGET_hyperion-mock_TYPE EXECUTABLE) set(__QT_DEPLOY_TARGET_screen_capture_test_FILE /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/screen_capture_test) diff --git a/CMakeLists.txt b/CMakeLists.txt index ce0e329..523dc08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,7 @@ add_executable(Hyperion_Grabber_Wayland_QT LedColorMapping.cpp BlackBorderDetector.cpp HyperionProcessor.cpp + LinearColorSmoothing.cpp ) target_link_libraries(Hyperion_Grabber_Wayland_QT @@ -41,67 +42,6 @@ target_link_libraries(Hyperion_Grabber_Wayland_QT ${PIPEWIRE_LIBRARIES} ) -add_executable(wled_config_tool - wled_config_tool.cpp - wledconfigclient.cpp - wledclient.cpp -) - -target_link_libraries(wled_config_tool - Qt6::Core - Qt6::Network - Qt6::Gui -) -target_compile_definitions(wled_config_tool PRIVATE WLED_CONFIG_TOOL_BUILD) - -add_executable(grabberconfigurator - grabberconfigurator.cpp - hyperiongrabber.cpp - wledclient.cpp - debugclient.cpp - WaylandGrabber.cpp - wledconfigclient.cpp - LedColorMapping.cpp - BlackBorderDetector.cpp - HyperionProcessor.cpp -) - -target_link_libraries(grabberconfigurator - Qt6::Core - Qt6::Gui - Qt6::WaylandClient - Qt6::Multimedia - Qt6::Widgets - Qt6::MultimediaWidgets - Qt6::Network - Qt6::OpenGL - ${PIPEWIRE_LIBRARIES} -) - -add_executable(test_hyperion_processor - test_hyperion_processor.cpp - hyperiongrabber.cpp - wledclient.cpp - debugclient.cpp - WaylandGrabber.cpp - wledconfigclient.cpp - LedColorMapping.cpp - BlackBorderDetector.cpp - HyperionProcessor.cpp -) - -target_link_libraries(test_hyperion_processor - Qt6::Core - Qt6::Gui - Qt6::WaylandClient - Qt6::Multimedia - Qt6::Widgets - Qt6::MultimediaWidgets - Qt6::Network - Qt6::OpenGL - ${PIPEWIRE_LIBRARIES} -) - add_executable(hyperion-mock hyperion-mock.cpp ) diff --git a/HyperionProcessor.cpp b/HyperionProcessor.cpp index a27f44f..6c83c88 100644 --- a/HyperionProcessor.cpp +++ b/HyperionProcessor.cpp @@ -1,12 +1,14 @@ #include "HyperionProcessor.h" #include +#include HyperionProcessor::HyperionProcessor(const LedLayout &layout, const QJsonObject &config, QObject *parent) : QObject(parent), _layout(layout), _config(config), _borderDetector(config.value("blackBorderThreshold").toDouble(0.1)), - _lastImageSize(0, 0) + _lastImageSize(0, 0), + _colorSmoother(config.value("smoothingFactor").toDouble(0.1)) // Initialize color smoother { } @@ -34,7 +36,10 @@ QVector HyperionProcessor::process(const QImage &image) } // 3. Calculate the colors - return calculateLedColors(image); + QVector calculatedColors = calculateLedColors(image); + + // 4. Apply smoothing + return _colorSmoother.smooth(calculatedColors); } void HyperionProcessor::buildLedMap(int imageWidth, int imageHeight, const BlackBorder &border) @@ -147,7 +152,8 @@ QVector HyperionProcessor::calculateLedColors(const QImage &image) ledColors.reserve(_ledMap.size()); for (const auto &pixelList : _ledMap) { - ledColors.append(getAverageColor(image, pixelList)); + // Use getMeanSqrtLedColor for more vibrant colors + ledColors.append(getMeanSqrtLedColor(image, pixelList)); } return ledColors; @@ -169,3 +175,22 @@ QColor HyperionProcessor::getAverageColor(const QImage &image, const QVector &pixels) const +{ + if (pixels.isEmpty()) { + return Qt::black; + } + + quint64 r_sq = 0, g_sq = 0, b_sq = 0; + for (const QPoint &pt : pixels) { + QColor color = image.pixelColor(pt); + r_sq += color.red() * color.red(); + g_sq += color.green() * color.green(); + b_sq += color.blue() * color.blue(); + } + + return QColor(static_cast(qSqrt(static_cast(r_sq / pixels.size()))), + static_cast(qSqrt(static_cast(g_sq / pixels.size()))), + static_cast(qSqrt(static_cast(b_sq / pixels.size())))); +} diff --git a/HyperionProcessor.h b/HyperionProcessor.h index 4d07a77..db4ca98 100644 --- a/HyperionProcessor.h +++ b/HyperionProcessor.h @@ -8,6 +8,7 @@ #include #include "LedColorMapping.h" // We can reuse the LedLayout struct #include "BlackBorderDetector.h" +#include "LinearColorSmoothing.h" class HyperionProcessor : public QObject { @@ -22,6 +23,7 @@ private: void buildLedMap(int imageWidth, int imageHeight, const BlackBorder &border); QVector calculateLedColors(const QImage &image); QColor getAverageColor(const QImage &image, const QVector &pixels) const; + QColor getMeanSqrtLedColor(const QImage &image, const QVector &pixels) const; LedLayout _layout; QJsonObject _config; @@ -32,6 +34,8 @@ private: QVector> _ledMap; + LinearColorSmoothing _colorSmoother; + public: QSize getLastImageSize() const { return _lastImageSize; } BlackBorder getLastBorder() const { return _lastBorder; } diff --git a/Hyperion_Grabber_Wayland_QT b/Hyperion_Grabber_Wayland_QT index 6af3468c14e23c90038d78d5ef2e5c7b0b059a70..b4d7708baa2fa52a57f47fc28b8f38dc007e5673 100755 GIT binary patch literal 155624 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 literal 116120 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 diff --git a/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp new file mode 100644 index 0000000..815c14a --- /dev/null +++ b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'HyperionProcessor.h' +** +** Created by: The Qt Meta Object Compiler version 69 (Qt 6.9.1) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../../HyperionProcessor.h" +#include + +#include + +#include + + +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'HyperionProcessor.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 69 +#error "This file was generated using the moc from 6.9.1. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +#ifndef Q_CONSTINIT +#define Q_CONSTINIT +#endif + +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +QT_WARNING_DISABLE_GCC("-Wuseless-cast") +namespace { +struct qt_meta_tag_ZN17HyperionProcessorE_t {}; +} // unnamed namespace + +template <> constexpr inline auto HyperionProcessor::qt_create_metaobjectdata() +{ + namespace QMC = QtMocConstants; + QtMocHelpers::StringRefStorage qt_stringData { + "HyperionProcessor" + }; + + QtMocHelpers::UintData qt_methods { + }; + QtMocHelpers::UintData qt_properties { + }; + QtMocHelpers::UintData qt_enums { + }; + return QtMocHelpers::metaObjectData(QMC::MetaObjectFlag{}, qt_stringData, + qt_methods, qt_properties, qt_enums); +} +Q_CONSTINIT const QMetaObject HyperionProcessor::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_staticMetaObjectStaticContent.stringdata, + qt_staticMetaObjectStaticContent.data, + qt_static_metacall, + nullptr, + qt_staticMetaObjectRelocatingContent.metaTypes, + nullptr +} }; + +void HyperionProcessor::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + auto *_t = static_cast(_o); + (void)_t; + (void)_c; + (void)_id; + (void)_a; +} + +const QMetaObject *HyperionProcessor::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *HyperionProcessor::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_staticMetaObjectStaticContent.strings)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int HyperionProcessor::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP diff --git a/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d new file mode 100644 index 0000000..11d07d7 --- /dev/null +++ b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d @@ -0,0 +1,435 @@ +/home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp: /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/HyperionProcessor.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/Hyperion_Grabber_Wayland_QT_autogen/moc_predefs.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/BlackBorderDetector.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.h \ + /usr/include/alloca.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/int-ll64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/asm-generic/types.h \ + /usr/include/asm/bitsperlong.h \ + /usr/include/asm/errno.h \ + /usr/include/asm/posix_types.h \ + /usr/include/asm/posix_types_64.h \ + /usr/include/asm/types.h \ + /usr/include/assert.h \ + /usr/include/bits/atomic_wide_counter.h \ + /usr/include/bits/byteswap.h \ + /usr/include/bits/cpu-set.h \ + /usr/include/bits/endian.h \ + /usr/include/bits/endianness.h \ + /usr/include/bits/errno.h \ + /usr/include/bits/floatn-common.h \ + /usr/include/bits/floatn.h \ + /usr/include/bits/libc-header-start.h \ + /usr/include/bits/local_lim.h \ + /usr/include/bits/locale.h \ + /usr/include/bits/long-double.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/bits/posix2_lim.h \ + /usr/include/bits/pthread_stack_min-dynamic.h \ + /usr/include/bits/pthreadtypes-arch.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/bits/sched.h \ + /usr/include/bits/select.h \ + /usr/include/bits/setjmp.h \ + /usr/include/bits/stdint-intn.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/bits/stdlib-float.h \ + /usr/include/bits/struct_mutex.h \ + /usr/include/bits/struct_rwlock.h \ + /usr/include/bits/thread-shared-types.h \ + /usr/include/bits/time.h \ + /usr/include/bits/time64.h \ + /usr/include/bits/timesize.h \ + /usr/include/bits/timex.h \ + /usr/include/bits/types.h \ + /usr/include/bits/types/FILE.h \ + /usr/include/bits/types/__FILE.h \ + /usr/include/bits/types/__fpos64_t.h \ + /usr/include/bits/types/__fpos_t.h \ + /usr/include/bits/types/__locale_t.h \ + /usr/include/bits/types/__mbstate_t.h \ + /usr/include/bits/types/__sigset_t.h \ + /usr/include/bits/types/clock_t.h \ + /usr/include/bits/types/clockid_t.h \ + /usr/include/bits/types/cookie_io_functions_t.h \ + /usr/include/bits/types/error_t.h \ + /usr/include/bits/types/locale_t.h \ + /usr/include/bits/types/mbstate_t.h \ + /usr/include/bits/types/sigset_t.h \ + /usr/include/bits/types/struct_FILE.h \ + /usr/include/bits/types/struct___jmp_buf_tag.h \ + /usr/include/bits/types/struct_itimerspec.h \ + /usr/include/bits/types/struct_sched_param.h \ + /usr/include/bits/types/struct_timespec.h \ + /usr/include/bits/types/struct_timeval.h \ + /usr/include/bits/types/struct_tm.h \ + /usr/include/bits/types/time_t.h \ + /usr/include/bits/types/timer_t.h \ + /usr/include/bits/types/wint_t.h \ + /usr/include/bits/typesizes.h \ + /usr/include/bits/uintn-identity.h \ + /usr/include/bits/uio_lim.h \ + /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/bits/wchar.h \ + /usr/include/bits/wordsize.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/c++/15.2.1/algorithm \ + /usr/include/c++/15.2.1/array \ + /usr/include/c++/15.2.1/atomic \ + /usr/include/c++/15.2.1/backward/auto_ptr.h \ + /usr/include/c++/15.2.1/backward/binders.h \ + /usr/include/c++/15.2.1/bit \ + /usr/include/c++/15.2.1/bits/algorithmfwd.h \ + /usr/include/c++/15.2.1/bits/align.h \ + /usr/include/c++/15.2.1/bits/alloc_traits.h \ + /usr/include/c++/15.2.1/bits/allocated_ptr.h \ + /usr/include/c++/15.2.1/bits/allocator.h \ + /usr/include/c++/15.2.1/bits/atomic_base.h \ + /usr/include/c++/15.2.1/bits/atomic_lockfree_defines.h \ + /usr/include/c++/15.2.1/bits/basic_string.h \ + /usr/include/c++/15.2.1/bits/basic_string.tcc \ + /usr/include/c++/15.2.1/bits/char_traits.h \ + /usr/include/c++/15.2.1/bits/charconv.h \ + /usr/include/c++/15.2.1/bits/chrono.h \ + /usr/include/c++/15.2.1/bits/concept_check.h \ + /usr/include/c++/15.2.1/bits/cpp_type_traits.h \ + /usr/include/c++/15.2.1/bits/cxxabi_forced.h \ + /usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \ + /usr/include/c++/15.2.1/bits/enable_special_members.h \ + /usr/include/c++/15.2.1/bits/erase_if.h \ + /usr/include/c++/15.2.1/bits/exception.h \ + /usr/include/c++/15.2.1/bits/exception_defines.h \ + /usr/include/c++/15.2.1/bits/exception_ptr.h \ + /usr/include/c++/15.2.1/bits/functexcept.h \ + /usr/include/c++/15.2.1/bits/functional_hash.h \ + /usr/include/c++/15.2.1/bits/hash_bytes.h \ + /usr/include/c++/15.2.1/bits/hashtable.h \ + /usr/include/c++/15.2.1/bits/hashtable_policy.h \ + /usr/include/c++/15.2.1/bits/invoke.h \ + /usr/include/c++/15.2.1/bits/ios_base.h \ + /usr/include/c++/15.2.1/bits/list.tcc \ + /usr/include/c++/15.2.1/bits/locale_classes.h \ + /usr/include/c++/15.2.1/bits/locale_classes.tcc \ + /usr/include/c++/15.2.1/bits/localefwd.h \ + /usr/include/c++/15.2.1/bits/memory_resource.h \ + /usr/include/c++/15.2.1/bits/memoryfwd.h \ + /usr/include/c++/15.2.1/bits/move.h \ + /usr/include/c++/15.2.1/bits/nested_exception.h \ + /usr/include/c++/15.2.1/bits/new_allocator.h \ + /usr/include/c++/15.2.1/bits/node_handle.h \ + /usr/include/c++/15.2.1/bits/ostream_insert.h \ + /usr/include/c++/15.2.1/bits/parse_numbers.h \ + /usr/include/c++/15.2.1/bits/postypes.h \ + /usr/include/c++/15.2.1/bits/predefined_ops.h \ + /usr/include/c++/15.2.1/bits/ptr_traits.h \ + /usr/include/c++/15.2.1/bits/range_access.h \ + /usr/include/c++/15.2.1/bits/refwrap.h \ + /usr/include/c++/15.2.1/bits/requires_hosted.h \ + /usr/include/c++/15.2.1/bits/shared_ptr.h \ + /usr/include/c++/15.2.1/bits/shared_ptr_atomic.h \ + /usr/include/c++/15.2.1/bits/shared_ptr_base.h \ + /usr/include/c++/15.2.1/bits/specfun.h \ + /usr/include/c++/15.2.1/bits/std_abs.h \ + /usr/include/c++/15.2.1/bits/std_function.h \ + /usr/include/c++/15.2.1/bits/stl_algo.h \ + /usr/include/c++/15.2.1/bits/stl_algobase.h \ + /usr/include/c++/15.2.1/bits/stl_bvector.h \ + /usr/include/c++/15.2.1/bits/stl_construct.h \ + /usr/include/c++/15.2.1/bits/stl_function.h \ + /usr/include/c++/15.2.1/bits/stl_heap.h \ + /usr/include/c++/15.2.1/bits/stl_iterator.h \ + /usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/15.2.1/bits/stl_iterator_base_types.h \ + /usr/include/c++/15.2.1/bits/stl_list.h \ + /usr/include/c++/15.2.1/bits/stl_map.h \ + /usr/include/c++/15.2.1/bits/stl_multimap.h \ + /usr/include/c++/15.2.1/bits/stl_multiset.h \ + /usr/include/c++/15.2.1/bits/stl_numeric.h \ + /usr/include/c++/15.2.1/bits/stl_pair.h \ + /usr/include/c++/15.2.1/bits/stl_raw_storage_iter.h \ + /usr/include/c++/15.2.1/bits/stl_relops.h \ + /usr/include/c++/15.2.1/bits/stl_set.h \ + /usr/include/c++/15.2.1/bits/stl_tempbuf.h \ + /usr/include/c++/15.2.1/bits/stl_tree.h \ + /usr/include/c++/15.2.1/bits/stl_uninitialized.h \ + /usr/include/c++/15.2.1/bits/stl_vector.h \ + /usr/include/c++/15.2.1/bits/stream_iterator.h \ + /usr/include/c++/15.2.1/bits/streambuf.tcc \ + /usr/include/c++/15.2.1/bits/streambuf_iterator.h \ + /usr/include/c++/15.2.1/bits/string_view.tcc \ + /usr/include/c++/15.2.1/bits/stringfwd.h \ + /usr/include/c++/15.2.1/bits/uniform_int_dist.h \ + /usr/include/c++/15.2.1/bits/unique_ptr.h \ + /usr/include/c++/15.2.1/bits/unordered_map.h \ + /usr/include/c++/15.2.1/bits/unordered_set.h \ + /usr/include/c++/15.2.1/bits/uses_allocator.h \ + /usr/include/c++/15.2.1/bits/uses_allocator_args.h \ + /usr/include/c++/15.2.1/bits/utility.h \ + /usr/include/c++/15.2.1/bits/vector.tcc \ + /usr/include/c++/15.2.1/bits/version.h \ + /usr/include/c++/15.2.1/cassert \ + /usr/include/c++/15.2.1/cctype \ + /usr/include/c++/15.2.1/cerrno \ + /usr/include/c++/15.2.1/chrono \ + /usr/include/c++/15.2.1/climits \ + /usr/include/c++/15.2.1/clocale \ + /usr/include/c++/15.2.1/cmath \ + /usr/include/c++/15.2.1/compare \ + /usr/include/c++/15.2.1/concepts \ + /usr/include/c++/15.2.1/cstddef \ + /usr/include/c++/15.2.1/cstdint \ + /usr/include/c++/15.2.1/cstdio \ + /usr/include/c++/15.2.1/cstdlib \ + /usr/include/c++/15.2.1/cstring \ + /usr/include/c++/15.2.1/ctime \ + /usr/include/c++/15.2.1/cwchar \ + /usr/include/c++/15.2.1/debug/assertions.h \ + /usr/include/c++/15.2.1/debug/debug.h \ + /usr/include/c++/15.2.1/exception \ + /usr/include/c++/15.2.1/ext/aligned_buffer.h \ + /usr/include/c++/15.2.1/ext/alloc_traits.h \ + /usr/include/c++/15.2.1/ext/atomicity.h \ + /usr/include/c++/15.2.1/ext/concurrence.h \ + /usr/include/c++/15.2.1/ext/numeric_traits.h \ + /usr/include/c++/15.2.1/ext/string_conversions.h \ + /usr/include/c++/15.2.1/ext/type_traits.h \ + /usr/include/c++/15.2.1/functional \ + /usr/include/c++/15.2.1/initializer_list \ + /usr/include/c++/15.2.1/iosfwd \ + /usr/include/c++/15.2.1/iterator \ + /usr/include/c++/15.2.1/limits \ + /usr/include/c++/15.2.1/list \ + /usr/include/c++/15.2.1/map \ + /usr/include/c++/15.2.1/memory \ + /usr/include/c++/15.2.1/new \ + /usr/include/c++/15.2.1/numeric \ + /usr/include/c++/15.2.1/optional \ + /usr/include/c++/15.2.1/pstl/execution_defs.h \ + /usr/include/c++/15.2.1/pstl/glue_numeric_defs.h \ + /usr/include/c++/15.2.1/ratio \ + /usr/include/c++/15.2.1/set \ + /usr/include/c++/15.2.1/stdexcept \ + /usr/include/c++/15.2.1/streambuf \ + /usr/include/c++/15.2.1/string \ + /usr/include/c++/15.2.1/string_view \ + /usr/include/c++/15.2.1/system_error \ + /usr/include/c++/15.2.1/tr1/bessel_function.tcc \ + /usr/include/c++/15.2.1/tr1/beta_function.tcc \ + /usr/include/c++/15.2.1/tr1/ell_integral.tcc \ + /usr/include/c++/15.2.1/tr1/exp_integral.tcc \ + /usr/include/c++/15.2.1/tr1/gamma.tcc \ + /usr/include/c++/15.2.1/tr1/hypergeometric.tcc \ + /usr/include/c++/15.2.1/tr1/legendre_function.tcc \ + /usr/include/c++/15.2.1/tr1/modified_bessel_func.tcc \ + /usr/include/c++/15.2.1/tr1/poly_hermite.tcc \ + /usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \ + /usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \ + /usr/include/c++/15.2.1/tr1/special_function_util.h \ + /usr/include/c++/15.2.1/tuple \ + /usr/include/c++/15.2.1/type_traits \ + /usr/include/c++/15.2.1/typeinfo \ + /usr/include/c++/15.2.1/unordered_map \ + /usr/include/c++/15.2.1/unordered_set \ + /usr/include/c++/15.2.1/utility \ + /usr/include/c++/15.2.1/variant \ + /usr/include/c++/15.2.1/vector \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/include/ctype.h \ + /usr/include/endian.h \ + /usr/include/errno.h \ + /usr/include/features-time64.h \ + /usr/include/features.h \ + /usr/include/gnu/stubs-64.h \ + /usr/include/gnu/stubs.h \ + /usr/include/limits.h \ + /usr/include/linux/errno.h \ + /usr/include/linux/limits.h \ + /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/linux/types.h \ + /usr/include/locale.h \ + /usr/include/pthread.h \ + /usr/include/qt6/QtCore/QJsonObject \ + /usr/include/qt6/QtCore/QObject \ + /usr/include/qt6/QtCore/QVector \ + /usr/include/qt6/QtCore/q17memory.h \ + /usr/include/qt6/QtCore/q20functional.h \ + /usr/include/qt6/QtCore/q20iterator.h \ + /usr/include/qt6/QtCore/q20memory.h \ + /usr/include/qt6/QtCore/q20type_traits.h \ + /usr/include/qt6/QtCore/q20utility.h \ + /usr/include/qt6/QtCore/q23utility.h \ + /usr/include/qt6/QtCore/qalgorithms.h \ + /usr/include/qt6/QtCore/qanystringview.h \ + /usr/include/qt6/QtCore/qarraydata.h \ + /usr/include/qt6/QtCore/qarraydataops.h \ + /usr/include/qt6/QtCore/qarraydatapointer.h \ + /usr/include/qt6/QtCore/qassert.h \ + /usr/include/qt6/QtCore/qatomic.h \ + /usr/include/qt6/QtCore/qatomic_cxx11.h \ + /usr/include/qt6/QtCore/qbasicatomic.h \ + /usr/include/qt6/QtCore/qbindingstorage.h \ + /usr/include/qt6/QtCore/qbytearray.h \ + /usr/include/qt6/QtCore/qbytearrayalgorithms.h \ + /usr/include/qt6/QtCore/qbytearraylist.h \ + /usr/include/qt6/QtCore/qbytearrayview.h \ + /usr/include/qt6/QtCore/qcalendar.h \ + /usr/include/qt6/QtCore/qcborcommon.h \ + /usr/include/qt6/QtCore/qcborvalue.h \ + /usr/include/qt6/QtCore/qchar.h \ + /usr/include/qt6/QtCore/qcompare.h \ + /usr/include/qt6/QtCore/qcompare_impl.h \ + /usr/include/qt6/QtCore/qcomparehelpers.h \ + /usr/include/qt6/QtCore/qcompilerdetection.h \ + /usr/include/qt6/QtCore/qconfig.h \ + /usr/include/qt6/QtCore/qconstructormacros.h \ + /usr/include/qt6/QtCore/qcontainerfwd.h \ + /usr/include/qt6/QtCore/qcontainerinfo.h \ + /usr/include/qt6/QtCore/qcontainertools_impl.h \ + /usr/include/qt6/QtCore/qcontiguouscache.h \ + /usr/include/qt6/QtCore/qdarwinhelpers.h \ + /usr/include/qt6/QtCore/qdatastream.h \ + /usr/include/qt6/QtCore/qdatetime.h \ + /usr/include/qt6/QtCore/qdebug.h \ + /usr/include/qt6/QtCore/qendian.h \ + /usr/include/qt6/QtCore/qexceptionhandling.h \ + /usr/include/qt6/QtCore/qflags.h \ + /usr/include/qt6/QtCore/qfloat16.h \ + /usr/include/qt6/QtCore/qforeach.h \ + /usr/include/qt6/QtCore/qfunctionaltools_impl.h \ + /usr/include/qt6/QtCore/qfunctionpointer.h \ + /usr/include/qt6/QtCore/qgenericatomic.h \ + /usr/include/qt6/QtCore/qglobal.h \ + /usr/include/qt6/QtCore/qglobalstatic.h \ + /usr/include/qt6/QtCore/qhash.h \ + /usr/include/qt6/QtCore/qhashfunctions.h \ + /usr/include/qt6/QtCore/qiodevicebase.h \ + /usr/include/qt6/QtCore/qiterable.h \ + /usr/include/qt6/QtCore/qiterator.h \ + /usr/include/qt6/QtCore/qjsondocument.h \ + /usr/include/qt6/QtCore/qjsonobject.h \ + /usr/include/qt6/QtCore/qjsonparseerror.h \ + /usr/include/qt6/QtCore/qjsonvalue.h \ + /usr/include/qt6/QtCore/qlatin1stringview.h \ + /usr/include/qt6/QtCore/qline.h \ + /usr/include/qt6/QtCore/qlist.h \ + /usr/include/qt6/QtCore/qlocale.h \ + /usr/include/qt6/QtCore/qlogging.h \ + /usr/include/qt6/QtCore/qmalloc.h \ + /usr/include/qt6/QtCore/qmap.h \ + /usr/include/qt6/QtCore/qmargins.h \ + /usr/include/qt6/QtCore/qmath.h \ + /usr/include/qt6/QtCore/qmetacontainer.h \ + /usr/include/qt6/QtCore/qmetatype.h \ + /usr/include/qt6/QtCore/qminmax.h \ + /usr/include/qt6/QtCore/qnamespace.h \ + /usr/include/qt6/QtCore/qnumeric.h \ + /usr/include/qt6/QtCore/qobject.h \ + /usr/include/qt6/QtCore/qobject_impl.h \ + /usr/include/qt6/QtCore/qobjectdefs.h \ + /usr/include/qt6/QtCore/qobjectdefs_impl.h \ + /usr/include/qt6/QtCore/qoverload.h \ + /usr/include/qt6/QtCore/qpair.h \ + /usr/include/qt6/QtCore/qpoint.h \ + /usr/include/qt6/QtCore/qprocessordetection.h \ + /usr/include/qt6/QtCore/qrect.h \ + /usr/include/qt6/QtCore/qrefcount.h \ + /usr/include/qt6/QtCore/qregularexpression.h \ + /usr/include/qt6/QtCore/qscopedpointer.h \ + /usr/include/qt6/QtCore/qscopeguard.h \ + /usr/include/qt6/QtCore/qset.h \ + /usr/include/qt6/QtCore/qshareddata.h \ + /usr/include/qt6/QtCore/qshareddata_impl.h \ + /usr/include/qt6/QtCore/qsharedpointer.h \ + /usr/include/qt6/QtCore/qsharedpointer_impl.h \ + /usr/include/qt6/QtCore/qsize.h \ + /usr/include/qt6/QtCore/qspan.h \ + /usr/include/qt6/QtCore/qstdlibdetection.h \ + /usr/include/qt6/QtCore/qstring.h \ + /usr/include/qt6/QtCore/qstringalgorithms.h \ + /usr/include/qt6/QtCore/qstringbuilder.h \ + /usr/include/qt6/QtCore/qstringconverter.h \ + /usr/include/qt6/QtCore/qstringconverter_base.h \ + /usr/include/qt6/QtCore/qstringfwd.h \ + /usr/include/qt6/QtCore/qstringlist.h \ + /usr/include/qt6/QtCore/qstringliteral.h \ + /usr/include/qt6/QtCore/qstringmatcher.h \ + /usr/include/qt6/QtCore/qstringtokenizer.h \ + /usr/include/qt6/QtCore/qstringview.h \ + /usr/include/qt6/QtCore/qswap.h \ + /usr/include/qt6/QtCore/qsysinfo.h \ + /usr/include/qt6/QtCore/qsystemdetection.h \ + /usr/include/qt6/QtCore/qtaggedpointer.h \ + /usr/include/qt6/QtCore/qtclasshelpermacros.h \ + /usr/include/qt6/QtCore/qtconfiginclude.h \ + /usr/include/qt6/QtCore/qtconfigmacros.h \ + /usr/include/qt6/QtCore/qtcore-config.h \ + /usr/include/qt6/QtCore/qtcoreexports.h \ + /usr/include/qt6/QtCore/qtcoreglobal.h \ + /usr/include/qt6/QtCore/qtdeprecationdefinitions.h \ + /usr/include/qt6/QtCore/qtdeprecationmarkers.h \ + /usr/include/qt6/QtCore/qtenvironmentvariables.h \ + /usr/include/qt6/QtCore/qtextstream.h \ + /usr/include/qt6/QtCore/qtformat_impl.h \ + /usr/include/qt6/QtCore/qtmetamacros.h \ + /usr/include/qt6/QtCore/qtnoop.h \ + /usr/include/qt6/QtCore/qtpreprocessorsupport.h \ + /usr/include/qt6/QtCore/qtresource.h \ + /usr/include/qt6/QtCore/qttranslation.h \ + /usr/include/qt6/QtCore/qttypetraits.h \ + /usr/include/qt6/QtCore/qtversion.h \ + /usr/include/qt6/QtCore/qtversionchecks.h \ + /usr/include/qt6/QtCore/qtypeinfo.h \ + /usr/include/qt6/QtCore/qtypes.h \ + /usr/include/qt6/QtCore/qurl.h \ + /usr/include/qt6/QtCore/qutf8stringview.h \ + /usr/include/qt6/QtCore/quuid.h \ + /usr/include/qt6/QtCore/qvariant.h \ + /usr/include/qt6/QtCore/qvarlengtharray.h \ + /usr/include/qt6/QtCore/qvector.h \ + /usr/include/qt6/QtCore/qversiontagging.h \ + /usr/include/qt6/QtCore/qxptype_traits.h \ + /usr/include/qt6/QtCore/qyieldcpu.h \ + /usr/include/qt6/QtGui/QColor \ + /usr/include/qt6/QtGui/QImage \ + /usr/include/qt6/QtGui/qcolor.h \ + /usr/include/qt6/QtGui/qimage.h \ + /usr/include/qt6/QtGui/qpaintdevice.h \ + /usr/include/qt6/QtGui/qpixelformat.h \ + /usr/include/qt6/QtGui/qpolygon.h \ + /usr/include/qt6/QtGui/qregion.h \ + /usr/include/qt6/QtGui/qrgb.h \ + /usr/include/qt6/QtGui/qrgba64.h \ + /usr/include/qt6/QtGui/qtgui-config.h \ + /usr/include/qt6/QtGui/qtguiexports.h \ + /usr/include/qt6/QtGui/qtguiglobal.h \ + /usr/include/qt6/QtGui/qtransform.h \ + /usr/include/qt6/QtGui/qwindowdefs.h \ + /usr/include/sched.h \ + /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/stdlib.h \ + /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/sys/cdefs.h \ + /usr/include/sys/select.h \ + /usr/include/sys/types.h \ + /usr/include/time.h \ + /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdbool.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h diff --git a/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_hyperiongrabber.cpp b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_hyperiongrabber.cpp index aba4bc2..cc21bda 100644 --- a/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_hyperiongrabber.cpp +++ b/Hyperion_Grabber_Wayland_QT_autogen/EWIEGA46WW/moc_hyperiongrabber.cpp @@ -39,16 +39,22 @@ template <> constexpr inline auto HyperionGrabber::qt_create_metaobjectdata(1, 2, QMC::AccessPublic, QMetaType::Void, {{ + { QMetaType::QImage, 3 }, + }}), // Slot '_processFrame' - QtMocHelpers::SlotData(1, 2, QMC::AccessPrivate, QMetaType::Void, {{ - { 0x80000000 | 3, 4 }, + QtMocHelpers::SlotData(4, 2, QMC::AccessPrivate, QMetaType::Void, {{ + { 0x80000000 | 5, 6 }, }}), }; QtMocHelpers::UintData qt_properties { @@ -73,14 +79,15 @@ void HyperionGrabber::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int auto *_t = static_cast(_o); if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { - case 0: _t->_processFrame((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 0: _t->imageReady((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 1: _t->_processFrame((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; default: ; } } if (_c == QMetaObject::RegisterMethodArgumentMetaType) { switch (_id) { default: *reinterpret_cast(_a[0]) = QMetaType(); break; - case 0: + case 1: switch (*reinterpret_cast(_a[1])) { default: *reinterpret_cast(_a[0]) = QMetaType(); break; case 0: @@ -89,6 +96,10 @@ void HyperionGrabber::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int break; } } + if (_c == QMetaObject::IndexOfMethod) { + if (QtMocHelpers::indexOfMethod(_a, &HyperionGrabber::imageReady, 0)) + return; + } } const QMetaObject *HyperionGrabber::metaObject() const @@ -110,15 +121,21 @@ int HyperionGrabber::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) + if (_id < 2) qt_static_metacall(this, _c, _id, _a); - _id -= 1; + _id -= 2; } if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) + if (_id < 2) qt_static_metacall(this, _c, _id, _a); - _id -= 1; + _id -= 2; } return _id; } + +// SIGNAL 0 +void HyperionGrabber::imageReady(const QImage & _t1) +{ + QMetaObject::activate(this, &staticMetaObject, 0, nullptr, _t1); +} QT_WARNING_POP diff --git a/Hyperion_Grabber_Wayland_QT_autogen/deps b/Hyperion_Grabber_Wayland_QT_autogen/deps index 3b66ce4..8b9c760 100644 --- a/Hyperion_Grabber_Wayland_QT_autogen/deps +++ b/Hyperion_Grabber_Wayland_QT_autogen/deps @@ -1,9 +1,17 @@ Hyperion_Grabber_Wayland_QT_autogen/timestamp: \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/BlackBorderDetector.cpp \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/BlackBorderDetector.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/CMakeFiles/4.0.3-dirty/CMakeCCompiler.cmake \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/CMakeFiles/4.0.3-dirty/CMakeCXXCompiler.cmake \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/CMakeFiles/4.0.3-dirty/CMakeSystem.cmake \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/CMakeLists.txt \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/HyperionProcessor.cpp \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/HyperionProcessor.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/Hyperion_Grabber_Wayland_QT_autogen/moc_predefs.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.cpp \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.cpp \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/WaylandGrabber.cpp \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/WaylandGrabber.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/debugclient.cpp \ @@ -294,6 +302,7 @@ Hyperion_Grabber_Wayland_QT_autogen/timestamp: \ /usr/include/qt6/QtCore/QTimer \ /usr/include/qt6/QtCore/QUrl \ /usr/include/qt6/QtCore/QVariant \ + /usr/include/qt6/QtCore/QVector \ /usr/include/qt6/QtCore/q17memory.h \ /usr/include/qt6/QtCore/q20functional.h \ /usr/include/qt6/QtCore/q20iterator.h \ @@ -442,9 +451,11 @@ Hyperion_Grabber_Wayland_QT_autogen/timestamp: \ /usr/include/qt6/QtCore/quuid.h \ /usr/include/qt6/QtCore/qvariant.h \ /usr/include/qt6/QtCore/qvarlengtharray.h \ + /usr/include/qt6/QtCore/qvector.h \ /usr/include/qt6/QtCore/qversiontagging.h \ /usr/include/qt6/QtCore/qxptype_traits.h \ /usr/include/qt6/QtCore/qyieldcpu.h \ + /usr/include/qt6/QtGui/QColor \ /usr/include/qt6/QtGui/QImage \ /usr/include/qt6/QtGui/QScreen \ /usr/include/qt6/QtGui/QTransform \ diff --git a/Hyperion_Grabber_Wayland_QT_autogen/mocs_compilation.cpp b/Hyperion_Grabber_Wayland_QT_autogen/mocs_compilation.cpp index 22cccf3..46f3ab3 100644 --- a/Hyperion_Grabber_Wayland_QT_autogen/mocs_compilation.cpp +++ b/Hyperion_Grabber_Wayland_QT_autogen/mocs_compilation.cpp @@ -1,4 +1,5 @@ // This file is autogenerated. Changes will be overwritten. +#include "EWIEGA46WW/moc_HyperionProcessor.cpp" #include "EWIEGA46WW/moc_WaylandGrabber.cpp" #include "EWIEGA46WW/moc_debugclient.cpp" #include "EWIEGA46WW/moc_hyperiongrabber.cpp" diff --git a/LinearColorSmoothing.cpp b/LinearColorSmoothing.cpp new file mode 100644 index 0000000..ecb931c --- /dev/null +++ b/LinearColorSmoothing.cpp @@ -0,0 +1,36 @@ +#include "LinearColorSmoothing.h" +#include + +LinearColorSmoothing::LinearColorSmoothing(double smoothingFactor) + : _smoothingFactor(qBound(0.0, smoothingFactor, 1.0)) +{ +} + +QVector LinearColorSmoothing::smooth(const QVector& newColors) +{ + if (newColors.isEmpty()) { + _previousColors.clear(); + return newColors; + } + + if (_previousColors.isEmpty() || _previousColors.size() != newColors.size()) { + _previousColors = newColors; + return newColors; + } + + QVector smoothedColors(newColors.size()); + + for (int i = 0; i < newColors.size(); ++i) { + const QColor& newColor = newColors.at(i); + const QColor& prevColor = _previousColors.at(i); + + int r = static_cast(newColor.red() * (1.0 - _smoothingFactor) + prevColor.red() * _smoothingFactor); + int g = static_cast(newColor.green() * (1.0 - _smoothingFactor) + prevColor.green() * _smoothingFactor); + int b = static_cast(newColor.blue() * (1.0 - _smoothingFactor) + prevColor.blue() * _smoothingFactor); + + smoothedColors[i] = QColor(r, g, b); + } + + _previousColors = smoothedColors; + return smoothedColors; +} diff --git a/LinearColorSmoothing.h b/LinearColorSmoothing.h new file mode 100644 index 0000000..863dbc2 --- /dev/null +++ b/LinearColorSmoothing.h @@ -0,0 +1,19 @@ +#ifndef LINEARCOLORSMOOTHING_H +#define LINEARCOLORSMOOTHING_H + +#include +#include + +class LinearColorSmoothing +{ +public: + explicit LinearColorSmoothing(double smoothingFactor = 0.1); + + QVector smooth(const QVector& newColors); + +private: + double _smoothingFactor; + QVector _previousColors; +}; + +#endif // LINEARCOLORSMOOTHING_H diff --git a/grabberconfigurator b/grabberconfigurator index be76fad77bdef06ede293d97702426e7606e4aee..73e9355e33618cbcb01cd8e132c1cc3410aa979f 100755 GIT binary patch literal 165976 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 A<^TWy literal 161432 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 // 1 second connect(_timer, &QTimer::timeout, this, &GrabberConfigurator::processCurrentFrame); _timer->start(); + + wledClient = new WledClient(wledAddress, wledPort, this); } public slots: @@ -156,8 +157,8 @@ public slots: if (ledColors.size() > _layout.bottom + _layout.right) qDebug() << " LED (bottom+right+1):" << ledColors.at(_layout.bottom + _layout.right).name(); } - // Remove terminal visualization - // printAsciiLayout(ledColors, _layout); + // Print LED colors as a rectangular layout in the terminal + printAsciiLayout(ledColors, _layout); } private: @@ -192,6 +193,7 @@ int main(int argc, char *argv[]) // Add options for the processor parser.addOption(QCommandLineOption(QStringList() << "bbt", "Black border threshold (0.0 to 1.0).", "threshold", "0.2")); // Increased threshold + parser.addOption(QCommandLineOption(QStringList() << "sf", "Smoothing factor (0.0 to 1.0).", "factor", "0.1")); // Smoothing factor // Add WLED options parser.addOption(QCommandLineOption(QStringList() << "a" << "address", "IP address of the WLED device.", "address")); @@ -220,6 +222,7 @@ int main(int argc, char *argv[]) QJsonObject processorConfig; processorConfig["blackBorderThreshold"] = parser.value("bbt").toDouble(); + processorConfig["smoothingFactor"] = parser.value("sf").toDouble(); GrabberConfigurator configurator(grabberOpts, layout, processorConfig, wledAddress, wledPort); @@ -228,4 +231,4 @@ int main(int argc, char *argv[]) return app->exec(); } -#include "grabberconfigurator.moc" +#include "grabberconfigurator.moc" \ No newline at end of file diff --git a/grabberconfigurator_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d b/grabberconfigurator_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d index 4cb9468..eb2892b 100644 --- a/grabberconfigurator_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d +++ b/grabberconfigurator_autogen/EWIEGA46WW/moc_HyperionProcessor.cpp.d @@ -2,6 +2,7 @@ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/grabberconfigurator_autogen/moc_predefs.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/BlackBorderDetector.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.h \ /usr/include/alloca.h \ /usr/include/asm-generic/bitsperlong.h \ /usr/include/asm-generic/errno-base.h \ diff --git a/grabberconfigurator_autogen/deps b/grabberconfigurator_autogen/deps index 5140e5c..202074a 100644 --- a/grabberconfigurator_autogen/deps +++ b/grabberconfigurator_autogen/deps @@ -9,6 +9,8 @@ grabberconfigurator_autogen/timestamp: \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/HyperionProcessor.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.cpp \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.cpp \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/WaylandGrabber.cpp \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/WaylandGrabber.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/debugclient.cpp \ diff --git a/grabberconfigurator_autogen/include/grabberconfigurator.moc.d b/grabberconfigurator_autogen/include/grabberconfigurator.moc.d index 0438e42..1a0f3d3 100644 --- a/grabberconfigurator_autogen/include/grabberconfigurator.moc.d +++ b/grabberconfigurator_autogen/include/grabberconfigurator.moc.d @@ -3,6 +3,7 @@ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/BlackBorderDetector.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/HyperionProcessor.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LedColorMapping.h \ + /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/LinearColorSmoothing.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/WaylandGrabber.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/hyperiongrabber.h \ /home/tobi/Projects/hyperion/Hyperion_Grabber_X11_QT/wledclient.h \ diff --git a/hyperiongrabber.cpp b/hyperiongrabber.cpp index 938124e..3eecde6 100644 --- a/hyperiongrabber.cpp +++ b/hyperiongrabber.cpp @@ -35,7 +35,7 @@ HyperionGrabber::HyperionGrabber(QHash opts) } } - _client_p = new WledClient(addr, port, this); + // _client_p = new WledClient(addr, port, this); // Removed as client is now handled by GrabberConfigurator _waylandGrabber_p = new WaylandGrabber(this); connect(_waylandGrabber_p, &WaylandGrabber::frameReady, this, &HyperionGrabber::_processFrame); @@ -55,7 +55,7 @@ HyperionGrabber::~HyperionGrabber() _timer_p->stop(); delete _timer_p; } - delete _client_p; + // delete _client_p; // Removed as client is now handled by GrabberConfigurator } // private slots @@ -92,5 +92,25 @@ void HyperionGrabber::_processFrame(const QVideoFrame &frame) scaledImage = scaledImage.convertToFormat(QImage::Format_RGB888); } + // Calculate image difference + if (!_lastScaledImage_m.isNull() && scaledImage.size() == _lastScaledImage_m.size()) { + quint64 diff = 0; + for (int y = 0; y < scaledImage.height(); ++y) { + QRgb *line = reinterpret_cast(scaledImage.scanLine(y)); + QRgb *lastLine = reinterpret_cast(_lastScaledImage_m.scanLine(y)); + for (int x = 0; x < scaledImage.width(); ++x) { + diff += qAbs(qRed(line[x]) - qRed(lastLine[x])); + diff += qAbs(qGreen(line[x]) - qGreen(lastLine[x])); + diff += qAbs(qBlue(line[x]) - qBlue(lastLine[x])); + } + } + + if (diff < _changeThreshold_m) { + // Image has not changed significantly, do not emit + return; + } + } + + _lastScaledImage_m = scaledImage; // Store the current image for next comparison emit imageReady(scaledImage); -} +} \ No newline at end of file diff --git a/lessons_learned.md b/lessons_learned.md index a9923d4..0a2067b 100644 --- a/lessons_learned.md +++ b/lessons_learned.md @@ -58,6 +58,13 @@ This document captures key insights, challenges, and solutions encountered durin * **Solution:** Added `WledClient` instance, command-line options for WLED address/port, and called `setLedsColor` with calculated LED colors. This sets up the pipeline for sending data directly to the WLED device. * **Lesson:** Modular design allows for easy integration of different components. The `grabberconfigurator` now serves as a complete testbed for the entire Ambilight pipeline, from screen capture to WLED output. +## 10. Main Application Refactoring and Environment Variable Configuration + +* **Challenge:** Consolidating the screen grabbing, Hyperion processing, and WLED communication into the main `Hyperion_Grabber_Wayland_QT` application and configuring it via environment variables. +* **Solution:** Refactored `main.cpp` to remove command-line parsing and instead read all configuration parameters (WLED address/port, LED layout, Hyperion algorithm parameters, grabber settings) from environment variables. Implemented a `QTimer` to control the frame processing rate. +* **Lesson:** Centralizing configuration via environment variables provides flexibility and simplifies deployment. Using a timer for frame processing ensures a consistent update rate for the LEDs, independent of the grabber's frame rate. + [Commit: e31f154] - feat: Implement and verify HyperionProcessor with live visualization [Commit: 478828b] - docs: Add lesson learned about KWin script interference [Commit: 60bcfb0] - feat: Integrate WledClient into grabberconfigurator for direct WLED communication +[Commit: ] - feat: Refactor main application for environment variable configuration \ No newline at end of file diff --git a/main.cpp b/main.cpp index 0e9dd86..c1b83d0 100644 --- a/main.cpp +++ b/main.cpp @@ -5,24 +5,26 @@ #include #include #include - - - -#ifdef WLED_CONFIG_TOOL_BUILD #include -#include "wledconfigclient.h" -#else -#include +#include +#include // Added for QApplication + #include "hyperiongrabber.h" -#endif +#include "HyperionProcessor.h" +#include "wledclient.h" +#include "LedColorMapping.h" +#include "LinearColorSmoothing.h" +// Global pointers for cleanup +static HyperionGrabber *grabber = nullptr; +static QApplication *qapp = nullptr; +static HyperionProcessor *processor = nullptr; +static WledClient *wledClient = nullptr; +static QTimer *processTimer = nullptr; +static QImage currentImage; // Store the latest captured image -#ifndef WLED_CONFIG_TOOL_BUILD -static HyperionGrabber *grab; -static QApplication *qapp; -#endif +// Custom message handler for logging to file static QFile *logFile = nullptr; - void customMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QByteArray localMsg = msg.toLocal8Bit(); @@ -62,68 +64,69 @@ void customMessageOutput(QtMsgType type, const QMessageLogContext &context, cons } } -#ifndef WLED_CONFIG_TOOL_BUILD +// Signal handler for graceful shutdown static void quit(int) { - if (grab != nullptr) { - delete grab; + if (processTimer) { + processTimer->stop(); + delete processTimer; + processTimer = nullptr; + } + if (grabber != nullptr) { + delete grabber; + grabber = nullptr; + } + if (processor != nullptr) { + delete processor; + processor = nullptr; + } + if (wledClient != nullptr) { + delete wledClient; + wledClient = nullptr; } if (logFile) { logFile->close(); delete logFile; logFile = nullptr; } - qapp->exit(); + if (qapp != nullptr) { + qapp->exit(); + } } -#endif - -#ifdef WLED_CONFIG_TOOL_BUILD -int main(int argc, char *argv[]) +// Slot to receive and store the latest image from HyperionGrabber +void onImageReady(const QImage &image) { - QCoreApplication app(argc, argv); + currentImage = image; +} - QCommandLineParser parser; - parser.setApplicationDescription("WLED Configuration Tool"); - parser.addHelpOption(); - parser.addOption(QCommandLineOption({"a", "address"}, "IP address of the WLED device.", "address")); - - parser.process(app); - - if (!parser.isSet("address")) { - qWarning() << "Error: WLED IP address not provided. Use -a or --address."; - parser.showHelp(1); +// Slot to process the current image and send to WLED (triggered by timer) +void processCurrentFrame() +{ + if (currentImage.isNull()) { + qDebug() << "No image available yet for processing."; + return; } - QString wledIp = parser.value("address"); + // Process the image with HyperionProcessor + QVector ledColors = processor->process(currentImage); - WledConfigClient client(wledIp); + // Send colors to WLED + wledClient->setLedsColor(ledColors); - QObject::connect(&client, &WledConfigClient::infoReceived, [&](const QJsonObject &info) { - QJsonDocument doc(info); - qDebug() << "WLED Configuration Info:\n" << doc.toJson(QJsonDocument::Indented); - app.quit(); - }); - - QObject::connect(&client, &WledConfigClient::error, [&](const QString &message) { - qWarning() << "Error retrieving WLED info:" << message; - app.quit(); - }); - - client.getInfo(); - - return app.exec(); + qDebug() << "Processed frame and sent to WLED."; } -#else + int main(int argc, char *argv[]) { + // Initialize logging to file logFile = new QFile("output.log"); if (!logFile->open(QFile::WriteOnly | QFile::Text | QFile::Truncate)) { fprintf(stderr, "Warning: Could not open log file output.log for writing.\n"); delete logFile; logFile = nullptr; } - + qInstallMessageHandler(customMessageOutput); qapp = new QApplication(argc, argv); signal(SIGINT, quit); @@ -131,35 +134,60 @@ int main(int argc, char *argv[]) QApplication::setApplicationName("HyperionGrabber"); QApplication::setApplicationVersion("0.2"); - QCommandLineParser parser; - parser.setApplicationDescription("Hyperion grabber for Wayland using Qt"); - parser.addHelpOption(); - parser.addVersionOption(); - parser.addOption(QCommandLineOption({"a", "address"}, "Address to the hyperion json server. (ex. 127.0.0.1)", "address")); - parser.addOption(QCommandLineOption({"p", "port"}, "Port for the hyperion json server. (ex. 19444)", "port")); - parser.addOption(QCommandLineOption({"s", "scale"}, "Divisor used to scale your screen resolution (ex. 8 ; if your screen is 1920x1080, the result image sent to hyperion is 240x135", "scale")); - parser.addOption(QCommandLineOption({"f", "frameskip"}, "Number of frames to skip between captures (ex. 1 ; 0 means no frames are skipped)", "frameskip")); - parser.addOption(QCommandLineOption({"i", "inactive"}, "How many seconds after the screen is inactive to turn off the LED's. Set to 0 to disable.", "seonds")); - parser.addOption(QCommandLineOption({"r", "redadjust"}, "Adjustment of the LED's red color (requires 3 space seperated values between 0 and 255) (ex. \"255,10,0\")", "value")); - parser.addOption(QCommandLineOption({"g", "greenadjust"}, "Adjustment of the LED's green color (requires 3 space seperated values between 0 and 255) (ex. \"75,210,0\")", "value")); - parser.addOption(QCommandLineOption({"b", "blueadjust"}, "Adjustment of the LED's blue color (requires 3 space seperated values between 0 and 255) (ex. \"0,10,160\")", "value")); - parser.addOption(QCommandLineOption({"t", "temperature"}, "Adjustment of the LED's color temperature (requires 3 space seperated values between 0 and 255) (ex. \"255,255,250\")", "value")); - parser.addOption(QCommandLineOption({"d", "threshold"}, "Set the threshold of the LED's (requires 3 space seperated values between 0.0 and 1.0) (ex. \"0.0025,0.005,0.01\")", "value")); - parser.addOption(QCommandLineOption({"l", "transform"}, "Adjusts the luminance / saturation of the LED's values are in this order: luminanceGain, luminanceMin, saturationL (requires 3 space seperated values between 0.0 and 1.0) (ex. \"1.0,0.01,1.0\")", "value")); - - - parser.process(*qapp); - - - QHash opts; - for (const auto &optName : parser.optionNames()) { - if (parser.isSet(optName)) { - opts.insert(optName, parser.value(optName)); - } + // Read configuration from environment variables + QString wledAddress = qgetenv("HYPERION_GRABBER_WLED_ADDRESS"); + if (wledAddress.isEmpty()) { + qCritical() << "Error: HYPERION_GRABBER_WLED_ADDRESS environment variable not set."; + return 1; } - grab = new HyperionGrabber(opts); + quint16 wledPort = qgetenv("HYPERION_GRABBER_WLED_PORT").toUShort(); + if (wledPort == 0) wledPort = 21324; // Default WLED UDP Realtime port + + QHash grabberOpts; + grabberOpts.insert("scale", QString::number(qgetenv("HYPERION_GRABBER_SCALE").toInt())); + grabberOpts.insert("frameskip", QString::number(qgetenv("HYPERION_GRABBER_FRAMESKIP").toInt())); + grabberOpts.insert("changeThreshold", QString::number(qgetenv("HYPERION_GRABBER_CHANGE_THRESHOLD").toInt())); + + LedLayout layout; + layout.bottom = qgetenv("HYPERION_GRABBER_LEDS_BOTTOM").toInt(); + layout.right = qgetenv("HYPERION_GRABBER_LEDS_RIGHT").toInt(); + layout.top = qgetenv("HYPERION_GRABBER_LEDS_TOP").toInt(); + layout.left = qgetenv("HYPERION_GRABBER_LEDS_LEFT").toInt(); + + QJsonObject processorConfig; + processorConfig["blackBorderThreshold"] = qgetenv("HYPERION_GRABBER_BLACK_BORDER_THRESHOLD").toDouble(); + processorConfig["smoothingFactor"] = qgetenv("HYPERION_GRABBER_SMOOTHING_FACTOR").toDouble(); + + // Apply default values if environment variables are not set or invalid + if (grabberOpts["scale"].isEmpty()) grabberOpts["scale"] = "8"; + if (grabberOpts["frameskip"].isEmpty()) grabberOpts["frameskip"] = "0"; + if (grabberOpts["changeThreshold"].isEmpty()) grabberOpts["changeThreshold"] = "100"; + + if (layout.bottom == 0) layout.bottom = 70; + if (layout.right == 0) layout.right = 20; + if (layout.top == 0) layout.top = 70; + if (layout.left == 0) layout.left = 20; + + if (!processorConfig.contains("blackBorderThreshold")) processorConfig["blackBorderThreshold"] = 0.2; + if (!processorConfig.contains("smoothingFactor")) processorConfig["smoothingFactor"] = 0.1; + + // Instantiate components + grabber = new HyperionGrabber(grabberOpts); + processor = new HyperionProcessor(layout, processorConfig); + wledClient = new WledClient(wledAddress, wledPort); + + // Connect grabber to image receiver slot + QObject::connect(grabber, &HyperionGrabber::imageReady, &onImageReady); + + // Setup timer for processing frames + processTimer = new QTimer(); + processTimer->setInterval(1000); // Process every 1 second + QObject::connect(processTimer, &QTimer::timeout, &processCurrentFrame); + processTimer->start(); + + qInfo() << "HyperionGrabber started. Sending LED colors to WLED device:" << wledAddress << ":" << wledPort; + return qapp->exec(); } -#endif