metroflip_api_table_i.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "metroflip_api.h"
  2. #include "../../metroflip_i.h"
  3. /*
  4. * A list of app's private functions and objects to expose for plugins.
  5. * It is used to generate a table of symbols for import resolver to use.
  6. * TBD: automatically generate this table from app's header files
  7. */
  8. static constexpr auto metroflip_api_table = sort(create_array_t<sym_entry>(
  9. // metroflip stuff
  10. API_METHOD(metroflip_exit_widget_callback, void, (GuiButtonType, InputType, void*)),
  11. API_METHOD(metroflip_save_widget_callback, void, (GuiButtonType, InputType, void*)),
  12. API_METHOD(metroflip_delete_widget_callback, void, (GuiButtonType, InputType, void*)),
  13. API_METHOD(metroflip_app_blink_start, void, (Metroflip*)),
  14. API_METHOD(metroflip_app_blink_stop, void, (Metroflip*)),
  15. API_METHOD(bit_slice_to_dec, int, (const char*, int, int)),
  16. API_METHOD(byte_to_binary, void, (uint8_t, char*)),
  17. API_VARIABLE(read_file, uint8_t[5]),
  18. API_VARIABLE(apdu_success, uint8_t[2]),
  19. API_VARIABLE(select_app, uint8_t[8]),
  20. API_METHOD(mf_classic_key_cache_load, bool, (MfClassicKeyCache*, const uint8_t*, size_t)),
  21. API_METHOD(
  22. mf_classic_key_cache_get_next_key,
  23. bool,
  24. (MfClassicKeyCache*, uint8_t*, MfClassicKey*, MfClassicKeyType*)),
  25. API_METHOD(mf_classic_key_cache_reset, void, (MfClassicKeyCache*)),
  26. API_METHOD(
  27. manage_keyfiles,
  28. KeyfileManager,
  29. (char[], const uint8_t*, size_t, MfClassicKeyCache*, uint64_t, uint64_t)),
  30. API_METHOD(uid_to_string, void, (const uint8_t*, size_t, char*, size_t)),
  31. API_METHOD(
  32. handle_keyfile_case,
  33. void,
  34. (Metroflip*, const char*, const char*, FuriString*, char[])),
  35. // calypso
  36. API_METHOD(get_calypso_node_offset, int, (const char*, const char*, CalypsoApp*)),
  37. API_METHOD(get_network_string, const char*, (CALYPSO_CARD_TYPE)),
  38. API_METHOD(metroflip_back_button_widget_callback, void, (GuiButtonType, InputType, void*)),
  39. API_METHOD(metroflip_next_button_widget_callback, void, (GuiButtonType, InputType, void*)),
  40. API_METHOD(is_calypso_node_present, bool, (const char*, const char*, CalypsoApp*)),
  41. API_METHOD(get_calypso_node_size, int, (const char*, CalypsoApp*)),
  42. API_METHOD(free_calypso_structure, void, (CalypsoApp*)),
  43. API_METHOD(guess_card_type, CALYPSO_CARD_TYPE, (int, int)),
  44. // intercode
  45. API_METHOD(get_intercode_structure_env_holder, CalypsoApp*, ()),
  46. API_METHOD(get_intercode_structure_contract, CalypsoApp*, ()),
  47. API_METHOD(get_intercode_structure_event, CalypsoApp*, ()),
  48. API_METHOD(get_intercode_structure_counter, CalypsoApp*, ()),
  49. // navigo
  50. API_METHOD(show_navigo_event_info, void, (NavigoCardEvent*, NavigoCardContract*, FuriString*)),
  51. API_METHOD(show_navigo_special_event_info, void, (NavigoCardSpecialEvent*, FuriString*)),
  52. API_METHOD(show_navigo_contract_info, void, (NavigoCardContract*, FuriString*)),
  53. API_METHOD(show_navigo_environment_info, void, (NavigoCardEnv*, NavigoCardHolder*, FuriString*)),
  54. // opus
  55. API_METHOD(get_opus_contract_structure, CalypsoApp*, ()),
  56. API_METHOD(get_opus_event_structure, CalypsoApp*, ()),
  57. API_METHOD(get_opus_env_holder_structure, CalypsoApp*, ()),
  58. API_METHOD(show_opus_event_info, void, (OpusCardEvent*, OpusCardContract*, FuriString*)),
  59. API_METHOD(show_opus_contract_info, void, (OpusCardContract*, FuriString*)),
  60. API_METHOD(show_opus_environment_info, void, (OpusCardEnv*, OpusCardHolder*, FuriString*)),
  61. // ravkav
  62. API_METHOD(get_ravkav_contract_structure, CalypsoApp*, ()),
  63. API_METHOD(get_ravkav_event_structure, CalypsoApp*, ()),
  64. API_METHOD(get_ravkav_env_holder_structure, CalypsoApp*, ()),
  65. API_METHOD(show_ravkav_event_info, void, (RavKavCardEvent*, FuriString*)),
  66. API_METHOD(show_ravkav_contract_info, void, (RavKavCardContract*, FuriString*)),
  67. API_METHOD(show_ravkav_environment_info, void, (RavKavCardEnv*, FuriString*)),
  68. API_VARIABLE(I_RFIDDolphinReceive_97x61, Icon),
  69. API_VARIABLE(I_icon, Icon),
  70. API_METHOD(render_section_header, void, (FuriString*, const char*, uint8_t, uint8_t)),
  71. API_METHOD(mosgortrans_parse_transport_block, bool, (const MfClassicBlock*, FuriString*)),
  72. API_VARIABLE(I_WarningDolphinFlip_45x42, Icon),
  73. API_VARIABLE(I_DolphinDone_80x58, Icon),
  74. API_VARIABLE(I_DolphinMafia_119x62, Icon)));