From b7678e94ef7e6859b1164c12a65be6cd620c67e3 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Sat, 21 Sep 2024 09:19:32 -0700 Subject: [PATCH] organize --- src/internal/NeoMethods.h | 29 +++-- src/internal/methods/{ => ARM}/NeoArmMethod.h | 0 .../methods/{ => ARM}/NeoNrf52xMethod.h | 0 src/internal/methods/{ => AVR}/NeoAvrMethod.h | 0 src/internal/methods/{ => AVR}/NeoPixelAvr.c | 0 .../{ => AVR}/TwoWireBitBangImpleAvr.h | 0 src/internal/methods/DotStarGenericMethod.h | 2 +- .../{ => ESP/ESP32/Core_2_x}/Esp32_i2s.c | 0 .../{ => ESP/ESP32/Core_2_x}/Esp32_i2s.h | 0 .../ESP32/Core_2_x}/NeoEsp32I2sMethod.h | 0 .../ESP32/Core_2_x}/NeoEsp32I2sXMethod.h | 0 .../ESP32}/DotStarEsp32DmaSpiMethod.h | 0 .../{ => ESP/ESP32}/NeoEsp32LcdXMethod.h | 0 .../methods/ESP/ESP32/NeoEsp32RmtChannel.h | 111 ++++++++++++++++++ ...oEsp32RmtXMethod.h => NeoEsp32RmtMethod.h} | 0 .../{ => ESP/ESP32}/TwoWireHspiImple.h | 0 .../{ => ESP/ESP8266}/NeoEsp8266DmaMethod.h | 0 .../ESP8266}/NeoEsp8266I2sDmx512Method.h | 0 .../ESP8266}/NeoEsp8266I2sMethodCore.cpp | 0 .../ESP8266}/NeoEsp8266I2sMethodCore.h | 0 .../ESP8266}/NeoEsp8266UartMethod.cpp | 0 .../{ => ESP/ESP8266}/NeoEsp8266UartMethod.h | 0 .../methods/{ => ESP}/NeoEspBitBangMethod.cpp | 0 .../methods/{ => ESP}/NeoEspBitBangMethod.h | 0 src/internal/methods/Hd108GenericMethod.h | 2 +- src/internal/methods/Mbi6033GenericMethod.h | 2 +- src/internal/methods/Tlc59711GenericMethod.h | 2 +- 27 files changed, 129 insertions(+), 19 deletions(-) rename src/internal/methods/{ => ARM}/NeoArmMethod.h (100%) rename src/internal/methods/{ => ARM}/NeoNrf52xMethod.h (100%) rename src/internal/methods/{ => AVR}/NeoAvrMethod.h (100%) rename src/internal/methods/{ => AVR}/NeoPixelAvr.c (100%) rename src/internal/methods/{ => AVR}/TwoWireBitBangImpleAvr.h (100%) rename src/internal/methods/{ => ESP/ESP32/Core_2_x}/Esp32_i2s.c (100%) rename src/internal/methods/{ => ESP/ESP32/Core_2_x}/Esp32_i2s.h (100%) rename src/internal/methods/{ => ESP/ESP32/Core_2_x}/NeoEsp32I2sMethod.h (100%) rename src/internal/methods/{ => ESP/ESP32/Core_2_x}/NeoEsp32I2sXMethod.h (100%) rename src/internal/methods/{ => ESP/ESP32}/DotStarEsp32DmaSpiMethod.h (100%) rename src/internal/methods/{ => ESP/ESP32}/NeoEsp32LcdXMethod.h (100%) create mode 100644 src/internal/methods/ESP/ESP32/NeoEsp32RmtChannel.h rename src/internal/methods/ESP/ESP32/{NeoEsp32RmtXMethod.h => NeoEsp32RmtMethod.h} (100%) rename src/internal/methods/{ => ESP/ESP32}/TwoWireHspiImple.h (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266DmaMethod.h (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266I2sDmx512Method.h (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266I2sMethodCore.cpp (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266I2sMethodCore.h (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266UartMethod.cpp (100%) rename src/internal/methods/{ => ESP/ESP8266}/NeoEsp8266UartMethod.h (100%) rename src/internal/methods/{ => ESP}/NeoEspBitBangMethod.cpp (100%) rename src/internal/methods/{ => ESP}/NeoEspBitBangMethod.h (100%) diff --git a/src/internal/NeoMethods.h b/src/internal/NeoMethods.h index 4acbbab..9c8aba3 100644 --- a/src/internal/NeoMethods.h +++ b/src/internal/NeoMethods.h @@ -50,15 +50,15 @@ License along with NeoPixel. If not, see // #if defined(ARDUINO_ARCH_ESP8266) -#include "methods/NeoEsp8266DmaMethod.h" -#include "methods/NeoEsp8266I2sDmx512Method.h" -#include "methods/NeoEsp8266UartMethod.h" -#include "methods/NeoEspBitBangMethod.h" +#include "methods/ESP/ESP8266/NeoEsp8266DmaMethod.h" +#include "methods/ESP/ESP8266/NeoEsp8266I2sDmx512Method.h" +#include "methods/ESP/ESP8266/NeoEsp8266UartMethod.h" +#include "methods/ESP/NeoEspBitBangMethod.h" #elif defined(ARDUINO_ARCH_ESP32) #if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) -#include "methods/NeoEsp32I2sMethod.h" +#include "methods/ESP/ESP32/Core_2_x/NeoEsp32I2sMethod.h" #if ESP_IDF_VERSION_MAJOR < 5 #include "methods/ESP/ESP32/Core_2_x/NeoEsp32RmtMethod.h" #else @@ -68,29 +68,28 @@ License along with NeoPixel. If not, see #include "methods/ESP/ESP32/NeoEsp32SpiMethod.h" // ESP32C2 #endif //CONFIG_IDF_TARGET_ESP32C2 #endif // ESP_IDF_VERSION_MAJOR -#include "methods/DotStarEsp32DmaSpiMethod.h" -#include "methods/NeoEsp32I2sXMethod.h" -#include "methods/NeoEsp32LcdXMethod.h" - - +#include "methods/ESP/ESP32/DotStarEsp32DmaSpiMethod.h" +#include "methods/ESP/ESP32/Core_2_x/NeoEsp32I2sXMethod.h" +#include "methods/ESP/ESP32/NeoEsp32LcdXMethod.h" #endif -#include "methods/NeoEspBitBangMethod.h" + +#include "methods/ESP/NeoEspBitBangMethod.h" #elif defined(ARDUINO_ARCH_NRF52840) // must be before __arm__ -#include "methods/NeoNrf52xMethod.h" +#include "methods/ARM/NeoNrf52xMethod.h" #elif defined(ARDUINO_ARCH_RP2040) // must be before __arm__ -#include "methods/Rp2040/NeoRp2040x4Method.h" +#include "methods/RP2040/NeoRp2040x4Method.h" #elif defined(__arm__) // must be before ARDUINO_ARCH_AVR due to Teensy incorrectly having it set -#include "methods/NeoArmMethod.h" +#include "methods/ARM/NeoArmMethod.h" #elif defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_MEGAAVR) -#include "methods/NeoAvrMethod.h" +#include "methods/AVR/NeoAvrMethod.h" #else #error "Platform Currently Not Supported, please add an Issue at Github/Makuna/NeoPixelBus" diff --git a/src/internal/methods/NeoArmMethod.h b/src/internal/methods/ARM/NeoArmMethod.h similarity index 100% rename from src/internal/methods/NeoArmMethod.h rename to src/internal/methods/ARM/NeoArmMethod.h diff --git a/src/internal/methods/NeoNrf52xMethod.h b/src/internal/methods/ARM/NeoNrf52xMethod.h similarity index 100% rename from src/internal/methods/NeoNrf52xMethod.h rename to src/internal/methods/ARM/NeoNrf52xMethod.h diff --git a/src/internal/methods/NeoAvrMethod.h b/src/internal/methods/AVR/NeoAvrMethod.h similarity index 100% rename from src/internal/methods/NeoAvrMethod.h rename to src/internal/methods/AVR/NeoAvrMethod.h diff --git a/src/internal/methods/NeoPixelAvr.c b/src/internal/methods/AVR/NeoPixelAvr.c similarity index 100% rename from src/internal/methods/NeoPixelAvr.c rename to src/internal/methods/AVR/NeoPixelAvr.c diff --git a/src/internal/methods/TwoWireBitBangImpleAvr.h b/src/internal/methods/AVR/TwoWireBitBangImpleAvr.h similarity index 100% rename from src/internal/methods/TwoWireBitBangImpleAvr.h rename to src/internal/methods/AVR/TwoWireBitBangImpleAvr.h diff --git a/src/internal/methods/DotStarGenericMethod.h b/src/internal/methods/DotStarGenericMethod.h index 615d9ef..17e3405 100644 --- a/src/internal/methods/DotStarGenericMethod.h +++ b/src/internal/methods/DotStarGenericMethod.h @@ -162,7 +162,7 @@ typedef DotStarMethodBase> DotStarEsp32VspiHzMethod; typedef DotStarSpi10MhzMethod DotStarEsp32VspiMethod; -#include "TwoWireHspiImple.h" +#include "ESP/ESP32/TwoWireHspiImple.h" typedef DotStarMethodBase> DotStarEsp32Hspi40MhzMethod; typedef DotStarMethodBase> DotStarEsp32Hspi20MhzMethod; typedef DotStarMethodBase> DotStarEsp32Hspi10MhzMethod; diff --git a/src/internal/methods/Esp32_i2s.c b/src/internal/methods/ESP/ESP32/Core_2_x/Esp32_i2s.c similarity index 100% rename from src/internal/methods/Esp32_i2s.c rename to src/internal/methods/ESP/ESP32/Core_2_x/Esp32_i2s.c diff --git a/src/internal/methods/Esp32_i2s.h b/src/internal/methods/ESP/ESP32/Core_2_x/Esp32_i2s.h similarity index 100% rename from src/internal/methods/Esp32_i2s.h rename to src/internal/methods/ESP/ESP32/Core_2_x/Esp32_i2s.h diff --git a/src/internal/methods/NeoEsp32I2sMethod.h b/src/internal/methods/ESP/ESP32/Core_2_x/NeoEsp32I2sMethod.h similarity index 100% rename from src/internal/methods/NeoEsp32I2sMethod.h rename to src/internal/methods/ESP/ESP32/Core_2_x/NeoEsp32I2sMethod.h diff --git a/src/internal/methods/NeoEsp32I2sXMethod.h b/src/internal/methods/ESP/ESP32/Core_2_x/NeoEsp32I2sXMethod.h similarity index 100% rename from src/internal/methods/NeoEsp32I2sXMethod.h rename to src/internal/methods/ESP/ESP32/Core_2_x/NeoEsp32I2sXMethod.h diff --git a/src/internal/methods/DotStarEsp32DmaSpiMethod.h b/src/internal/methods/ESP/ESP32/DotStarEsp32DmaSpiMethod.h similarity index 100% rename from src/internal/methods/DotStarEsp32DmaSpiMethod.h rename to src/internal/methods/ESP/ESP32/DotStarEsp32DmaSpiMethod.h diff --git a/src/internal/methods/NeoEsp32LcdXMethod.h b/src/internal/methods/ESP/ESP32/NeoEsp32LcdXMethod.h similarity index 100% rename from src/internal/methods/NeoEsp32LcdXMethod.h rename to src/internal/methods/ESP/ESP32/NeoEsp32LcdXMethod.h diff --git a/src/internal/methods/ESP/ESP32/NeoEsp32RmtChannel.h b/src/internal/methods/ESP/ESP32/NeoEsp32RmtChannel.h new file mode 100644 index 0000000..8a83daf --- /dev/null +++ b/src/internal/methods/ESP/ESP32/NeoEsp32RmtChannel.h @@ -0,0 +1,111 @@ +/*------------------------------------------------------------------------- +NeoPixel library helper functions for Esp32. + +Written by Michael C. Miller. + +I invest time and resources providing this open source code, +please support me by dontating (see https://github.com/Makuna/NeoPixelBus) + +------------------------------------------------------------------------- +This file is part of the Makuna/NeoPixelBus library. + +NeoPixelBus is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +NeoPixelBus is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with NeoPixel. If not, see +. +-------------------------------------------------------------------------*/ + +#pragma once + +class NeoEsp32RmtChannel0 +{ +public: + NeoEsp32RmtChannel0() {}; + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +class NeoEsp32RmtChannel1 +{ +public: + NeoEsp32RmtChannel1() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +#if !defined(CONFIG_IDF_TARGET_ESP32C6) // C6 only 2 RMT channels ?? +class NeoEsp32RmtChannel2 +{ +public: + NeoEsp32RmtChannel2() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +class NeoEsp32RmtChannel3 +{ +public: + NeoEsp32RmtChannel3() {}; + +protected: + rmt_channel_handle_t RmtChannelNumber = NULL; +}; +#endif // !defined(CONFIG_IDF_TARGET_ESP32C6) +#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) + +class NeoEsp32RmtChannel4 +{ +public: + NeoEsp32RmtChannel4() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +class NeoEsp32RmtChannel5 +{ +public: + NeoEsp32RmtChannel5() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +class NeoEsp32RmtChannel6 +{ +public: + NeoEsp32RmtChannel6() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +class NeoEsp32RmtChannel7 +{ +public: + NeoEsp32RmtChannel7() {}; + + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + +#endif + +// dynamic channel support +class NeoEsp32RmtChannelN +{ +public: + NeoEsp32RmtChannelN(NeoBusChannel channel) : + RmtChannelNumber(RmtChannelNumber) + { + RmtChannelNumber = NULL; + }; + NeoEsp32RmtChannelN() = delete; // no default constructor + rmt_channel_handle_t RmtChannelNumber = NULL; +}; + + diff --git a/src/internal/methods/ESP/ESP32/NeoEsp32RmtXMethod.h b/src/internal/methods/ESP/ESP32/NeoEsp32RmtMethod.h similarity index 100% rename from src/internal/methods/ESP/ESP32/NeoEsp32RmtXMethod.h rename to src/internal/methods/ESP/ESP32/NeoEsp32RmtMethod.h diff --git a/src/internal/methods/TwoWireHspiImple.h b/src/internal/methods/ESP/ESP32/TwoWireHspiImple.h similarity index 100% rename from src/internal/methods/TwoWireHspiImple.h rename to src/internal/methods/ESP/ESP32/TwoWireHspiImple.h diff --git a/src/internal/methods/NeoEsp8266DmaMethod.h b/src/internal/methods/ESP/ESP8266/NeoEsp8266DmaMethod.h similarity index 100% rename from src/internal/methods/NeoEsp8266DmaMethod.h rename to src/internal/methods/ESP/ESP8266/NeoEsp8266DmaMethod.h diff --git a/src/internal/methods/NeoEsp8266I2sDmx512Method.h b/src/internal/methods/ESP/ESP8266/NeoEsp8266I2sDmx512Method.h similarity index 100% rename from src/internal/methods/NeoEsp8266I2sDmx512Method.h rename to src/internal/methods/ESP/ESP8266/NeoEsp8266I2sDmx512Method.h diff --git a/src/internal/methods/NeoEsp8266I2sMethodCore.cpp b/src/internal/methods/ESP/ESP8266/NeoEsp8266I2sMethodCore.cpp similarity index 100% rename from src/internal/methods/NeoEsp8266I2sMethodCore.cpp rename to src/internal/methods/ESP/ESP8266/NeoEsp8266I2sMethodCore.cpp diff --git a/src/internal/methods/NeoEsp8266I2sMethodCore.h b/src/internal/methods/ESP/ESP8266/NeoEsp8266I2sMethodCore.h similarity index 100% rename from src/internal/methods/NeoEsp8266I2sMethodCore.h rename to src/internal/methods/ESP/ESP8266/NeoEsp8266I2sMethodCore.h diff --git a/src/internal/methods/NeoEsp8266UartMethod.cpp b/src/internal/methods/ESP/ESP8266/NeoEsp8266UartMethod.cpp similarity index 100% rename from src/internal/methods/NeoEsp8266UartMethod.cpp rename to src/internal/methods/ESP/ESP8266/NeoEsp8266UartMethod.cpp diff --git a/src/internal/methods/NeoEsp8266UartMethod.h b/src/internal/methods/ESP/ESP8266/NeoEsp8266UartMethod.h similarity index 100% rename from src/internal/methods/NeoEsp8266UartMethod.h rename to src/internal/methods/ESP/ESP8266/NeoEsp8266UartMethod.h diff --git a/src/internal/methods/NeoEspBitBangMethod.cpp b/src/internal/methods/ESP/NeoEspBitBangMethod.cpp similarity index 100% rename from src/internal/methods/NeoEspBitBangMethod.cpp rename to src/internal/methods/ESP/NeoEspBitBangMethod.cpp diff --git a/src/internal/methods/NeoEspBitBangMethod.h b/src/internal/methods/ESP/NeoEspBitBangMethod.h similarity index 100% rename from src/internal/methods/NeoEspBitBangMethod.h rename to src/internal/methods/ESP/NeoEspBitBangMethod.h diff --git a/src/internal/methods/Hd108GenericMethod.h b/src/internal/methods/Hd108GenericMethod.h index 4556bbe..aa8ddea 100644 --- a/src/internal/methods/Hd108GenericMethod.h +++ b/src/internal/methods/Hd108GenericMethod.h @@ -152,7 +152,7 @@ typedef Hd108MethodBase> Hd108Esp32VspiHzMethod; typedef Hd108Spi10MhzMethod Hd108Esp32VspiMethod; -#include "TwoWireHspiImple.h" +#include "ESP/ESP32/TwoWireHspiImple.h" typedef Hd108MethodBase> Hd108Esp32Hspi40MhzMethod; typedef Hd108MethodBase> Hd108Esp32Hspi20MhzMethod; typedef Hd108MethodBase> Hd108Esp32Hspi10MhzMethod; diff --git a/src/internal/methods/Mbi6033GenericMethod.h b/src/internal/methods/Mbi6033GenericMethod.h index eaddbca..1cef6a7 100644 --- a/src/internal/methods/Mbi6033GenericMethod.h +++ b/src/internal/methods/Mbi6033GenericMethod.h @@ -192,7 +192,7 @@ typedef Mbi6033MethodBase> Mbi6033Esp32VspiHzMethod; typedef Mbi6033Spi10MhzMethod Mbi6033Esp32VspiMethod; -#include "TwoWireHspiImple.h" +#include "ESP/ESP32/TwoWireHspiImple.h" typedef Mbi6033MethodBase> Mbi6033Esp32Hspi40MhzMethod; typedef Mbi6033MethodBase> Mbi6033Esp32Hspi20MhzMethod; typedef Mbi6033MethodBase> Mbi6033Esp32Hspi10MhzMethod; diff --git a/src/internal/methods/Tlc59711GenericMethod.h b/src/internal/methods/Tlc59711GenericMethod.h index 43f9525..1841b30 100644 --- a/src/internal/methods/Tlc59711GenericMethod.h +++ b/src/internal/methods/Tlc59711GenericMethod.h @@ -209,7 +209,7 @@ typedef Tlc59711MethodBase> Tlc59711Esp32VspiHzMetho typedef Tlc59711MethodBase> Tlc59711Esp32VspiMethod; -#include "TwoWireHspiImple.h" +#include "ESP/ESP32/TwoWireHspiImple.h" typedef Tlc59711MethodBase> Tlc59711Esp32Hspi40MhzMethod; typedef Tlc59711MethodBase> Tlc59711Esp32Hspi20MhzMethod; typedef Tlc59711MethodBase> Tlc59711Esp32Hspi10MhzMethod;