metroflip_api_table_i.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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_app_blink_start, void, (Metroflip*)),
  12. API_METHOD(metroflip_app_blink_stop, void, (Metroflip*)),
  13. API_METHOD(bit_slice_to_dec, int, (const char*, int, int)),
  14. API_METHOD(byte_to_binary, void, (uint8_t, char*)),
  15. API_VARIABLE(read_file, uint8_t[5]),
  16. API_VARIABLE(apdu_success, uint8_t[2]),
  17. API_VARIABLE(select_app, uint8_t[8]),
  18. API_METHOD(mf_classic_key_cache_load, bool, (MfClassicKeyCache*, const uint8_t*, size_t)),
  19. API_METHOD(
  20. mf_classic_key_cache_get_next_key,
  21. bool,
  22. (MfClassicKeyCache*, uint8_t*, MfClassicKey*, MfClassicKeyType*)),
  23. API_METHOD(mf_classic_key_cache_reset, void, (MfClassicKeyCache*)),
  24. API_METHOD(
  25. manage_keyfiles,
  26. KeyfileManager,
  27. (char[], const uint8_t*, size_t, MfClassicKeyCache*, uint64_t, uint64_t)),
  28. API_METHOD(uid_to_string, void, (const uint8_t*, size_t, char*, size_t)),
  29. API_METHOD(
  30. handle_keyfile_case,
  31. void,
  32. (Metroflip*, const char*, const char*, FuriString*, char[])),
  33. // calypso
  34. API_METHOD(get_calypso_node_offset, int, (const char*, const char*, CalypsoApp*)),
  35. API_METHOD(get_network_string, const char*, (CALYPSO_CARD_TYPE)),
  36. API_METHOD(metroflip_back_button_widget_callback, void, (GuiButtonType, InputType, void*)),
  37. API_METHOD(metroflip_next_button_widget_callback, void, (GuiButtonType, InputType, void*)),
  38. API_METHOD(is_calypso_node_present, bool, (const char*, const char*, CalypsoApp*)),
  39. API_METHOD(get_calypso_node_size, int, (const char*, CalypsoApp*)),
  40. API_METHOD(free_calypso_structure, void, (CalypsoApp*)),
  41. API_METHOD(guess_card_type, CALYPSO_CARD_TYPE, (int, int)),
  42. // intercode
  43. API_METHOD(get_intercode_structure_env_holder, CalypsoApp*, ()),
  44. API_METHOD(get_intercode_structure_contract, CalypsoApp*, ()),
  45. API_METHOD(get_intercode_structure_event, CalypsoApp*, ()),
  46. API_METHOD(get_intercode_structure_counter, CalypsoApp*, ()),
  47. // navigo
  48. API_METHOD(show_navigo_event_info, void, (NavigoCardEvent*, NavigoCardContract*, FuriString*)),
  49. API_METHOD(show_navigo_special_event_info, void, (NavigoCardSpecialEvent*, FuriString*)),
  50. API_METHOD(show_navigo_contract_info, void, (NavigoCardContract*, FuriString*)),
  51. API_METHOD(show_navigo_environment_info, void, (NavigoCardEnv*, NavigoCardHolder*, FuriString*)),
  52. // opus
  53. API_METHOD(get_opus_contract_structure, CalypsoApp*, ()),
  54. API_METHOD(get_opus_event_structure, CalypsoApp*, ()),
  55. API_METHOD(get_opus_env_holder_structure, CalypsoApp*, ()),
  56. API_METHOD(show_opus_event_info, void, (OpusCardEvent*, OpusCardContract*, FuriString*)),
  57. API_METHOD(show_opus_contract_info, void, (OpusCardContract*, FuriString*)),
  58. API_METHOD(show_opus_environment_info, void, (OpusCardEnv*, OpusCardHolder*, FuriString*)),
  59. // ravkav
  60. API_METHOD(get_ravkav_contract_structure, CalypsoApp*, ()),
  61. API_METHOD(get_ravkav_event_structure, CalypsoApp*, ()),
  62. API_METHOD(get_ravkav_env_holder_structure, CalypsoApp*, ()),
  63. API_METHOD(show_ravkav_event_info, void, (RavKavCardEvent*, FuriString*)),
  64. API_METHOD(show_ravkav_contract_info, void, (RavKavCardContract*, FuriString*)),
  65. API_METHOD(show_ravkav_environment_info, void, (RavKavCardEnv*, FuriString*))));