From 7e939323240b10a6171c5295eb79ed9386155260 Mon Sep 17 00:00:00 2001
From: Serge Bazanski <q3k@q3k.org>
Date: Sat, 13 May 2023 16:20:25 +0200
Subject: [PATCH] badg23, gc9a01: move to components/

---
 CMakeLists.txt                                |  3 ---
 badge23/CMakeLists.txt                        |  6 ------
 badge23/Kconfig.projbuild                     | 21 -------------------
 badge23/idf_component.yml                     | 17 ---------------
 components/badge23/CMakeLists.txt             | 15 +++++++++++++
 .../badge23}/apa102LEDStrip.c                 |  2 +-
 {badge23 => components/badge23}/audio.c       |  7 +++----
 {badge23 => components/badge23}/captouch.c    |  0
 {badge23 => components/badge23}/display.c     |  6 +++---
 {badge23 => components/badge23}/espan.c       | 11 ++++------
 .../badge23/include/badge23}/apa102LEDStrip.h |  0
 .../badge23/include/badge23}/audio.h          |  0
 .../badge23/include/badge23}/captouch.h       |  0
 .../badge23/include/badge23}/decode_image.h   |  0
 .../badge23/include/badge23}/display.h        |  0
 .../badge23/include/badge23}/espan.h          |  0
 .../badge23/include/badge23}/leds.h           |  0
 .../badge23/include/badge23}/scope.h          |  0
 .../badge23/include/badge23}/synth.h          |  0
 .../badge23}/instruments/instrument.c         |  0
 .../badge23}/instruments/instrument.h         |  0
 .../badge23}/instruments/minimal_example.c    |  0
 {badge23 => components/badge23}/leds.c        |  4 ++--
 {badge23 => components/badge23}/scope.c       |  2 +-
 {badge23 => components/badge23}/synth.c       |  4 ++--
 {badge23 => components/badge23}/tags          |  0
 .../gc9a01/CMakeLists.txt                     |  0
 .../components => components}/gc9a01/Kconfig  |  0
 .../components => components}/gc9a01/LICENSE  |  0
 .../components => components}/gc9a01/gc9a01.c |  0
 .../components => components}/gc9a01/gc9a01.h |  0
 .../gc9a01/readme.md                          |  0
 main/CMakeLists.txt                           | 16 +-------------
 micropython/ports/esp32/badge23_mp_hardware.c |  9 ++++----
 micropython/ports/esp32/badge23_mp_synth.c    |  4 ++--
 micropython/ports/esp32/main.c                |  2 +-
 36 files changed, 40 insertions(+), 89 deletions(-)
 delete mode 100644 badge23/CMakeLists.txt
 delete mode 100644 badge23/Kconfig.projbuild
 delete mode 100644 badge23/idf_component.yml
 create mode 100644 components/badge23/CMakeLists.txt
 rename {badge23 => components/badge23}/apa102LEDStrip.c (98%)
 rename {badge23 => components/badge23}/audio.c (98%)
 rename {badge23 => components/badge23}/captouch.c (100%)
 rename {badge23 => components/badge23}/display.c (96%)
 rename {badge23 => components/badge23}/espan.c (90%)
 rename {badge23 => components/badge23/include/badge23}/apa102LEDStrip.h (100%)
 rename {badge23 => components/badge23/include/badge23}/audio.h (100%)
 rename {badge23 => components/badge23/include/badge23}/captouch.h (100%)
 rename {badge23 => components/badge23/include/badge23}/decode_image.h (100%)
 rename {badge23 => components/badge23/include/badge23}/display.h (100%)
 rename {badge23 => components/badge23/include/badge23}/espan.h (100%)
 rename {badge23 => components/badge23/include/badge23}/leds.h (100%)
 rename {badge23 => components/badge23/include/badge23}/scope.h (100%)
 rename {badge23 => components/badge23/include/badge23}/synth.h (100%)
 rename {badge23 => components/badge23}/instruments/instrument.c (100%)
 rename {badge23 => components/badge23}/instruments/instrument.h (100%)
 rename {badge23 => components/badge23}/instruments/minimal_example.c (100%)
 rename {badge23 => components/badge23}/leds.c (99%)
 rename {badge23 => components/badge23}/scope.c (98%)
 rename {badge23 => components/badge23}/synth.c (98%)
 rename {badge23 => components/badge23}/tags (100%)
 rename {badge23/components => components}/gc9a01/CMakeLists.txt (100%)
 rename {badge23/components => components}/gc9a01/Kconfig (100%)
 rename {badge23/components => components}/gc9a01/LICENSE (100%)
 rename {badge23/components => components}/gc9a01/gc9a01.c (100%)
 rename {badge23/components => components}/gc9a01/gc9a01.h (100%)
 rename {badge23/components => components}/gc9a01/readme.md (100%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 25cdc84486..a8d12eee73 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,4 @@ set(IDF_TARGET esp32s3)
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 
-# TODO(q3k): migrate badge23/components/* to components/*.
-list(APPEND EXTRA_COMPONENT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/badge23/components/")
-
 project(badge23)
diff --git a/badge23/CMakeLists.txt b/badge23/CMakeLists.txt
deleted file mode 100644
index a4cf9845e1..0000000000
--- a/badge23/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-idf_component_register(SRCS "espan.c" "apa102LEDStrip.c" "audio.c" "captouch.c" "decode_image.c" "leds.c" "display.c" "synth.c" "scope.c"
-    EMBED_FILES
-        ${project_dir}/resources/boot.snd
-        ${project_dir}/resources/pan.s16
-        ${project_dir}/resources/image.jpg
-                    INCLUDE_DIRS ".")
diff --git a/badge23/Kconfig.projbuild b/badge23/Kconfig.projbuild
deleted file mode 100644
index 62f89be8f9..0000000000
--- a/badge23/Kconfig.projbuild
+++ /dev/null
@@ -1,21 +0,0 @@
-menu "Example Configuration"
-
-    orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
-
-    config I2C_MASTER_SCL
-        int "SCL GPIO Num"
-        range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
-        default 19 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
-        default 6
-        help
-            GPIO number for I2C Master clock line.
-
-    config I2C_MASTER_SDA
-        int "SDA GPIO Num"
-        range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
-        default 18 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
-        default 5
-        help
-            GPIO number for I2C Master data line.
-
-endmenu
diff --git a/badge23/idf_component.yml b/badge23/idf_component.yml
deleted file mode 100644
index 6766c35944..0000000000
--- a/badge23/idf_component.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-## IDF Component Manager Manifest File
-dependencies:
-  espressif/esp_jpeg: "==1.0.0"
-  ## Required IDF version
-  idf:
-    version: ">=4.1.0"
-  # # Put list of dependencies here
-  # # For components maintained by Espressif:
-  # component: "~1.0.0"
-  # # For 3rd party components:
-  # username/component: ">=1.0.0,<2.0.0"
-  # username2/component2:
-  #   version: "~1.0.0"
-  #   # For transient dependencies `public` flag can be set.
-  #   # `public` flag doesn't have an effect dependencies of the `main` component.
-  #   # All dependencies of `main` are public by default.
-  #   public: true
diff --git a/components/badge23/CMakeLists.txt b/components/badge23/CMakeLists.txt
new file mode 100644
index 0000000000..31354d5922
--- /dev/null
+++ b/components/badge23/CMakeLists.txt
@@ -0,0 +1,15 @@
+idf_component_register(
+    SRCS
+        apa102LEDStrip.c
+        audio.c
+        captouch.c
+        display.c
+        espan.c
+        leds.c
+        scope.c
+        synth.c
+    INCLUDE_DIRS
+        include
+    REQUIRES
+        gc9a01
+)
diff --git a/badge23/apa102LEDStrip.c b/components/badge23/apa102LEDStrip.c
similarity index 98%
rename from badge23/apa102LEDStrip.c
rename to components/badge23/apa102LEDStrip.c
index 32179d1f9f..dceba6a641 100644
--- a/badge23/apa102LEDStrip.c
+++ b/components/badge23/apa102LEDStrip.c
@@ -1,4 +1,4 @@
-#include "apa102LEDStrip.h"
+#include "badge23/apa102LEDStrip.h"
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/badge23/audio.c b/components/badge23/audio.c
similarity index 98%
rename from badge23/audio.c
rename to components/badge23/audio.c
index 86f6dbdc8c..1226341264 100644
--- a/badge23/audio.c
+++ b/components/badge23/audio.c
@@ -1,6 +1,6 @@
-#include "audio.h"
-#include "synth.h" 
-#include "scope.h"
+#include "badge23/audio.h"
+#include "badge23/synth.h" 
+#include "badge23/scope.h"
 
 #include "driver/i2s.h"
 
@@ -10,7 +10,6 @@
 #include <stdio.h>
 #include <math.h>
 #include <string.h>
-#include "../../py/mphal.h"
 
 static void audio_player_task(void* arg);
 
diff --git a/badge23/captouch.c b/components/badge23/captouch.c
similarity index 100%
rename from badge23/captouch.c
rename to components/badge23/captouch.c
diff --git a/badge23/display.c b/components/badge23/display.c
similarity index 96%
rename from badge23/display.c
rename to components/badge23/display.c
index ab60092a63..0ad3e62c6e 100644
--- a/badge23/display.c
+++ b/components/badge23/display.c
@@ -1,5 +1,5 @@
-#include "display.h"
-#include "components/gc9a01/gc9a01.h"
+#include "badge23/display.h"
+#include "gc9a01.h"
 
 #include "esp_log.h"
 #include <freertos/FreeRTOS.h>
@@ -10,7 +10,7 @@
 #include <string.h>
 #include <math.h>
 
-#include "scope.h"
+#include "badge23/scope.h"
 #include "esp_system.h"
 
 uint16_t *pixels;
diff --git a/badge23/espan.c b/components/badge23/espan.c
similarity index 90%
rename from badge23/espan.c
rename to components/badge23/espan.c
index 4b8a06c914..8c08c8304d 100644
--- a/badge23/espan.c
+++ b/components/badge23/espan.c
@@ -1,8 +1,7 @@
-#include "captouch.h"
-#include "audio.h"
-#include "leds.h"
-#include "../../py/mphal.h"
-#include "display.h"
+#include "badge23/captouch.h"
+#include "badge23/audio.h"
+#include "badge23/leds.h"
+#include "badge23/display.h"
 
 #include "esp_log.h"
 #include "driver/i2c.h"
@@ -56,9 +55,7 @@ void os_app_main(void)
     vTaskDelay(2000 / portTICK_PERIOD_MS);
     //set_global_vol_dB(0);
 
-    mp_hal_stdout_tx_str("task inits done\n\r");
     display_init();
-    mp_hal_stdout_tx_str("display init done\n\r");
     while(1) {
         manual_captouch_readout(1);
         vTaskDelay((CAPTOUCH_POLLING_PERIOD) / portTICK_PERIOD_MS);
diff --git a/badge23/apa102LEDStrip.h b/components/badge23/include/badge23/apa102LEDStrip.h
similarity index 100%
rename from badge23/apa102LEDStrip.h
rename to components/badge23/include/badge23/apa102LEDStrip.h
diff --git a/badge23/audio.h b/components/badge23/include/badge23/audio.h
similarity index 100%
rename from badge23/audio.h
rename to components/badge23/include/badge23/audio.h
diff --git a/badge23/captouch.h b/components/badge23/include/badge23/captouch.h
similarity index 100%
rename from badge23/captouch.h
rename to components/badge23/include/badge23/captouch.h
diff --git a/badge23/decode_image.h b/components/badge23/include/badge23/decode_image.h
similarity index 100%
rename from badge23/decode_image.h
rename to components/badge23/include/badge23/decode_image.h
diff --git a/badge23/display.h b/components/badge23/include/badge23/display.h
similarity index 100%
rename from badge23/display.h
rename to components/badge23/include/badge23/display.h
diff --git a/badge23/espan.h b/components/badge23/include/badge23/espan.h
similarity index 100%
rename from badge23/espan.h
rename to components/badge23/include/badge23/espan.h
diff --git a/badge23/leds.h b/components/badge23/include/badge23/leds.h
similarity index 100%
rename from badge23/leds.h
rename to components/badge23/include/badge23/leds.h
diff --git a/badge23/scope.h b/components/badge23/include/badge23/scope.h
similarity index 100%
rename from badge23/scope.h
rename to components/badge23/include/badge23/scope.h
diff --git a/badge23/synth.h b/components/badge23/include/badge23/synth.h
similarity index 100%
rename from badge23/synth.h
rename to components/badge23/include/badge23/synth.h
diff --git a/badge23/instruments/instrument.c b/components/badge23/instruments/instrument.c
similarity index 100%
rename from badge23/instruments/instrument.c
rename to components/badge23/instruments/instrument.c
diff --git a/badge23/instruments/instrument.h b/components/badge23/instruments/instrument.h
similarity index 100%
rename from badge23/instruments/instrument.h
rename to components/badge23/instruments/instrument.h
diff --git a/badge23/instruments/minimal_example.c b/components/badge23/instruments/minimal_example.c
similarity index 100%
rename from badge23/instruments/minimal_example.c
rename to components/badge23/instruments/minimal_example.c
diff --git a/badge23/leds.c b/components/badge23/leds.c
similarity index 99%
rename from badge23/leds.c
rename to components/badge23/leds.c
index f77e9b574a..5148e44c67 100644
--- a/badge23/leds.c
+++ b/components/badge23/leds.c
@@ -1,4 +1,4 @@
-#include "leds.h"
+#include "badge23/leds.h"
 
 #include "driver/spi_master.h"
 
@@ -23,7 +23,7 @@ static QueueHandle_t leds_queue = NULL;
 static leds_cfg_t active_leds[11];
 static void leds_task(void* arg);
 
-#include "apa102LEDStrip.h"
+#include "badge23/apa102LEDStrip.h"
 static struct apa102LEDStrip leds;
 
 //SPI Vars
diff --git a/badge23/scope.c b/components/badge23/scope.c
similarity index 98%
rename from badge23/scope.c
rename to components/badge23/scope.c
index 689c691a1f..dc92395dd2 100644
--- a/badge23/scope.c
+++ b/components/badge23/scope.c
@@ -1,4 +1,4 @@
-#include "scope.h"
+#include "badge23/scope.h"
 #include <string.h>
 
 scope_t * scope;
diff --git a/badge23/synth.c b/components/badge23/synth.c
similarity index 98%
rename from badge23/synth.c
rename to components/badge23/synth.c
index f31b2fb6f4..52ce89fb55 100644
--- a/badge23/synth.c
+++ b/components/badge23/synth.c
@@ -1,5 +1,5 @@
-#include "synth.h"
-#include "audio.h"
+#include "badge23/synth.h"
+#include "badge23/audio.h"
 #include <math.h>
 
 float ks_osc(ks_osc_t * ks, float input){
diff --git a/badge23/tags b/components/badge23/tags
similarity index 100%
rename from badge23/tags
rename to components/badge23/tags
diff --git a/badge23/components/gc9a01/CMakeLists.txt b/components/gc9a01/CMakeLists.txt
similarity index 100%
rename from badge23/components/gc9a01/CMakeLists.txt
rename to components/gc9a01/CMakeLists.txt
diff --git a/badge23/components/gc9a01/Kconfig b/components/gc9a01/Kconfig
similarity index 100%
rename from badge23/components/gc9a01/Kconfig
rename to components/gc9a01/Kconfig
diff --git a/badge23/components/gc9a01/LICENSE b/components/gc9a01/LICENSE
similarity index 100%
rename from badge23/components/gc9a01/LICENSE
rename to components/gc9a01/LICENSE
diff --git a/badge23/components/gc9a01/gc9a01.c b/components/gc9a01/gc9a01.c
similarity index 100%
rename from badge23/components/gc9a01/gc9a01.c
rename to components/gc9a01/gc9a01.c
diff --git a/badge23/components/gc9a01/gc9a01.h b/components/gc9a01/gc9a01.h
similarity index 100%
rename from badge23/components/gc9a01/gc9a01.h
rename to components/gc9a01/gc9a01.h
diff --git a/badge23/components/gc9a01/readme.md b/components/gc9a01/readme.md
similarity index 100%
rename from badge23/components/gc9a01/readme.md
rename to components/gc9a01/readme.md
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index 70e80e5789..ea39b53659 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -103,6 +103,7 @@ set(MICROPY_SOURCE_QSTR
 
 set(IDF_COMPONENTS
     app_update
+    badge23
     bootloader_support
     bt
     driver
@@ -140,20 +141,6 @@ set(IDF_COMPONENTS
 set(MICROPY_FROZEN_MANIFEST ${MICROPY_PORT_DIR}/boards/manifest.py)
 set(MICROPY_CROSS_FLAGS -march=xtensawin)
 
-# Include badge23/* via this component for now.
-# TODO(q3k): make this into a real component.
-set(BADGE23_SOURCE
-    ${PROJECT_DIR}/badge23/apa102LEDStrip.c
-    ${PROJECT_DIR}/badge23/audio.c
-    ${PROJECT_DIR}/badge23/captouch.c
-    ${PROJECT_DIR}/badge23/display.c
-    ${PROJECT_DIR}/badge23/espan.c
-    ${PROJECT_DIR}/badge23/leds.c
-    ${PROJECT_DIR}/badge23/scope.c
-    ${PROJECT_DIR}/badge23/synth.c
-    ${PROJECT_DIR}/badge23/components/gc9a01/gc9a01.c
-)
-
 idf_component_register(
     SRCS
         ${MICROPY_SOURCE_PY}
@@ -163,7 +150,6 @@ idf_component_register(
         ${MICROPY_SOURCE_LIB}
         ${MICROPY_SOURCE_DRIVERS}
         ${MICROPY_SOURCE_PORT}
-        ${BADGE23_SOURCE}
     INCLUDE_DIRS
         # Actual micropython include paths.
         ${MICROPY_INC_CORE}
diff --git a/micropython/ports/esp32/badge23_mp_hardware.c b/micropython/ports/esp32/badge23_mp_hardware.c
index 14dca2cfc3..e0e5c7e4d4 100644
--- a/micropython/ports/esp32/badge23_mp_hardware.c
+++ b/micropython/ports/esp32/badge23_mp_hardware.c
@@ -10,11 +10,12 @@
 #include "machine_rtc.h"
 #include "py/builtin.h"
 #include "py/runtime.h"
-#include "../badge23/audio.h"
-#include "../badge23/leds.h"
-#include "../badge23/captouch.h"
 
-#include "../badge23/display.h"
+#include "badge23/audio.h"
+#include "badge23/leds.h"
+#include "badge23/captouch.h"
+#include "badge23/display.h"
+
 STATIC mp_obj_t mp_display_update(size_t n_args, const mp_obj_t *args) {
     display_update();
     return mp_const_none;
diff --git a/micropython/ports/esp32/badge23_mp_synth.c b/micropython/ports/esp32/badge23_mp_synth.c
index a36a1200db..9e83278533 100644
--- a/micropython/ports/esp32/badge23_mp_synth.c
+++ b/micropython/ports/esp32/badge23_mp_synth.c
@@ -1,8 +1,8 @@
 #include <stdio.h>
 #include "py/runtime.h"
 #include "py/obj.h"
-#include "../../../badge23/synth.h"
-#include "../../../badge23/audio.h"
+#include "badge23/synth.h"
+#include "badge23/audio.h"
 
 #if !MICROPY_ENABLE_FINALISER
 #error "BADGE23_SYNTH requires MICROPY_ENABLE_FINALISER"
diff --git a/micropython/ports/esp32/main.c b/micropython/ports/esp32/main.c
index 31f82c22fe..787dc4008a 100644
--- a/micropython/ports/esp32/main.c
+++ b/micropython/ports/esp32/main.c
@@ -62,7 +62,7 @@
 #include "modmachine.h"
 #include "modnetwork.h"
 #include "mpthreadport.h"
-#include "../../../badge23/espan.h"
+#include "badge23/espan.h"
 
 #if MICROPY_BLUETOOTH_NIMBLE
 #include "extmod/modbluetooth.h"
-- 
GitLab