radarsat1 / liblo

liblo is an implementation of the Open Sound Control protocol for POSIX systems
GNU Lesser General Public License v2.1
190 stars 60 forks source link

ESP32 compatibility #88

Closed mathiasbredholt closed 4 years ago

mathiasbredholt commented 4 years ago

I'm submitting this pull request to make liblo compatible with the libmapper Arduino library I'm working on. The port allows the usage of both liblo and libmapper on the Arduino ESP32 platform.

malloc(0) returns either a null pointer or a unique pointer according to the standard https://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html Therefore I think it makes sense to check whether remain > 0

The IP_MULTICAST_LOOP socket option is necessary for libmapper and it defaults to 1 on Linux/macOS. On the ESP32 it defaults to 0. Therefore setting it to 1 should not break any current applications.

The closesocket thing is because the TCP/IP library LWIP defines closesocket as an inline function and therefore it can't be redefined.

radarsat1 commented 4 years ago

Thanks Matthias, I will check this when I get a chance!