diff --git a/src/PubSubClient.cpp b/src/PubSubClient.cpp index 5c02339..3620057 100755 --- a/src/PubSubClient.cpp +++ b/src/PubSubClient.cpp @@ -570,7 +570,7 @@ PubSubClient& PubSubClient::setServer(const char * domain, uint16_t port) { return *this; } -PubSubClient& PubSubClient::setCallback(void(*callback)(char*,uint8_t*,unsigned int)){ +PubSubClient& PubSubClient::setCallback(MQTT_CALLBACK_SIGNATURE) { this->callback = callback; return *this; } diff --git a/src/PubSubClient.h b/src/PubSubClient.h index 1098f66..f9792c0 100755 --- a/src/PubSubClient.h +++ b/src/PubSubClient.h @@ -73,7 +73,12 @@ #define MQTTQOS1 (1 << 1) #define MQTTQOS2 (2 << 1) -#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*,uint8_t*,unsigned int) +#ifdef ESP8266 +#include +#define MQTT_CALLBACK_SIGNATURE std::function callback +#else +#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*, uint8_t*, uint32_t) +#endif class PubSubClient { private: