flip_trader.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #include <flip_trader.h>
  2. void asset_names_free(char **names)
  3. {
  4. if (names)
  5. {
  6. for (int i = 0; i < ASSET_COUNT; i++)
  7. {
  8. free(names[i]);
  9. }
  10. free(names);
  11. }
  12. }
  13. char **asset_names_alloc()
  14. {
  15. // Allocate memory for an array of 42 string pointers
  16. char **names = malloc(ASSET_COUNT * sizeof(char *));
  17. if (!names)
  18. {
  19. FURI_LOG_E(TAG, "Failed to allocate memory for asset names");
  20. return NULL;
  21. }
  22. // Assign each asset name to the array
  23. names[0] = strdup("ETHUSD");
  24. names[1] = strdup("BTCUSD");
  25. names[2] = strdup("AAPL");
  26. names[3] = strdup("AMZN");
  27. names[4] = strdup("GOOGL");
  28. names[5] = strdup("MSFT");
  29. names[6] = strdup("TSLA");
  30. names[7] = strdup("NFLX");
  31. names[8] = strdup("META");
  32. names[9] = strdup("NVDA");
  33. names[10] = strdup("AMD");
  34. names[11] = strdup("INTC");
  35. names[12] = strdup("PLTR");
  36. names[13] = strdup("EURUSD");
  37. names[14] = strdup("GBPUSD");
  38. names[15] = strdup("AUDUSD");
  39. names[16] = strdup("NZDUSD");
  40. names[17] = strdup("XAUUSD");
  41. names[18] = strdup("USDJPY");
  42. names[19] = strdup("USDCHF");
  43. names[20] = strdup("USDCAD");
  44. names[21] = strdup("EURJPY");
  45. names[22] = strdup("EURGBP");
  46. names[23] = strdup("EURCHF");
  47. names[24] = strdup("EURCAD");
  48. names[25] = strdup("EURAUD");
  49. names[26] = strdup("EURNZD");
  50. names[27] = strdup("AUDJPY");
  51. names[28] = strdup("AUDCHF");
  52. names[29] = strdup("AUDCAD");
  53. names[30] = strdup("NZDJPY");
  54. names[31] = strdup("NZDCHF");
  55. names[32] = strdup("NZDCAD");
  56. names[33] = strdup("GBPJPY");
  57. names[34] = strdup("GBPCHF");
  58. names[35] = strdup("GBPCAD");
  59. names[36] = strdup("CHFJPY");
  60. names[37] = strdup("CADJPY");
  61. names[38] = strdup("CADCHF");
  62. names[39] = strdup("GBPAUD");
  63. names[40] = strdup("GBPNZD");
  64. names[41] = strdup("AUDNZD");
  65. return names;
  66. }
  67. char **asset_names = NULL;
  68. // index
  69. uint32_t asset_index = 0;
  70. // Function to free the resources used by FlipTraderApp
  71. void flip_trader_app_free(FlipTraderApp *app)
  72. {
  73. if (!app)
  74. {
  75. FURI_LOG_E(TAG, "FlipTraderApp is NULL");
  76. return;
  77. }
  78. // Free View(s)
  79. if (app->view_main)
  80. {
  81. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMain);
  82. view_free(app->view_main);
  83. }
  84. // Free Submenu(s)
  85. if (app->submenu_main)
  86. {
  87. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMainSubmenu);
  88. submenu_free(app->submenu_main);
  89. }
  90. if (app->submenu_assets)
  91. {
  92. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAssetsSubmenu);
  93. submenu_free(app->submenu_assets);
  94. }
  95. // Free Widget(s)
  96. if (app->widget)
  97. {
  98. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAbout);
  99. widget_free(app->widget);
  100. }
  101. // Free Variable Item List(s)
  102. if (app->variable_item_list_wifi)
  103. {
  104. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewWiFiSettings);
  105. variable_item_list_free(app->variable_item_list_wifi);
  106. }
  107. // Free Text Input(s)
  108. if (app->uart_text_input_ssid)
  109. {
  110. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputSSID);
  111. uart_text_input_free(app->uart_text_input_ssid);
  112. }
  113. if (app->uart_text_input_password)
  114. {
  115. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputPassword);
  116. uart_text_input_free(app->uart_text_input_password);
  117. }
  118. asset_names_free(asset_names);
  119. // deinitalize flipper http
  120. flipper_http_deinit();
  121. // free the view dispatcher
  122. view_dispatcher_free(app->view_dispatcher);
  123. // close the gui
  124. furi_record_close(RECORD_GUI);
  125. // free the app
  126. free(app);
  127. }