lovyan03 / LovyanGFX

SPI LCD graphics library for ESP32 (ESP-IDF/ArduinoESP32) / ESP8266 (ArduinoESP8266) / SAMD51(Seeed ArduinoSAMD51)
Other
1.12k stars 200 forks source link

Roadmap to legal compliance #4

Closed tobozo closed 4 years ago

tobozo commented 4 years ago
mongonta0716 commented 4 years ago

About License

The license text looks good to be based on Bodmer. If the main license is MIT, the license display of the repository is easier to understand in MIT. https://github.com/Bodmer/TFT_eSPI/blob/master/license.txt

@lovyan03 Is there a list of fonts and repositories used? I will check each license.

lovyan03 commented 4 years ago

Thanks.

●From AdafruitGFX (no modified) /Fonts/GFXFF/*.h /Fonts/glcdfont.h

●From TFT_eSPI (modified by lovyan03) /Fonts/Font16.h /Fonts/Font32rle.h /Fonts/Font64rle.h /Fonts/Font72rle.h /Fonts/Font72x53rle.h /Fonts/Font7srle.h

tobozo commented 4 years ago

Documentation generation

Doxygen is a bit useless as the code has no function comments. The generated content is very dense and abstract.

Workaround

Class List can be extracted with ctags (sudo apt install exuberant-ctags) command line utility.


$> ctags --recurse=yes -x --c-types=c src/ 

AvrSpi           class        14 src/lgfx/platforms/avr_spi.hpp class AvrSpi
FontID           class        79 src/lgfx/Fonts/lgfx_fonts.hpp enum class FontID
FontType         class        53 src/lgfx/Fonts/lgfx_fonts.hpp enum class FontType {
LGFXBase         class        69 src/lgfx/lgfx_base.hpp class LGFXBase
LGFXSprite       class        10 src/lgfx/lgfx_sprite.hpp class LGFXSprite : public LovyanGFX
LGFX_GFXFont_Support class      1700 src/lgfx/lgfx_base.hpp class LGFX_GFXFont_Support : public Base {
LGFX_IMAGE_FORMAT_Support class      2193 src/lgfx/lgfx_base.hpp class LGFX_IMAGE_FORMAT_Support : public Base {
LGFX_SPI         class        38 src/lgfx/platforms/lgfx_spi_esp32.hpp class LGFX_SPI : public LovyanGFX
LGFX_VLWFont_Support class      1833 src/lgfx/lgfx_base.hpp class LGFX_VLWFont_Support : public Base {
LovyanGFX        class      2462 src/lgfx/lgfx_base.hpp class LovyanGFX : public
PanelCommon      class        41 src/lgfx/panel/panel_common.hpp class PanelCommon
PanelIlitekCommon class         8 src/lgfx/panel/panel_ilitek_common.hpp class PanelIlitekCommon : public PanelCommon
Panel_ILI9163    class       107 src/lgfx/panel/panel_ILI9163.hpp class Panel_ILI9163 : public Panel_ILI9163_Common
Panel_ILI9163_Common class         8 src/lgfx/panel/panel_ILI9163.hpp class Panel_ILI9163_Common : public PanelIlitekCommon
Panel_ILI9341    class       116 src/lgfx/panel/panel_ILI9341.hpp class Panel_ILI9341 : public Panel_ILI9341_Common
Panel_ILI9341_Common class         8 src/lgfx/panel/panel_ILI9341.hpp class Panel_ILI9341_Common : public PanelIlitekCommon
Panel_M5Stack    class       141 src/lgfx/panel/panel_ILI9341.hpp class Panel_M5Stack : public Panel_ILI9341_Common
Panel_M5StickC   class       214 src/lgfx/panel/panel_ST7735.hpp class Panel_M5StickC : public Panel_ST7735_Common
Panel_ODROID_GO  class       122 src/lgfx/panel/panel_ILI9341.hpp class Panel_ODROID_GO : public Panel_ILI9341_Common
Panel_SSD1351    class       139 src/lgfx/panel/panel_SSD1351.hpp class Panel_SSD1351 : public Panel_SSD1351_Common
Panel_SSD1351_Common class         8 src/lgfx/panel/panel_SSD1351.hpp class Panel_SSD1351_Common : public PanelCommon
Panel_ST7735B    class       183 src/lgfx/panel/panel_ST7735.hpp class Panel_ST7735B : public Panel_ST7735_Common
Panel_ST7735R    class       199 src/lgfx/panel/panel_ST7735.hpp class Panel_ST7735R : public Panel_ST7735_Common
Panel_ST7735_Common class         8 src/lgfx/panel/panel_ST7735.hpp class Panel_ST7735_Common : public PanelIlitekCommon
Panel_ST7789     class       108 src/lgfx/panel/panel_ST7789.hpp class Panel_ST7789 : public Panel_ST7789_Common
Panel_ST7789_Common class         8 src/lgfx/panel/panel_ST7789.hpp class Panel_ST7789_Common : public PanelIlitekCommon
Panel_TTGO_TWatch class       115 src/lgfx/panel/panel_ST7789.hpp class Panel_TTGO_TWatch : public Panel_ST7789_Common
TFT_eSPI         class       139 src/LGFX_TFT_eSPI.hpp class TFT_eSPI : public lgfx::LGFX_SPI<lgfx::LGFX_Config> {};
TextFontBMP      class        33 src/lgfx/Fonts/lgfx_fonts.hpp class TextFontBMP : public IFont
TextFontBMP      class        50 src/lgfx/Fonts/lgfx_fonts.hpp class TextFontBMP : public IFont
TextFontGLCD     class        20 src/lgfx/Fonts/lgfx_fonts.hpp class TextFontGLCD : public IFont

Cognitive load

Using 'ctags' regularly is recommended to keep the API Documentation updated, this could be automated using a travis job, a github action, or triggered on compilation by the Arduino IDE (see tools.ctags.pattern and other recipe options in platform.txt)

Detailed API documentation (includes functions list)

Using 'ctags' to extract functions list produces a much hairy result (~700 lines). Something should be added to the code to ease the extraction, let's discuss about that ?

mongonta0716 commented 4 years ago

I checked each license for the license file and made a draft. It is almost a copy because it is the first time.

https://gist.github.com/mongonta0716/5b3221b660e9fb865727b981774ea06d

summerfind commented 1 year ago

Hi all. I got compiling error: 'LGFX_SPI' in namespace 'lgfx' does not name a template type for the line: static lgfx::LGFX_SPI tft; how to fix? Thanks.

tobozo commented 1 year ago

@summerfind please don't necro bump and only create an issue if you didn't find an existing post with a solution to your problem

locking this post