subghz-scene-spectrum-settings.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "subghz-scene-spectrum-settings.h"
  2. #include "../subghz-app.h"
  3. #include "../subghz-view-manager.h"
  4. #include "../subghz-event.h"
  5. #include <callback-connector.h>
  6. void SubghzSceneSpectrumSettings::on_enter(SubghzApp* app) {
  7. SubghzAppViewManager* view_manager = app->get_view_manager();
  8. SubghzViewSpectrumSettings* spectrum_settings = view_manager->get_spectrum_settings();
  9. auto callback = cbc::obtain_connector(this, &SubghzSceneSpectrumSettings::ok_callback);
  10. spectrum_settings->set_ok_callback(callback, app);
  11. spectrum_settings->set_start_freq(433);
  12. view_manager->switch_to(SubghzAppViewManager::ViewType::SpectrumSettings);
  13. }
  14. bool SubghzSceneSpectrumSettings::on_event(SubghzApp* app, SubghzEvent* event) {
  15. bool consumed = false;
  16. if(event->type == SubghzEvent::Type::NextScene) {
  17. // save data
  18. // uint32_t start_freq = app->get_view_manager()->get_spectrum_settings()->get_start_freq();
  19. // app->get_spectrum_analyzer()->set_start_freq(start_freq);
  20. // switch to next scene
  21. // app->switch_to_next_scene(SubghzApp::Scene::SceneSpectrumAnalyze);
  22. consumed = true;
  23. }
  24. return consumed;
  25. }
  26. void SubghzSceneSpectrumSettings::on_exit(SubghzApp* app) {
  27. SubghzAppViewManager* view_manager = app->get_view_manager();
  28. SubghzViewSpectrumSettings* spectrum_settings = view_manager->get_spectrum_settings();
  29. spectrum_settings->set_ok_callback(nullptr, nullptr);
  30. spectrum_settings->set_start_freq(0);
  31. }
  32. void SubghzSceneSpectrumSettings::ok_callback(void* context) {
  33. SubghzApp* app = static_cast<SubghzApp*>(context);
  34. SubghzEvent event;
  35. event.type = SubghzEvent::Type::NextScene;
  36. app->get_view_manager()->send_event(&event);
  37. }