From 40df73b92330d5b8a0e739b00f46f104a68c7d72 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Mon, 11 Apr 2016 11:22:35 -0700 Subject: [PATCH] Start/stop control of baseband capture. --- firmware/application/capture_app.cpp | 22 +++++++++++++++++++++- firmware/application/capture_app.hpp | 15 +++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/firmware/application/capture_app.cpp b/firmware/application/capture_app.cpp index d08a277eb..02058e9f5 100644 --- a/firmware/application/capture_app.cpp +++ b/firmware/application/capture_app.cpp @@ -28,7 +28,13 @@ namespace ui { CaptureAppView::CaptureAppView(NavigationView&) { - capture_thread = std::make_unique("baseband.c16"); + add_children({ { + &button_start, + &button_stop, + } }); + + button_start.on_select = [this](Button&){ this->on_start(); }; + button_stop.on_select = [this](Button&){ this->on_stop(); }; radio::enable({ tuning_frequency(), @@ -51,6 +57,20 @@ CaptureAppView::~CaptureAppView() { radio::disable(); } +void CaptureAppView::focus() { + button_start.focus(); +} + +void CaptureAppView::on_start() { + if( !capture_thread ) { + capture_thread = std::make_unique("baseband.c16"); + } +} + +void CaptureAppView::on_stop() { + capture_thread.reset(); +} + uint32_t CaptureAppView::target_frequency() const { return initial_target_frequency; } diff --git a/firmware/application/capture_app.hpp b/firmware/application/capture_app.hpp index fe043ff94..0e38f960f 100644 --- a/firmware/application/capture_app.hpp +++ b/firmware/application/capture_app.hpp @@ -37,6 +37,8 @@ public: CaptureAppView(NavigationView& nav); ~CaptureAppView(); + void focus() override; + std::string title() const override { return "Capture"; }; private: @@ -48,6 +50,19 @@ private: uint32_t target_frequency() const; uint32_t tuning_frequency() const; + + void on_start(); + void on_stop(); + + Button button_start { + { 16, 17 * 16, 96, 24 }, + "Start" + }; + + Button button_stop { + { 240 - 96 - 16, 17 * 16, 96, 24 }, + "Stop" + }; }; } /* namespace ui */