| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include "../spi_mem_app_i.h"
- static void spi_mem_scene_chip_detect_callback(void* context, SPIMemCustomEventWorker event) {
- SPIMemApp* app = context;
- view_dispatcher_send_custom_event(app->view_dispatcher, event);
- }
- void spi_mem_scene_chip_detect_on_enter(void* context) {
- SPIMemApp* app = context;
- notification_message(app->notifications, &sequence_blink_start_yellow);
- view_dispatcher_switch_to_view(app->view_dispatcher, SPIMemViewDetect);
- spi_mem_worker_start_thread(app->worker);
- spi_mem_worker_chip_detect_start(
- app->chip_info, &app->found_chips, app->worker, spi_mem_scene_chip_detect_callback, app);
- }
- bool spi_mem_scene_chip_detect_on_event(void* context, SceneManagerEvent event) {
- SPIMemApp* app = context;
- bool success = false;
- if(event.type == SceneManagerEventTypeCustom) {
- success = true;
- if(event.event == SPIMemCustomEventWorkerChipIdentified) {
- scene_manager_set_scene_state(app->scene_manager, SPIMemSceneSelectVendor, 0);
- scene_manager_next_scene(app->scene_manager, SPIMemSceneSelectVendor);
- } else if(event.event == SPIMemCustomEventWorkerChipUnknown) {
- scene_manager_next_scene(app->scene_manager, SPIMemSceneChipDetectFail);
- }
- }
- return success;
- }
- void spi_mem_scene_chip_detect_on_exit(void* context) {
- SPIMemApp* app = context;
- spi_mem_worker_stop_thread(app->worker);
- notification_message(app->notifications, &sequence_blink_stop);
- popup_reset(app->popup);
- }
|