nfc_apdu_runner_scene.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "../nfc_apdu_runner.h"
  2. #include "nfc_apdu_runner_scene.h"
  3. // 生成场景进入处理函数数组
  4. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter,
  5. void (*const nfc_apdu_runner_on_enter_handlers[])(void*) = {
  6. nfc_apdu_runner_scene_start_on_enter,
  7. nfc_apdu_runner_scene_file_select_on_enter,
  8. nfc_apdu_runner_scene_card_placement_on_enter,
  9. nfc_apdu_runner_scene_running_on_enter,
  10. nfc_apdu_runner_scene_results_on_enter,
  11. nfc_apdu_runner_scene_save_file_on_enter,
  12. nfc_apdu_runner_scene_logs_on_enter,
  13. nfc_apdu_runner_scene_about_on_enter,
  14. };
  15. #undef ADD_SCENE
  16. // 生成场景事件处理函数数组
  17. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event,
  18. bool (*const nfc_apdu_runner_on_event_handlers[])(void* context, SceneManagerEvent event) = {
  19. nfc_apdu_runner_scene_start_on_event,
  20. nfc_apdu_runner_scene_file_select_on_event,
  21. nfc_apdu_runner_scene_card_placement_on_event,
  22. nfc_apdu_runner_scene_running_on_event,
  23. nfc_apdu_runner_scene_results_on_event,
  24. nfc_apdu_runner_scene_save_file_on_event,
  25. nfc_apdu_runner_scene_logs_on_event,
  26. nfc_apdu_runner_scene_about_on_event,
  27. };
  28. #undef ADD_SCENE
  29. // 生成场景退出处理函数数组
  30. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit,
  31. void (*const nfc_apdu_runner_on_exit_handlers[])(void* context) = {
  32. nfc_apdu_runner_scene_start_on_exit,
  33. nfc_apdu_runner_scene_file_select_on_exit,
  34. nfc_apdu_runner_scene_card_placement_on_exit,
  35. nfc_apdu_runner_scene_running_on_exit,
  36. nfc_apdu_runner_scene_results_on_exit,
  37. nfc_apdu_runner_scene_save_file_on_exit,
  38. nfc_apdu_runner_scene_logs_on_exit,
  39. nfc_apdu_runner_scene_about_on_exit,
  40. };
  41. #undef ADD_SCENE
  42. // 初始化场景处理器配置结构
  43. const SceneManagerHandlers nfc_apdu_runner_scene_handlers = {
  44. .on_enter_handlers = nfc_apdu_runner_on_enter_handlers,
  45. .on_event_handlers = nfc_apdu_runner_on_event_handlers,
  46. .on_exit_handlers = nfc_apdu_runner_on_exit_handlers,
  47. .scene_num = NfcApduRunnerSceneCount,
  48. };