Oliver Fabel 1 год назад
Родитель
Сommit
432444575b
3 измененных файлов с 24 добавлено и 1 удалено
  1. 5 0
      genhdr/moduledefs.h
  2. 1 1
      genhdr/mpversion.h
  3. 18 0
      mp_flipper_modflipperzero.c

+ 5 - 0
genhdr/moduledefs.h

@@ -41,3 +41,8 @@ extern const struct _mp_obj_module_t flipperzero_module;
     MODULE_DEF_RANDOM \
     MODULE_DEF_TIME \
 // MICROPY_REGISTERED_EXTENSIBLE_MODULES
+
+extern void flipperzero_module_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest);
+#define MICROPY_MODULE_DELEGATIONS \
+    { MP_ROM_PTR(&flipperzero_module), flipperzero_module_attr }, \
+// MICROPY_MODULE_DELEGATIONS

+ 1 - 1
genhdr/mpversion.h

@@ -1,4 +1,4 @@
 // This file was generated by py/makeversionhdr.py
 #define MICROPY_GIT_TAG "v1.23.0"
 #define MICROPY_GIT_HASH "a61c446c0"
-#define MICROPY_BUILD_DATE "2024-11-15"
+#define MICROPY_BUILD_DATE "2025-01-19"

+ 18 - 0
mp_flipper_modflipperzero.c

@@ -7,6 +7,7 @@
 #include "py/obj.h"
 #include "py/stream.h"
 #include "py/runtime.h"
+#include <string.h>
 
 #include "mp_flipper_modflipperzero.h"
 
@@ -744,6 +745,22 @@ MP_DEFINE_CONST_OBJ_TYPE(
     locals_dict,
     &flipperzero_uart_connection_locals_dict);
 
+static void flipperzero_module_attr(mp_obj_t self_in, qstr attr, mp_obj_t* dest) {
+    if(dest[0] != MP_OBJ_NULL) {
+        return;
+    }
+
+    const char* attribute = qstr_str(attr);
+
+    if(strstr(attribute, "SPEAKER_NOTE_") == attribute[0]) {
+        print(attribute);
+    } else {
+        dest[0] = MP_OBJ_NULL;
+    }
+
+    dest[1] = MP_OBJ_SENTINEL;
+}
+
 static const mp_rom_map_elem_t flipperzero_module_globals_table[] = {
     // light
     {MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_flipperzero)},
@@ -987,6 +1004,7 @@ const mp_obj_module_t flipperzero_module = {
 };
 
 MP_REGISTER_MODULE(MP_QSTR_flipperzero, flipperzero_module);
+MP_REGISTER_MODULE_DELEGATION(flipperzero_module, flipperzero_module_attr);
 
 void mp_flipper_on_input(uint16_t button, uint16_t type) {
     if(mp_flipper_on_input_callback != NULL) {