modflipperzero.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <stdio.h>
  2. #include <py/objint.h>
  3. #include <py/obj.h>
  4. #include <py/runtime.h>
  5. #include "_modflipperzero.h"
  6. static mp_obj_t flipperzero_light_set(mp_obj_t light_obj, mp_obj_t brightness_obj) {
  7. mp_int_t light = mp_obj_get_int(light_obj);
  8. mp_int_t brightness = mp_obj_get_int(brightness_obj);
  9. mp_flipper_light_set(light, brightness);
  10. return mp_const_true;
  11. }
  12. static MP_DEFINE_CONST_FUN_OBJ_2(flipperzero_light_set_obj, flipperzero_light_set);
  13. static mp_obj_t flipperzero_vibro_set(mp_obj_t state) {
  14. bool state_bool = mp_obj_is_true(state);
  15. mp_flipper_vibro(state_bool);
  16. return mp_const_true;
  17. }
  18. static MP_DEFINE_CONST_FUN_OBJ_1(flipperzero_vibro_set_obj, flipperzero_vibro_set);
  19. static const mp_rom_map_elem_t flipperzero_module_globals_table[] = {
  20. {MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_flipperzero)},
  21. {MP_ROM_QSTR(MP_QSTR_LIGHT_RED), MP_ROM_INT(MP_FLIPPER_LED_RED)},
  22. {MP_ROM_QSTR(MP_QSTR_LIGHT_GREEN), MP_ROM_INT(MP_FLIPPER_LED_GREEN)},
  23. {MP_ROM_QSTR(MP_QSTR_LIGHT_BLUE), MP_ROM_INT(MP_FLIPPER_LED_BLUE)},
  24. {MP_ROM_QSTR(MP_QSTR_LIGHT_BACKLIGHT), MP_ROM_INT(MP_FLIPPER_LED_BACKLIGHT)},
  25. {MP_ROM_QSTR(MP_QSTR_light_set), MP_ROM_PTR(&flipperzero_light_set_obj)},
  26. {MP_ROM_QSTR(MP_QSTR_vibro_set), MP_ROM_PTR(&flipperzero_vibro_set_obj)},
  27. };
  28. static MP_DEFINE_CONST_DICT(flipperzero_module_globals, flipperzero_module_globals_table);
  29. const mp_obj_module_t flipperzero_module = {
  30. .base = {&mp_type_module},
  31. .globals = (mp_obj_dict_t*)&flipperzero_module_globals,
  32. };
  33. MP_REGISTER_MODULE(MP_QSTR_flipperzero, flipperzero_module);