Platformio: further refactoring and bug fixing

platformio:
- min and max as postfix instead of prefix
- add common_mm entry for MM build_flags and lib_deps
- add esp32_4MB_V4_max_base entry for V4

const.h and FX_(2D)fcn.cpp: add IRAM_ATTR_YN to switch off if not esp32 (esp8266 not enough iram for this)

json.cpp: start stop compatibility only if 2D not disabled
This commit is contained in:
Ewoud
2022-11-01 18:18:03 +01:00
parent 0474be3069
commit 46ee25b46b
5 changed files with 138 additions and 117 deletions

View File

@@ -109,7 +109,7 @@ void WS2812FX::setUpMatrix() {
}
// absolute matrix version of setPixelColor()
void IRAM_ATTR WS2812FX::setPixelColorXY(int x, int y, uint32_t col)
void IRAM_ATTR_YN WS2812FX::setPixelColorXY(int x, int y, uint32_t col) //WLEDSR: IRAM_ATTR conditionaly
{
#ifndef WLED_DISABLE_2D
if (!isMatrix) return; // not a matrix set-up
@@ -141,13 +141,13 @@ uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) {
#ifndef WLED_DISABLE_2D
// XY(x,y) - gets pixel index within current segment (often used to reference leds[] array element)
uint16_t IRAM_ATTR Segment::XY(uint16_t x, uint16_t y) {
uint16_t IRAM_ATTR_YN Segment::XY(uint16_t x, uint16_t y) { //WLEDSR: IRAM_ATTR conditionaly
uint16_t width = virtualWidth(); // segment width in logical pixels
uint16_t height = virtualHeight(); // segment height in logical pixels
return (x%width) + (y%height) * width;
}
void IRAM_ATTR Segment::setPixelColorXY(int x, int y, uint32_t col)
void IRAM_ATTR_YN Segment::setPixelColorXY(int x, int y, uint32_t col) //WLEDSR: IRAM_ATTR conditionaly
{
if (!strip.isMatrix) return; // not a matrix set-up
if (x >= virtualWidth() || y >= virtualHeight() || x<0 || y<0) return; // if pixel would fall out of virtual segment just exit