findmy_scene.c 1013 B

12345678910111213141516171819202122232425262728293031
  1. #include "findmy_scene.h"
  2. #include "findmy.h"
  3. // Generate scene on_enter handlers array
  4. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter,
  5. void (*const findmy_on_enter_handlers[])(void*) = {
  6. #include "findmy_scenes.h"
  7. };
  8. #undef ADD_SCENE
  9. // Generate scene on_event handlers array
  10. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event,
  11. bool (*const findmy_on_event_handlers[])(void* context, SceneManagerEvent event) = {
  12. #include "findmy_scenes.h"
  13. };
  14. #undef ADD_SCENE
  15. // Generate scene on_exit handlers array
  16. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit,
  17. void (*const findmy_on_exit_handlers[])(void* context) = {
  18. #include "findmy_scenes.h"
  19. };
  20. #undef ADD_SCENE
  21. // Initialize scene handlers configuration structure
  22. const SceneManagerHandlers findmy_scene_handlers = {
  23. .on_enter_handlers = findmy_on_enter_handlers,
  24. .on_event_handlers = findmy_on_event_handlers,
  25. .on_exit_handlers = findmy_on_exit_handlers,
  26. .scene_num = FindMySceneNum,
  27. };