diff --git a/src/NimBLEDevice.cpp b/src/NimBLEDevice.cpp index 06cb7865..313abd2f 100644 --- a/src/NimBLEDevice.cpp +++ b/src/NimBLEDevice.cpp @@ -54,6 +54,9 @@ # if defined(ESP_PLATFORM) && defined(CONFIG_ENABLE_ARDUINO_DEPENDS) # include "esp32-hal-bt.h" +# if __has_include("esp32-hal-bt-mem.h") +# include "esp32-hal-bt-mem.h" +# endif # endif # include "NimBLELog.h" diff --git a/src/NimBLEStream.cpp b/src/NimBLEStream.cpp index 7ed0c908..853cef22 100644 --- a/src/NimBLEStream.cpp +++ b/src/NimBLEStream.cpp @@ -356,8 +356,8 @@ size_t NimBLEStream::write(const uint8_t* data, size_t len) { * @brief Get the available free space in the stream's TX buffer. * @return the number of bytes that can be written to the stream without blocking. */ -size_t NimBLEStream::availableForWrite() const { - return m_txBuf ? m_txBuf->freeSize() : 0; +int NimBLEStream::availableForWrite() { + return m_txBuf ? static_cast(m_txBuf->freeSize()) : 0; } /** diff --git a/src/NimBLEStream.h b/src/NimBLEStream.h index 47ccb83d..5285294b 100644 --- a/src/NimBLEStream.h +++ b/src/NimBLEStream.h @@ -55,6 +55,7 @@ class Stream : public Print { virtual int available() = 0; virtual int read() = 0; virtual int peek() = 0; + virtual int availableForWrite() { return 0; } virtual void flush() {} void setTimeout(unsigned long timeout) { m_timeout = timeout; } unsigned long getTimeout() const { return m_timeout; } @@ -86,7 +87,7 @@ class NimBLEStream : public Stream { return write(static_cast(data)); } - size_t availableForWrite() const; + int availableForWrite() override; // Read up to len bytes into buffer (non-blocking) size_t read(uint8_t* buffer, size_t len);