From a6d41547a09c6101a4a9a3bdf39f357c063e31d9 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Sat, 30 Apr 2016 11:09:39 -0700 Subject: [PATCH] Make CaptureAppView capture functions same as AnalogAudioView. --- firmware/application/capture_app.cpp | 38 ++++++++++++++++++---------- firmware/application/capture_app.hpp | 4 +++ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/firmware/application/capture_app.cpp b/firmware/application/capture_app.cpp index e14e8e508..ee9fe331d 100644 --- a/firmware/application/capture_app.cpp +++ b/firmware/application/capture_app.cpp @@ -110,23 +110,35 @@ void CaptureAppView::focus() { button_record.focus(); } -void CaptureAppView::on_record() { - if( capture_thread ) { - capture_thread.reset(); - button_record.set_bitmap(&bitmap_record); - } else { - const auto filename_stem = next_filename_stem_matching_pattern("BBD_????"); - text_record_filename.set(filename_stem); - text_record_dropped.set(""); - if( filename_stem.empty() ) { - return; - } +bool CaptureAppView::is_recording() const { + return (bool)capture_thread; +} - capture_thread = std::make_unique(filename_stem + ".C16", 14, 1); - button_record.set_bitmap(&bitmap_stop); +void CaptureAppView::on_record() { + if( is_recording() ) { + record_stop(); + } else { + record_start(); } } +void CaptureAppView::record_start() { + const auto filename_stem = next_filename_stem_matching_pattern("BBD_????"); + text_record_filename.set(filename_stem); + text_record_dropped.set(""); + if( filename_stem.empty() ) { + return; + } + + capture_thread = std::make_unique(filename_stem + ".C16", 14, 1); + button_record.set_bitmap(&bitmap_stop); +} + +void CaptureAppView::record_stop() { + capture_thread.reset(); + button_record.set_bitmap(&bitmap_record); +} + void CaptureAppView::on_tick_second() { if( capture_thread ) { const auto dropped_percent = std::min(99U, capture_thread->state().dropped_percent()); diff --git a/firmware/application/capture_app.hpp b/firmware/application/capture_app.hpp index 31aa33940..de92712bb 100644 --- a/firmware/application/capture_app.hpp +++ b/firmware/application/capture_app.hpp @@ -61,6 +61,10 @@ private: SignalToken signal_token_tick_second; void on_record(); + bool is_recording() const; + void record_start(); + void record_stop(); + void on_tick_second(); void on_tuning_frequency_changed(rf::Frequency f);