Prechádzať zdrojové kódy

add: fonts.u8g2_list函数,获取固件内的u8g2字体列表

Wendal Chen 3 rokov pred
rodič
commit
259b173bdb
1 zmenil súbory, kde vykonal 21 pridanie a 0 odobranie
  1. 21 0
      components/luatfonts/luat_lib_fonts.c

+ 21 - 0
components/luatfonts/luat_lib_fonts.c

@@ -100,6 +100,7 @@ static int l_fonts_u8g2_get(lua_State *L) {
 @string 字体路径, 例如 /luadb/abc.bin
 @return userdata 若字体存放,返回字体指针, 否则返回nil
 @usage
+-- API新增于2022-07-11
 -- 提醒: 若文件位于/luadb下, 不需要占用内存
 -- 若文件处于其他路径, 例如tf/sd卡, spi flash, 会自动加载到内存, 消耗lua vm的内存空间
 -- 加载后请适当引用, 不必反复加载同一个字体文件
@@ -158,6 +159,26 @@ static int l_fonts_u8g2_load(lua_State *L) {
     return 1;
 }
 
+/*
+返回固件支持的u8g2字体列表
+@api fonts.u8g2_list()
+@return table 字体列表
+@usage
+-- API新增于2022-07-12
+if fonts.u8g2_list then
+    log.info("fonts", "u8g2", json.encode(fonts.u8g2_list()))
+end
+*/
+static int l_fonts_u8g2_list(lua_State *L) {
+    const char* name = luaL_checkstring(L,  1);
+    u8g2_font_t *font = u8g2_fonts;
+    lua_createtable(L, 10, 0);
+    while (font->font != NULL) {
+        lua_pushstring(L, font->name);
+    }
+    return 1;
+}
+
 #include "rotable2.h"
 static const rotable_Reg_t reg_fonts[] =
 {