diff --git a/wled00/udp.cpp b/wled00/udp.cpp index d6c279df..d6d1bbfe 100644 --- a/wled00/udp.cpp +++ b/wled00/udp.cpp @@ -772,7 +772,22 @@ uint8_t IRAM_ATTR realtimeBroadcast(uint8_t type, IPAddress client, uint16_t len if (!(apActive || interfacesInited) || !client[0] || !length) return 1; // network not initialised or dummy/unset IP address 031522 ajn added check for ap - WiFiUDP ddpUdp; + // For some reason, this is faster outside of the case block... + // + static byte *packet_buffer = (byte *) heap_caps_calloc_prefer(530, sizeof(byte), 3, MALLOC_CAP_IRAM_8BIT, MALLOC_CAP_DEFAULT, MALLOC_CAP_SPIRAM); // MALLOC_CAP_TCM seems to have alignment issues. + if (packet_buffer[0] != 0x41) memcpy(packet_buffer, ART_NET_HEADER, 12); // copy in the Art-Net header if it isn't there already + + // Volumetric test code + // static byte *buffer = (byte *) heap_caps_calloc_prefer(length*3*72, sizeof(byte), 3, MALLOC_CAP_IRAM_8BIT, MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT); // MALLOC_CAP_TCM seems to have alignment issues. + // memmove(buffer+(length*3),buffer,length*3*7); + // memcpy(buffer,buffer_in,length*3); + // framenumber++; + // if (framenumber >= 8) { + // framenumber = 0; + // } else { + // // return 0; + // } + // length *= 8; switch (type) { case 0: // DDP