From 81f6cb32c857f370f70c7e5831e5b7635671a17d Mon Sep 17 00:00:00 2001 From: Hane Date: Mon, 14 Aug 2023 18:23:49 +0200 Subject: [PATCH] changed invoke instances with call-to-mem-fun macro --- src/cont/contclasses.cpp | 13 ++++++++----- src/cont/contclasses.h | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cont/contclasses.cpp b/src/cont/contclasses.cpp index 7bca344..8281bb8 100644 --- a/src/cont/contclasses.cpp +++ b/src/cont/contclasses.cpp @@ -115,14 +115,16 @@ void OverseerHandler::setEndpointWidgets(std::vector ews){ void OverseerHandler::updateMuteCallback(uint64_t idx, bool muted){ epwMuteFunc f = &EndpointWidget::updateMute; - std::invoke(f, endpointWidgets.at(idx), muted); + pinvoke_mem_fn(endpointWidgets.at(idx),f)(muted); + //std::invoke(f, endpointWidgets.at(idx), muted); } void OverseerHandler::updateMainVolumeCallback(uint64_t idx, float newVal){ //int translatedNewVal = newVal * 100; log_debugcpp("mainvolcallback float: " << newVal); epwMainVolumeFunc f = &EndpointWidget::updateMainVolume; - std::invoke(f, endpointWidgets.at(idx), newVal); + pinvoke_mem_fn(endpointWidgets.at(idx),f)(newVal); + //std::invoke(f, endpointWidgets.at(idx), newVal); } void OverseerHandler::updateChannelVolumeCallback(uint64_t idx, uint32_t channel, float newVal){ @@ -130,13 +132,14 @@ void OverseerHandler::updateChannelVolumeCallback(uint64_t idx, uint32_t channel log_debugcpp("chanel: " << channel << " volcallback float: " << newVal); epwChannelVolumeFunc f = &EndpointWidget::updateChannelVolume; - std::invoke(f, endpointWidgets.at(idx), channel, newVal); - + //std::invoke(f, endpointWidgets.at(idx), channel, newVal); + pinvoke_mem_fn(endpointWidgets.at(idx),f)(channel, newVal); //TODO: Soy retrasado //endpointWidgets.at(idx)->updateChannelVolume(channel, newVal); } void OverseerHandler::toggleFrontEvents(uint64_t idx, bool active) { epwToggleFrontFunc f = &EndpointWidget::toggleFrontEvents; - std::invoke(f, endpointWidgets.at(idx), active); + pinvoke_mem_fn(endpointWidgets.at(idx),f)(active); + //std::invoke(f, , active); } diff --git a/src/cont/contclasses.h b/src/cont/contclasses.h index da58587..5714a79 100644 --- a/src/cont/contclasses.h +++ b/src/cont/contclasses.h @@ -1,4 +1,6 @@ #pragma once +#define invoke_mem_fn(object,ptrToMember) ((object).*(ptrToMember)) +#define pinvoke_mem_fn(object,ptrToMember) ((object)->*(ptrToMember)) /* #ifndef QTBLESSED */ /* //#define Q_OBJECT */