Added support for multiple sample rates in IQ record

Support for any sample rate <= 500k in IQ replay
Fixed bias-t power not activating in TX
Removed RSSI pitch output option (awful code)
Udated binary
This commit is contained in:
furrtek
2018-02-22 07:04:19 +00:00
parent 57c759627d
commit 7fd987a2b4
23 changed files with 193 additions and 84 deletions

View File

@@ -27,8 +27,8 @@ using namespace portapack;
#include "io_file.hpp"
#include "io_wave.hpp"
#include "baseband_api.hpp"
#include "rtc_time.hpp"
#include "string_format.hpp"
#include "utility.hpp"
@@ -36,7 +36,7 @@ using namespace portapack;
namespace ui {
void RecordView::toggle_pitch_rssi() {
/*void RecordView::toggle_pitch_rssi() {
pitch_rssi_enabled = !pitch_rssi_enabled;
// Send to RSSI widget
@@ -51,7 +51,7 @@ void RecordView::toggle_pitch_rssi() {
} else {
button_pitch_rssi.set_foreground(Color::green());
}
}
}*/
RecordView::RecordView(
const Rect parent_rect,
@@ -67,18 +67,18 @@ RecordView::RecordView(
{
add_children({
&rect_background,
&button_pitch_rssi,
//&button_pitch_rssi,
&button_record,
&text_record_filename,
&text_record_dropped,
&text_time_available,
});
rect_background.set_parent_rect({ { 0, 0 }, size() });
button_pitch_rssi.on_select = [this](ImageButton&) {
/*button_pitch_rssi.on_select = [this](ImageButton&) {
this->toggle_pitch_rssi();
};
};*/
button_record.on_select = [this](ImageButton&) {
this->toggle();
@@ -100,7 +100,9 @@ void RecordView::focus() {
void RecordView::set_sampling_rate(const size_t new_sampling_rate) {
if( new_sampling_rate != sampling_rate ) {
stop();
sampling_rate = new_sampling_rate;
baseband::set_sample_rate(sampling_rate);
button_record.hidden(sampling_rate == 0);
text_record_filename.hidden(sampling_rate == 0);
@@ -214,7 +216,7 @@ Optional<File::Error> RecordView::write_metadata_file(const std::filesystem::pat
if( create_error.is_valid() ) {
return create_error;
} else {
const auto error_line1 = file.write_line("sample_rate=" + to_string_dec_uint(sampling_rate));
const auto error_line1 = file.write_line("sample_rate=" + to_string_dec_uint(sampling_rate / 8));
if( error_line1.is_valid() ) {
return error_line1;
}
@@ -237,13 +239,13 @@ void RecordView::update_status_display() {
text_record_dropped.set(s);
}
if (pitch_rssi_enabled) {
/*if (pitch_rssi_enabled) {
button_pitch_rssi.invert_colors();
}
}*/
if( sampling_rate ) {
const auto space_info = std::filesystem::space(u"");
const uint32_t bytes_per_second = file_type == FileType::WAV ? (sampling_rate * 2) : (sampling_rate * 4);
const uint32_t bytes_per_second = file_type == FileType::WAV ? (sampling_rate * 2) : (sampling_rate / 8 * 4);
const uint32_t available_seconds = space_info.free / bytes_per_second;
const uint32_t seconds = available_seconds % 60;
const uint32_t available_minutes = available_seconds / 60;