From 1db138c27a819a3a0d2b42c26060317509485cf8 Mon Sep 17 00:00:00 2001 From: furrtek Date: Wed, 7 Dec 2016 20:49:42 +0100 Subject: [PATCH] Wavfile class --- firmware/application/CMakeLists.txt | 4 +- firmware/application/Makefile | 81 ++++++++++++ firmware/application/filewriter.cpp | 43 ++++++ firmware/application/filewriter.hpp | 57 ++++++++ firmware/application/main.cpp | 2 + firmware/application/ui_about.cpp | 2 +- firmware/application/ui_closecall.cpp | 10 +- firmware/application/ui_navigation.cpp | 21 +-- firmware/application/ui_numbers.cpp | 141 ++++++++++---------- firmware/application/ui_numbers.hpp | 50 ++++--- firmware/application/ui_record_view.cpp | 131 +------------------ firmware/application/ui_record_view.hpp | 2 +- firmware/application/ui_soundboard.cpp | 81 ++++-------- firmware/application/ui_soundboard.hpp | 13 +- firmware/application/wavfile.cpp | 135 +++++++++++++++++++ firmware/application/wavfile.hpp | 165 ++++++++++++++++++++++++ firmware/common/ui_widget.cpp | 4 +- firmware/common/ui_widget.hpp | 2 +- firmware/common/utility.hpp | 8 ++ firmware/portapack-h1-havoc.bin | Bin 788540 -> 796812 bytes 20 files changed, 640 insertions(+), 312 deletions(-) create mode 100644 firmware/application/filewriter.cpp create mode 100644 firmware/application/filewriter.hpp create mode 100644 firmware/application/wavfile.cpp create mode 100644 firmware/application/wavfile.hpp diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 0cb80e31..18d1823b 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -176,7 +176,7 @@ set(CPPSRC ui_touch_calibration.cpp ui_whipcalc.cpp ui_xylos.cpp - # ui_closecall.cpp + ui_closecall.cpp # ui_loadmodule.cpp recent_entries.cpp receiver_model.cpp @@ -196,6 +196,8 @@ set(CPPSRC sd_card.cpp time.cpp file.cpp + filewriter.cpp + wavfile.cpp log_file.cpp ${COMMON}/png_writer.cpp capture_thread.cpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index 069a2a24..aeac8d74 100644 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -2886,6 +2886,30 @@ file.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/file.cpp.s .PHONY : file.cpp.s +filewriter.obj: filewriter.cpp.obj +.PHONY : filewriter.obj + +# target to build an object file +filewriter.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/filewriter.cpp.obj +.PHONY : filewriter.cpp.obj + +filewriter.i: filewriter.cpp.i +.PHONY : filewriter.i + +# target to preprocess a source file +filewriter.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/filewriter.cpp.i +.PHONY : filewriter.cpp.i + +filewriter.s: filewriter.cpp.s +.PHONY : filewriter.s + +# target to generate assembly for a file +filewriter.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/filewriter.cpp.s +.PHONY : filewriter.cpp.s + hackrf_cpld_data.obj: hackrf_cpld_data.cpp.obj .PHONY : hackrf_cpld_data.obj @@ -3774,6 +3798,30 @@ ui_channel.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_channel.cpp.s .PHONY : ui_channel.cpp.s +ui_closecall.obj: ui_closecall.cpp.obj +.PHONY : ui_closecall.obj + +# target to build an object file +ui_closecall.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_closecall.cpp.obj +.PHONY : ui_closecall.cpp.obj + +ui_closecall.i: ui_closecall.cpp.i +.PHONY : ui_closecall.i + +# target to preprocess a source file +ui_closecall.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_closecall.cpp.i +.PHONY : ui_closecall.cpp.i + +ui_closecall.s: ui_closecall.cpp.s +.PHONY : ui_closecall.s + +# target to generate assembly for a file +ui_closecall.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_closecall.cpp.s +.PHONY : ui_closecall.cpp.s + ui_debug.obj: ui_debug.cpp.obj .PHONY : ui_debug.obj @@ -4350,6 +4398,30 @@ ui_xylos.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_xylos.cpp.s .PHONY : ui_xylos.cpp.s +wavfile.obj: wavfile.cpp.obj +.PHONY : wavfile.obj + +# target to build an object file +wavfile.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/wavfile.cpp.obj +.PHONY : wavfile.cpp.obj + +wavfile.i: wavfile.cpp.i +.PHONY : wavfile.i + +# target to preprocess a source file +wavfile.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/wavfile.cpp.i +.PHONY : wavfile.cpp.i + +wavfile.s: wavfile.cpp.s +.PHONY : wavfile.s + +# target to generate assembly for a file +wavfile.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/wavfile.cpp.s +.PHONY : wavfile.cpp.s + # Help Target help: @echo "The following are some of the valid targets for this Makefile:" @@ -4705,6 +4777,9 @@ help: @echo "... file.obj" @echo "... file.i" @echo "... file.s" + @echo "... filewriter.obj" + @echo "... filewriter.i" + @echo "... filewriter.s" @echo "... hackrf_cpld_data.obj" @echo "... hackrf_cpld_data.i" @echo "... hackrf_cpld_data.s" @@ -4816,6 +4891,9 @@ help: @echo "... ui_channel.obj" @echo "... ui_channel.i" @echo "... ui_channel.s" + @echo "... ui_closecall.obj" + @echo "... ui_closecall.i" + @echo "... ui_closecall.s" @echo "... ui_debug.obj" @echo "... ui_debug.i" @echo "... ui_debug.s" @@ -4888,6 +4966,9 @@ help: @echo "... ui_xylos.obj" @echo "... ui_xylos.i" @echo "... ui_xylos.s" + @echo "... wavfile.obj" + @echo "... wavfile.i" + @echo "... wavfile.s" .PHONY : help diff --git a/firmware/application/filewriter.cpp b/firmware/application/filewriter.cpp new file mode 100644 index 00000000..791b3247 --- /dev/null +++ b/firmware/application/filewriter.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2016 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "filewriter.hpp" + +#include "portapack.hpp" +using namespace portapack; + +#include + +namespace ui { + +Optional FileWriter::create(const std::string& filename) { + return file.create(filename); +} + +File::Result FileWriter::write(const void* const buffer, const size_t bytes) { + auto write_result = file.write(buffer, bytes) ; + if( write_result.is_ok() ) { + bytes_written += write_result.value(); + } + return write_result; +} + +} /* namespace ui */ diff --git a/firmware/application/filewriter.hpp b/firmware/application/filewriter.hpp new file mode 100644 index 00000000..32dc278f --- /dev/null +++ b/firmware/application/filewriter.hpp @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2016 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __FILEWRITER_H__ +#define __FILEWRITER_H__ + +#include "ui_widget.hpp" + +#include "capture_thread.hpp" +#include "signal.hpp" +#include "file.hpp" + +#include +#include +#include + +namespace ui { + +class FileWriter : public Writer { +public: + FileWriter() = default; + + FileWriter(const FileWriter&) = delete; + FileWriter& operator=(const FileWriter&) = delete; + FileWriter(FileWriter&& file) = delete; + FileWriter& operator=(FileWriter&&) = delete; + + Optional create(const std::string& filename); + + File::Result write(const void* const buffer, const size_t bytes) override; + +protected: + File file; + uint64_t bytes_written { 0 }; +}; + +} /* namespace ui */ + +#endif/*__FILEWRITER_H__*/ diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index aca5c944..83976b52 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -23,10 +23,12 @@ // Bitmaps generated with: // Gimp image > indexed colors (16), then "xxd -i *.bmp" +//TODO: CTCSS file/module //TEST: Imperial in whipcalc //TEST: Numbers //TEST: Jammer //TEST: RDS +//TEST: Morse coder/beacon //BUG (fixed ?): Soundboard crashes on exit if no wav files on sd card //BUG (fixed ?): No audio in about when shown second time diff --git a/firmware/application/ui_about.cpp b/firmware/application/ui_about.cpp index dfb6e272..4c8afe79 100644 --- a/firmware/application/ui_about.cpp +++ b/firmware/application/ui_about.cpp @@ -59,7 +59,7 @@ void AboutView::on_show() { transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); - baseband::set_audiotx_data(32, 15, false, 0); + baseband::set_audiotx_data(32, 50, false, 0); //audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); } diff --git a/firmware/application/ui_closecall.cpp b/firmware/application/ui_closecall.cpp index 8596e657..1563f354 100644 --- a/firmware/application/ui_closecall.cpp +++ b/firmware/application/ui_closecall.cpp @@ -33,8 +33,6 @@ #include "baseband_api.hpp" #include "string_format.hpp" -#include "hackrf_hal.hpp" - #include #include #include @@ -428,14 +426,8 @@ CloseCallView::CloseCallView( signal_token_tick_second = time::signal_tick_second += [this]() { this->on_tick_second(); }; - - receiver_model.set_baseband_configuration({ - .mode = toUType(ReceiverModel::Mode::CloseCall), - .sampling_rate = CC_SLICE_WIDTH, - .decimation_factor = 1, - }); receiver_model.set_baseband_bandwidth(CC_SLICE_WIDTH); - //receiver_model.enable(); + receiver_model.enable(); } } /* namespace ui */ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index a7bb5b2a..0ec2e9a5 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -37,7 +37,7 @@ #include "ui_numbers.hpp" #include "ui_whipcalc.hpp" -//#include "ui_closecall.hpp" // DEBUG +#include "ui_closecall.hpp" #include "ui_freqman.hpp" #include "ui_nuoptix.hpp" #include "ui_soundboard.hpp" @@ -271,10 +271,11 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { /* TransmitterCodedMenuView ******************************************************/ TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) { - add_items<7>({ { + add_items<8>({ { { "ADS-B Mode S", ui::Color::yellow(), [&nav](){ nav.push(); } }, { "BHT Epar", ui::Color::grey(), [&nav](){ nav.push(); } }, - { "BHT Xylos", ui::Color::yellow(), [&nav](){ nav.push(); } }, + { "BHT Xylos", ui::Color::green(), [&nav](){ nav.push(); } }, + { "Morse beacon", ui::Color::grey(), [&nav](){ nav.push(); } }, { "Nuoptix DTMF timecode", ui::Color::green(), [&nav](){ nav.push(); } }, { "OOK remote encoders", ui::Color::green(), [&nav](){ nav.push(); } }, { "RDS", ui::Color::orange(), [&nav](){ nav.push(); } }, @@ -288,7 +289,7 @@ TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) { TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) { add_items<4>({ { { "Soundboard", ui::Color::green(), [&nav](){ nav.push(); } }, - { "Numbers station", ui::Color::yellow(), [&nav](){ nav.push(); } }, + { "Numbers station", ui::Color::green(), [&nav](){ nav.push(); } }, { "Microphone", ui::Color::grey(), [&nav](){ nav.push(); } }, { "Whistle", ui::Color::grey(), [&nav](){ nav.push(); } }, } }); @@ -298,9 +299,10 @@ TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) { /* UtilitiesView *****************************************************************/ UtilitiesView::UtilitiesView(NavigationView& nav) { - add_items<2>({ { - { "Whip antenna calculator", ui::Color::green(), [&nav](){ nav.push(); } }, - { "Notepad", ui::Color::grey(), [&nav](){ nav.push(); } }, + add_items<3>({ { + { "Frequency manager", ui::Color::white(), [&nav](){ nav.push(); } }, + { "Whip antenna length", ui::Color::green(), [&nav](){ nav.push(); } }, + { "Notepad", ui::Color::grey(), [&nav](){ nav.push(); } }, } }); on_left = [&nav](){ nav.pop(); }; } @@ -313,14 +315,13 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { { "Capture", ui::Color::cyan(), [&nav](){ nav.push(); } }, { "Code transmitters", ui::Color::green(), [&nav](){ nav.push(); } }, { "Audio transmitters", ui::Color::green(), [&nav](){ nav.push(); } }, - //{ "Close Call RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, + { "Close Call", ui::Color::orange(), [&nav](){ nav.push(); } }, { "Jammer", ui::Color::orange(), [&nav](){ nav.push(); } }, - { "Frequency manager", ui::Color::white(), [&nav](){ nav.push(); } }, { "Utilities", ui::Color::purple(), [&nav](){ nav.push(); } }, //{ "Analyze", ui::Color::white(), [&nav](){ nav.push(); } }, { "Setup", ui::Color::white(), [&nav](){ nav.push(); } }, //{ "Debug", ui::Color::white(), [&nav](){ nav.push(); } }, - { "HackRF", ui::Color::white(), [&nav](){ nav.push(); } }, + { "HackRF mode", ui::Color::white(), [&nav](){ nav.push(); } }, { "About", ui::Color::white(), [&nav](){ nav.push(); } } } }); } diff --git a/firmware/application/ui_numbers.cpp b/firmware/application/ui_numbers.cpp index 72e41be0..4e27bc93 100644 --- a/firmware/application/ui_numbers.cpp +++ b/firmware/application/ui_numbers.cpp @@ -22,8 +22,6 @@ #include "ui_numbers.hpp" -#include "ch.h" -#include "ff.h" #include "portapack.hpp" #include "hackrf_hal.hpp" #include "portapack_shared_memory.hpp" @@ -34,16 +32,14 @@ // TODO: Total transmission time (all durations / 44100) using namespace portapack; -using namespace hackrf::one; namespace ui { void NumbersStationView::focus() { button_exit.focus(); - if (file_error) { + if (file_error) nav_.display_modal("No files", "Missing files in /numbers/", ABORT, nullptr); - } } NumbersStationView::~NumbersStationView() { @@ -58,62 +54,56 @@ void NumbersStationView::on_tuning_frequency_changed(rf::Frequency f) { void NumbersStationView::prepare_audio() { uint8_t code; - if (cnt >= sample_duration) { + if (sample_counter >= sample_duration) { if (segment == ANNOUNCE) { if (!announce_loop) { segment = MESSAGE; } else { - auto error = file.open("/numbers/announce.wav"); - if (error.is_valid()) return; - + reader->open("/numbers/announce.wav"); sample_duration = sound_sizes[10]; - - file.seek(44); // Skip header - announce_loop--; } } if (segment == MESSAGE) { - if (id_test == 10) + code = symfield_code.value(code_index); + + if (code_index == 25) transmitter_model.disable(); - code = symfield_code.value(id_test); - - if (code == 10) { - pause = 11025; // p: 0.25s @ 44100Hz - memset(audio_buffer, 0, 1024); - } else if (code == 11) { - pause = 33075; // P: 0.75s @ 44100Hz + if (code >= 10) { memset(audio_buffer, 0, 1024); + if (code == 10) { + pause = 11025; // p: 0.25s @ 44100Hz + } else if (code == 11) { + pause = 33075; // P: 0.75s @ 44100Hz + } else if (code == 12) { + transmitter_model.disable(); + } } else { - auto error = file.open("/numbers/" + file_names[code] + ".wav"); - if (error.is_valid()) return; - + reader->open("/numbers/" + file_names[code] + ".wav"); sample_duration = sound_sizes[code]; - - file.seek(44); // Skip header } - - id_test++; - } - - cnt = 0; + code_index++; + } + sample_counter = 0; } if (!pause) { - size_t bytes_read = file.read(audio_buffer, 1024).value(); + size_t bytes_read = reader->read(audio_buffer, 1024); // Unsigned to signed, pretty stupid :/ for (size_t n = 0; n < bytes_read; n++) audio_buffer[n] -= 0x80; + for (size_t n = bytes_read; n < 1024; n++) + audio_buffer[n] = 0; - cnt += 1024; + sample_counter += 1024; } else { if (pause >= 1024) { pause -= 1024; } else { - cnt = sample_duration; + sample_counter = sample_duration; pause = 0; } } @@ -122,12 +112,10 @@ void NumbersStationView::prepare_audio() { } void NumbersStationView::start_tx() { - uint32_t divider; - - sample_duration = sound_sizes[0]; - cnt = sample_duration; + sample_duration = sound_sizes[10]; // Announce + sample_counter = sample_duration; - id_test = 0; + code_index = 0; announce_loop = 2; segment = ANNOUNCE; @@ -144,23 +132,25 @@ void NumbersStationView::start_tx() { transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); - divider = (1536000 / 44100) - 1; - baseband::set_audiotx_data( - divider, + (1536000 / 44100) - 1, number_bw.value(), false, 0 ); } -// TODO: Copied from soundboard, make globally available -uint16_t NumbersStationView::fb_to_uint16(const std::string& fb) { - return (fb[1] << 8) + fb[0]; -} - -uint32_t NumbersStationView::fb_to_uint32(const std::string& fb) { - return (fb[3] << 24) + (fb[2] << 16) + (fb[1] << 8) + fb[0]; +void NumbersStationView::on_tick_second() { + if (check_armed.value()) { + armed_blink = not armed_blink; + + if (armed_blink) + check_armed.set_style(&style_red); + else + check_armed.set_style(&style()); + + check_armed.set_dirty(); + } } NumbersStationView::NumbersStationView( @@ -168,31 +158,17 @@ NumbersStationView::NumbersStationView( ) : nav_ (nav) { uint8_t c; - uint8_t y, m, d, dayofweek; - size_t size; + //uint8_t y, m, d, dayofweek; - char file_buffer[32]; + reader = std::make_unique(); c = 0; for (auto& file_name : file_names) { - auto error = file.open("/numbers/" + file_name + ".wav"); - if (!error.is_valid()) { - file.seek(22); - file.read(file_buffer, 2); - - // Is file mono ? - if (fb_to_uint16(file_buffer) == 1) { - file.seek(40); - file.read(file_buffer, 4); - size = fb_to_uint32(file_buffer); - if (!size) break; - sound_sizes[c] = size; + if (reader->open("/numbers/" + file_name + ".wav")) { + if ((reader->channels() == 1) && (reader->sample_rate() == 44100) && (reader->bits_per_sample() == 8)) { + sound_sizes[c] = reader->data_size(); c++; - } else { - break; } - } else { - break; } } @@ -204,12 +180,15 @@ NumbersStationView::NumbersStationView( &text_title, &field_frequency, &number_bw, + &text_code, &symfield_code, - &button_tx, + &check_armed, + &button_tx_now, &button_exit } }); - number_bw.set_value(120); + number_bw.set_value(75); + check_armed.set_value(false); field_frequency.set_value(transmitter_model.tuning_frequency()); field_frequency.set_step(50000); @@ -225,6 +204,18 @@ NumbersStationView::NumbersStationView( }; }; + check_armed.on_select = [this](Checkbox&) { + if (check_armed.value()) { + armed_blink = false; + signal_token_tick_second = time::signal_tick_second += [this]() { + this->on_tick_second(); + }; + } else { + check_armed.set_style(&style()); + time::signal_tick_second -= signal_token_tick_second; + } + }; + // DEBUG symfield_code.set_value(0, 10); symfield_code.set_value(1, 3); @@ -236,13 +227,12 @@ NumbersStationView::NumbersStationView( symfield_code.set_value(7, 7); symfield_code.set_value(8, 8); symfield_code.set_value(9, 0); - transmitter_model.set_tuning_frequency(103300000); // 103.3MHz - - for (c = 0; c < 10; c++) - symfield_code.set_symbol_list(c, "0123456789pP"); - + symfield_code.set_value(10, 12); // End + for (c = 0; c < 25; c++) + symfield_code.set_symbol_list(c, "0123456789pPE"); +/* rtc::RTC datetime; rtcGetTime(&RTCD1, &datetime); @@ -254,8 +244,9 @@ NumbersStationView::NumbersStationView( dayofweek = (y + y/4 - y/100 + y/400 + month_table[m-1] + d) % 7; text_title.set(day_of_week[dayofweek]); +*/ - button_tx.on_select = [this, &nav](Button&){ + button_tx_now.on_select = [this, &nav](Button&){ this->start_tx(); }; diff --git a/firmware/application/ui_numbers.hpp b/firmware/application/ui_numbers.hpp index a399da38..f0624d7a 100644 --- a/firmware/application/ui_numbers.hpp +++ b/firmware/application/ui_numbers.hpp @@ -28,10 +28,12 @@ #include "ui_receiver.hpp" #include "ui_navigation.hpp" #include "ui_font_fixed_8x16.hpp" +#include "time.hpp" #include "clock_manager.hpp" -#include "message.hpp" #include "baseband_api.hpp" -#include "file.hpp" +#include "utility.hpp" +#include "message.hpp" +#include "wavfile.hpp" namespace ui { @@ -61,6 +63,7 @@ private: NavigationView& nav_; segments segment; + bool armed = false; bool file_error = false; uint32_t sound_sizes[11]; @@ -77,22 +80,24 @@ private: { "9" }, { "announce" } }; - - const uint8_t month_table[12] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; - const char * day_of_week[7] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; - File file; - uint8_t id_test, announce_loop; - uint32_t cnt; + // const uint8_t month_table[12] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; + // const char * day_of_week[7] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; + + std::unique_ptr reader; + + uint8_t code_index, announce_loop; + uint32_t sample_counter; uint32_t sample_duration; int8_t audio_buffer[1024]; uint32_t pause = 0; - + bool armed_blink; + SignalToken signal_token_tick_second; + + void on_tick_second(); void on_tuning_frequency_changed(rf::Frequency f); void prepare_audio(); void start_tx(); - uint16_t fb_to_uint16(const std::string& fb); - uint32_t fb_to_uint32(const std::string& fb); // Schedule: save on sd card // For each day of the week, max 8 messages ? @@ -105,7 +110,7 @@ private: // Frequency list and sequence Text text_title { - { 1 * 8, 1 * 16, 11, 16 }, + { 1 * 8, 8 * 16, 11, 16 }, "Schedule:" }; @@ -113,22 +118,31 @@ private: { 1 * 8, 4 }, }; NumberField number_bw { - { 12 * 8, 2 * 16 }, + { 12 * 8, 4 }, 3, {1, 150}, 1, ' ' }; + Text text_code { + { 20, 4 * 16, 5 * 8, 16 }, + "Code:" + }; SymField symfield_code { - { 1*8, 3 * 16 }, - 10, + { 20, 5 * 16 }, + 25, false }; - Button button_tx { - { 21 * 8, 13 * 16, 64, 32 }, - "TX !" + Checkbox check_armed { + { 2 * 8, 13 * 16 }, + 5, + "Armed" + }; + Button button_tx_now { + { 18 * 8, 13 * 16, 10 * 8, 32 }, + "TX now" }; Button button_exit { { 21 * 8, 16 * 16, 64, 32 }, diff --git a/firmware/application/ui_record_view.cpp b/firmware/application/ui_record_view.cpp index 186c014b..97ff98ce 100644 --- a/firmware/application/ui_record_view.cpp +++ b/firmware/application/ui_record_view.cpp @@ -26,7 +26,6 @@ #include "portapack_shared_memory.hpp" using namespace portapack; -#include "file.hpp" #include "time.hpp" #include "string_format.hpp" @@ -34,134 +33,6 @@ using namespace portapack; #include -class FileWriter : public Writer { -public: - FileWriter() = default; - - FileWriter(const FileWriter&) = delete; - FileWriter& operator=(const FileWriter&) = delete; - FileWriter(FileWriter&& file) = delete; - FileWriter& operator=(FileWriter&&) = delete; - - Optional create(const std::string& filename) { - return file.create(filename); - } - - File::Result write(const void* const buffer, const size_t bytes) override { - auto write_result = file.write(buffer, bytes) ; - if( write_result.is_ok() ) { - bytes_written += write_result.value(); - } - return write_result; - } - -protected: - File file; - uint64_t bytes_written { 0 }; -}; - -using RawFileWriter = FileWriter; - -class WAVFileWriter : public FileWriter { -public: - WAVFileWriter( - size_t sampling_rate - ) : header { sampling_rate } - { - } - - - WAVFileWriter(const WAVFileWriter&) = delete; - WAVFileWriter& operator=(const WAVFileWriter&) = delete; - WAVFileWriter(WAVFileWriter&&) = delete; - WAVFileWriter& operator=(WAVFileWriter&&) = delete; - - ~WAVFileWriter() { - update_header(); - } - - Optional create( - const std::string& filename - ) { - const auto create_error = FileWriter::create(filename); - if( create_error.is_valid() ) { - return create_error; - } else { - return update_header(); - } - } - -private: - struct fmt_pcm_t { - constexpr fmt_pcm_t( - const uint32_t sampling_rate - ) : nSamplesPerSec { sampling_rate }, - nAvgBytesPerSec { nSamplesPerSec * nBlockAlign } - { - } - - private: - const uint8_t ckID[4] { 'f', 'm', 't', ' ' }; - const uint32_t cksize { 16 }; - const uint16_t wFormatTag { 0x0001 }; - const uint16_t nChannels { 1 }; - const uint32_t nSamplesPerSec; - const uint32_t nAvgBytesPerSec; - const uint16_t nBlockAlign { 2 }; - const uint16_t wBitsPerSample { 16 }; - }; - - struct data_t { - void set_size(const uint32_t value) { - cksize = value; - } - - private: - const uint8_t ckID[4] { 'd', 'a', 't', 'a' }; - uint32_t cksize { 0 }; - }; - - struct header_t { - constexpr header_t( - const uint32_t sampling_rate - ) : fmt { sampling_rate } - { - } - - void set_data_size(const uint32_t value) { - data.set_size(value); - cksize = sizeof(header_t) + value - 8; - } - - private: - const uint8_t riff_id[4] { 'R', 'I', 'F', 'F' }; - uint32_t cksize { 0 }; - const uint8_t wave_id[4] { 'W', 'A', 'V', 'E' }; - fmt_pcm_t fmt; - data_t data; - }; - - header_t header; - - Optional update_header() { - header.set_data_size(bytes_written); - const auto seek_0_result = file.seek(0); - if( seek_0_result.is_error() ) { - return seek_0_result.error(); - } - const auto old_position = seek_0_result.value(); - const auto write_result = file.write(&header, sizeof(header)); - if( write_result.is_error() ) { - return write_result.error(); - } - const auto seek_old_result = file.seek(old_position); - if( seek_old_result.is_error() ) { - return seek_old_result.error(); - } - return { }; - } -}; - namespace ui { RecordView::RecordView( @@ -294,7 +165,7 @@ void RecordView::start() { return; } - auto p = std::make_unique(); + auto p = std::make_unique(); auto create_error = p->create( filename_stem + ".C16" ); diff --git a/firmware/application/ui_record_view.hpp b/firmware/application/ui_record_view.hpp index 985e5eee..becca773 100644 --- a/firmware/application/ui_record_view.hpp +++ b/firmware/application/ui_record_view.hpp @@ -26,7 +26,7 @@ #include "capture_thread.hpp" #include "signal.hpp" - +#include "wavfile.hpp" #include "bitmap.hpp" #include diff --git a/firmware/application/ui_soundboard.cpp b/firmware/application/ui_soundboard.cpp index 13fa4892..c58d4ad1 100644 --- a/firmware/application/ui_soundboard.cpp +++ b/firmware/application/ui_soundboard.cpp @@ -24,7 +24,6 @@ #include "ui_soundboard.hpp" -#include "ch.h" #include "lfsr_random.hpp" #include "ui_alphanum.hpp" #include "portapack.hpp" @@ -56,15 +55,15 @@ void SoundBoardView::do_random() { void SoundBoardView::prepare_audio() { - if (cnt >= sample_duration) { + if (sample_counter >= sample_duration) { if (tx_mode == NORMAL) { if (!check_loop.value()) { pbar.set_value(0); transmitter_model.disable(); return; } else { - file.seek(44); - cnt = 0; + reader->rewind(); + sample_counter = 0; } } else { pbar.set_value(0); @@ -73,15 +72,17 @@ void SoundBoardView::prepare_audio() { } } - pbar.set_value(cnt); + pbar.set_value(sample_counter); - size_t bytes_read = file.read(audio_buffer, 1024).value(); + size_t bytes_read = reader->read(audio_buffer, 1024); // Unsigned to signed, pretty stupid :/ for (size_t n = 0; n < bytes_read; n++) audio_buffer[n] -= 0x80; + for (size_t n = bytes_read; n < 1024; n++) + audio_buffer[n] = 0; - cnt += 1024; + sample_counter += 1024; baseband::set_fifo_data(audio_buffer); } @@ -105,16 +106,14 @@ void SoundBoardView::play_sound(uint16_t id) { if (sounds[id].size == 0) return; - auto error = file.open("/wav/" + sounds[id].filename); - if (error.is_valid()) return; + if (!reader->open("/wav/" + sounds[id].filename)) return; sample_duration = sounds[id].sample_duration; pbar.set_max(sample_duration); pbar.set_value(0); - cnt = 0; - file.seek(44); // Skip header + sample_counter = 0; prepare_audio(); @@ -177,7 +176,6 @@ void SoundBoardView::refresh_buttons(uint16_t id) { } void SoundBoardView::change_page(Button& button, const KeyEvent key) { - // Stupid way to find out if the button is on the sides if (button.screen_pos().x < 32) { if ((key == KeyEvent::Left) && (page > 0)) { @@ -193,14 +191,6 @@ void SoundBoardView::change_page(Button& button, const KeyEvent key) { } } -uint16_t SoundBoardView::fb_to_uint16(const std::string& fb) { - return (fb[1] << 8) + fb[0]; -} - -uint32_t SoundBoardView::fb_to_uint32(const std::string& fb) { - return (fb[3] << 24) + (fb[2] << 16) + (fb[1] << 8) + fb[0]; -} - void SoundBoardView::on_ctcss_changed(uint32_t v) { _ctcss_freq = v; } @@ -210,59 +200,36 @@ SoundBoardView::SoundBoardView( ) : nav_ (nav) { std::vector file_list; - std::string file_name; - uint32_t size; uint8_t c; - char file_buffer[32]; + reader = std::make_unique(); - baseband::run_image(portapack::spi_flash::image_tag_audio_tx); - file_list = scan_root_files("/wav", ".WAV"); - + c = 0; for (auto& file_name : file_list) { - - auto error = file.open("/wav/" + file_name); - - if (!error.is_valid()) { - - file.seek(22); - file.read(file_buffer, 2); - - // Is file mono ? - if (fb_to_uint16(file_buffer) == 1) { - file.seek(40); - file.read(file_buffer, 4); - size = fb_to_uint32(file_buffer); - sounds[c].size = size; - - file.seek(24); - file.read(file_buffer, 4); - sounds[c].sample_rate = fb_to_uint32(file_buffer); - - file.seek(34); - file.read(file_buffer, 2); - if (fb_to_uint16(file_buffer) > 8) { + if (reader->open("/wav/" + file_name)) { + if (reader->channels() == 1) { + sounds[c].size = reader->data_size(); + sounds[c].sample_duration = reader->data_size() / (reader->bits_per_sample() / 8); + sounds[c].sample_rate = reader->sample_rate(); + if (reader->bits_per_sample() > 8) sounds[c].sixteenbit = true; - size /= 2; - } else + else sounds[c].sixteenbit = false; - - sounds[c].ms_duration = (size * 1000) / sounds[c].sample_rate; - sounds[c].sample_duration = size; - + sounds[c].ms_duration = reader->ms_duration(); sounds[c].filename = file_name; sounds[c].shortname = remove_filename_extension(file_name); - c++; - if (c == 100) break; // Limit to 100 files + if (c == 105) break; // Limit to 105 files (5 pages) } } } + baseband::run_image(portapack::spi_flash::image_tag_audio_tx); + max_sound = c; - max_page = max_sound / 21; // 21 buttons per page + max_page = max_sound / 21; // 3 * 7 = 21 buttons per page add_children({ { &field_frequency, diff --git a/firmware/application/ui_soundboard.hpp b/firmware/application/ui_soundboard.hpp index 0df8e72b..67936cc7 100644 --- a/firmware/application/ui_soundboard.hpp +++ b/firmware/application/ui_soundboard.hpp @@ -29,8 +29,9 @@ #include "baseband_api.hpp" #include "ui_navigation.hpp" #include "ui_receiver.hpp" +#include "utility.hpp" #include "message.hpp" -#include "file.hpp" +#include "wavfile.hpp" namespace ui { @@ -63,15 +64,15 @@ private: uint32_t ms_duration = 0; }; - uint32_t cnt; + uint32_t sample_counter; uint32_t sample_duration; uint8_t page = 0; - File file; - uint16_t lfsr_v = 0x1337; - sound sounds[100]; + std::unique_ptr reader; + + sound sounds[105]; uint8_t max_sound; uint8_t max_page; @@ -112,8 +113,6 @@ private: void play_sound(uint16_t id); void prepare_audio(); void on_ctcss_changed(uint32_t v); - uint16_t fb_to_uint16(const std::string& fb); - uint32_t fb_to_uint32(const std::string& fb); Text text_duration { { 16, 236, 5 * 8, 16 } diff --git a/firmware/application/wavfile.cpp b/firmware/application/wavfile.cpp new file mode 100644 index 00000000..9cae58ac --- /dev/null +++ b/firmware/application/wavfile.cpp @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2016 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "wavfile.hpp" + +#include "portapack.hpp" +using namespace portapack; + +#include "file.hpp" +#include "time.hpp" +#include "utility.hpp" + +#include + +namespace ui { + +int WAVFileReader::open(const std::string& filename) { + if (filename == last_filename) { + rewind(); + return 1; // Already open + } + + auto error = file.open(filename); + + if (!error.is_valid()) { + file.read((void*)&header, sizeof(header)); + + // TODO: Check validity here + + last_filename = filename; + data_start = header.fmt.cksize + 28; // Skip "data" and cksize + + data_size_ = header.data.cksize; + sample_rate_ = header.fmt.nSamplesPerSec; + bytes_per_sample = header.fmt.wBitsPerSample / 8; + + rewind(); + + return 1; + } else { + return 0; + } +} + +size_t WAVFileReader::read(void * const data, const size_t bytes_to_read) { + return file.read(data, bytes_to_read).value(); +} + +void WAVFileReader::rewind() { + file.seek(data_start); +} + +uint32_t WAVFileReader::ms_duration() { + return ((data_size_ * 1000) / sample_rate_) / bytes_per_sample; +} + +int WAVFileReader::seek_mss(const uint16_t minutes, const uint8_t seconds, const uint32_t samples) { + + auto result = file.seek(data_start + ((((minutes * 60) + seconds) * sample_rate_) + samples) * bytes_per_sample); + + if (result.is_error()) + return 0; + + return 1; +} + +uint16_t WAVFileReader::channels() { + return header.fmt.nChannels; +} + +uint32_t WAVFileReader::sample_rate() { + return sample_rate_; +} + +uint32_t WAVFileReader::data_size() { + return data_size_; +} + +uint16_t WAVFileReader::bits_per_sample() { + return header.fmt.wBitsPerSample; +} + +WAVFileWriter::~WAVFileWriter() { + update_header(); +} + +Optional WAVFileWriter::create( + const std::string& filename +) { + const auto create_error = FileWriter::create(filename); + if( create_error.is_valid() ) { + return create_error; + } else { + return update_header(); + } +} + +Optional WAVFileWriter::update_header() { + header.set_data_size(bytes_written); + const auto seek_0_result = file.seek(0); + if( seek_0_result.is_error() ) { + return seek_0_result.error(); + } + const auto old_position = seek_0_result.value(); + const auto write_result = file.write(&header, sizeof(header)); + if( write_result.is_error() ) { + return write_result.error(); + } + const auto seek_old_result = file.seek(old_position); + if( seek_old_result.is_error() ) { + return seek_old_result.error(); + } + return { }; +} + +} /* namespace ui */ diff --git a/firmware/application/wavfile.hpp b/firmware/application/wavfile.hpp new file mode 100644 index 00000000..7a2e18a8 --- /dev/null +++ b/firmware/application/wavfile.hpp @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2016 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __WAVFILE_H__ +#define __WAVFILE_H__ + +#include "filewriter.hpp" + +#include +#include +#include + +namespace ui { + +class WAVFileReader { +public: + WAVFileReader() = default; + + WAVFileReader(const WAVFileReader&) = delete; + WAVFileReader& operator=(const WAVFileReader&) = delete; + WAVFileReader(WAVFileReader&&) = delete; + WAVFileReader& operator=(WAVFileReader&&) = delete; + + virtual ~WAVFileReader() = default; + + int open(const std::string& filename); + void rewind(); + uint32_t ms_duration(); + size_t read(void * const data, const size_t bytes_to_read); + int seek_mss(const uint16_t minutes, const uint8_t seconds, const uint32_t samples); + uint16_t channels(); + uint32_t sample_rate(); + uint32_t data_size(); + uint16_t bits_per_sample(); + +private: + File file; + uint32_t data_start; + uint32_t bytes_per_sample; + uint32_t data_size_; + uint32_t sample_rate_; + std::string last_filename = ""; + + struct fmt_pcm_t { + uint8_t ckID[4]; // fmt + uint32_t cksize; + uint16_t wFormatTag; + uint16_t nChannels; + uint32_t nSamplesPerSec; + uint32_t nAvgBytesPerSec; + uint16_t nBlockAlign; + uint16_t wBitsPerSample; + }; + + struct data_t { + uint8_t ckID[4]; // data + uint32_t cksize; + }; + + struct header_t { + uint8_t riff_id[4]; // RIFF + uint32_t cksize; + uint8_t wave_id[4]; // WAVE + fmt_pcm_t fmt; + data_t data; + }; + + header_t header; +}; + + +class WAVFileWriter : public FileWriter { +public: + WAVFileWriter( + size_t sampling_rate + ) : header { sampling_rate } + { + } + + WAVFileWriter(const WAVFileWriter&) = delete; + WAVFileWriter& operator=(const WAVFileWriter&) = delete; + WAVFileWriter(WAVFileWriter&&) = delete; + WAVFileWriter& operator=(WAVFileWriter&&) = delete; + + ~WAVFileWriter(); + + Optional create(const std::string& filename); + +private: + struct fmt_pcm_t { + constexpr fmt_pcm_t( + const uint32_t sampling_rate + ) : nSamplesPerSec { sampling_rate }, + nAvgBytesPerSec { nSamplesPerSec * nBlockAlign } + { + } + + private: + const uint8_t ckID[4] { 'f', 'm', 't', ' ' }; + const uint32_t cksize { 16 }; + const uint16_t wFormatTag { 0x0001 }; + const uint16_t nChannels { 1 }; + const uint32_t nSamplesPerSec; + const uint32_t nAvgBytesPerSec; + const uint16_t nBlockAlign { 2 }; + const uint16_t wBitsPerSample { 16 }; + }; + + struct data_t { + void set_size(const uint32_t value) { + cksize = value; + } + + private: + const uint8_t ckID[4] { 'd', 'a', 't', 'a' }; + uint32_t cksize { 0 }; + }; + + struct header_t { + constexpr header_t( + const uint32_t sampling_rate + ) : fmt { sampling_rate } + { + } + + void set_data_size(const uint32_t value) { + data.set_size(value); + cksize = sizeof(header_t) + value - 8; + } + + private: + const uint8_t riff_id[4] { 'R', 'I', 'F', 'F' }; + uint32_t cksize { 0 }; + const uint8_t wave_id[4] { 'W', 'A', 'V', 'E' }; + fmt_pcm_t fmt; + data_t data; + }; + + header_t header; + + Optional update_header(); +}; + +} /* namespace ui */ + +#endif/*__WAVFILE_H__*/ diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index 178d9f90..df9ff773 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -564,9 +564,9 @@ void Checkbox::set_text(const std::string value) { set_dirty(); } -std::string Checkbox::text() const { +/*std::string Checkbox::text() const { return text_; -} +}*/ void Checkbox::set_value(const bool value) { value_ = value; diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index 7360d88a..49e3b66f 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -263,7 +263,7 @@ public: } void set_text(const std::string value); - std::string text() const; + // std::string text() const; void set_value(const bool value); bool value() const; diff --git a/firmware/common/utility.hpp b/firmware/common/utility.hpp index c6cfab94..97aff3dd 100644 --- a/firmware/common/utility.hpp +++ b/firmware/common/utility.hpp @@ -31,6 +31,14 @@ #define LOCATE_IN_RAM __attribute__((section(".ramtext"))) +inline uint16_t fb_to_uint16(const std::string& fb) { + return (fb[1] << 8) + fb[0]; +} + +inline uint32_t fb_to_uint32(const std::string& fb) { + return (fb[3] << 24) + (fb[2] << 16) + (fb[1] << 8) + fb[0]; +} + constexpr size_t operator "" _KiB(unsigned long long v) { return v * 1024; } diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 466adb64c2ae59191c956770a31ed93ef0a6081a..92f8c9bf6d4c118f405ebf9d51e3d1c59d38eb12 100644 GIT binary patch delta 85636 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%0D+M^eH{nB?fj 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 JIvIyR{|^*F3K0MR delta 78157 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 z z%6x(6Dgep=V9R9#M5{>*(TmC=MPY+f4@?+kSPW{=z5e>}=dlL@{NHMrs%f-&c~79t zNHODYQhE2=rVz;CXtLqnCR4Tn{*reaVBa*JMLB#Zx&{8nFJi)-AzN2V?IUj>*-dW| z3(+jZ|PpiuwkrLjG&2KqAGH%$dAK4EY6R1Z4d} zDvVOgAT%-as{a)W*>60FCKB$kUm;70G@xDKAE?Kl-a7G!^w&BW8+4X3bLQNeAZ%tr zgCvP9mb$esgcNZFps5bD*sz!PlsblI&I2vN2N`e~9Ggq_6-#4z$U zN7EV2VE#^oJ9+ZrTB$>B0d7$JKUSLR2Je3VQa833!2hcqA*&@!fdEj`P%fWkjB#^s zOZeMGxF!@yyvew%CR0_eUI(PRU2+Hn`2egXXEYhHsWmuphAQ@k)vLz8kSr8gMD{T%f z$h$vg44i>8=T}bLC<%PK(^Rzo~{l4yD=oP?yNcScB9LrrNs! z*!!cEcT1)Bg!aj!QROkd52Q7UioGO&?ImfIr{9*>-eLwX_tJ6-pt`YP3;%x( zulz@uRLfTi<ep!R0`tfR)+7D-s9VsBJptmE6j{Wi4Wxp%856l zLACuuJ!BO|D1fD7L;d)M`;{nMbN{2q3o*|T_CO`b;7Vyz`x);bIfCj@M+>4gEO&l^ zKq@z2comY^k0n$4&h