From c7082455c10bc84490fcfa5128a77fd27539e04d Mon Sep 17 00:00:00 2001 From: Erwin Ried <1091420+eried@users.noreply.github.com> Date: Sat, 8 Aug 2020 23:06:53 +0200 Subject: [PATCH] Super simple about --- firmware/application/CMakeLists.txt | 2 +- firmware/application/apps/ui_about_simple.cpp | 75 +++++++++++++++++++ firmware/application/apps/ui_about_simple.hpp | 40 ++++++++++ firmware/application/ui_navigation.cpp | 2 +- 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 firmware/application/apps/ui_about_simple.cpp create mode 100644 firmware/application/apps/ui_about_simple.hpp diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index dc9e41d5c..f551f676c 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -214,7 +214,7 @@ set(CPPSRC ui/ui_tabview.cpp ui/ui_textentry.cpp ui/ui_transmitter.cpp - apps/ui_about.cpp + apps/ui_about_simple.cpp apps/ui_adsb_rx.cpp apps/ui_adsb_tx.cpp apps/ui_afsk_rx.cpp diff --git a/firmware/application/apps/ui_about_simple.cpp b/firmware/application/apps/ui_about_simple.cpp new file mode 100644 index 000000000..2c6f796ed --- /dev/null +++ b/firmware/application/apps/ui_about_simple.cpp @@ -0,0 +1,75 @@ +#include "ui_about_simple.hpp" + +namespace ui +{ + AboutView::AboutView(NavigationView &nav) + { + add_children({&console, &button_ok}); + + button_ok.on_select = [&nav](Button &) { + nav.pop(); + }; + + console.writeln("\x1B\x07List of contributors:\x1B\x10"); + console.writeln(""); + } + + void AboutView::update() + { + if (++timer > 200) + { + timer = 0; + + switch (++frame) + { + case 1: + // TODO: Generate this automatically from github + // https://github.com/eried/portapack-mayhem/graphs/contributors?to=2022-01-01&from=2020-04-12&type=c + console.writeln("\x1B\x06Mayhem:\x1B\x10"); + console.writeln("eried,euquiq,gregoryfenton"); + console.writeln("johnelder,jwetzell,nnemanjan00"); + console.writeln("N0vaPixel,klockee,jamesshao8"); + console.writeln(""); + break; + + case 2: + // https://github.com/eried/portapack-mayhem/graphs/contributors?to=2020-04-12&from=2015-07-31&type=c + console.writeln("\x1B\x06Havoc:\x1B\x10"); + console.writeln("furrtek,mrmookie,notpike"); + console.writeln("mjwaxios,ImDroided,Giorgiofox"); + console.writeln("F4GEV,z4ziggy,xmycroftx"); + console.writeln("troussos,silascutler"); + console.writeln("nickbouwhuis,msoose,leres"); + console.writeln("joakar,dhoetger,clem-42"); + console.writeln("brianlechthaler,ZeroChaos-..."); + console.writeln(""); + break; + + case 3: + // https://github.com/eried/portapack-mayhem/graphs/contributors?from=2014-07-05&to=2015-07-31&type=c + console.writeln("\x1B\x06PortaPack:\x1B\x10"); + console.writeln("jboone,argilo"); + console.writeln(""); + break; + + case 4: + // https://github.com/mossmann/hackrf/graphs/contributors + console.writeln("\x1B\x06HackRF:\x1B\x10"); + console.writeln("mossmann,dominicgs,bvernoux"); + console.writeln("bgamari,schneider42,miek"); + console.writeln("willcode,hessu,Sec42"); + console.writeln("yhetti,ckuethe,smunaut"); + console.writeln("wishi,mrbubble62,scateu..."); + console.writeln(""); + frame = 0; // Loop + break; + } + } + } + + void AboutView::focus() + { + button_ok.focus(); + } + +} /* namespace ui */ \ No newline at end of file diff --git a/firmware/application/apps/ui_about_simple.hpp b/firmware/application/apps/ui_about_simple.hpp new file mode 100644 index 000000000..a05901190 --- /dev/null +++ b/firmware/application/apps/ui_about_simple.hpp @@ -0,0 +1,40 @@ +#ifndef __UI_ABOUT_SIMPLE_H__ +#define __UI_ABOUT_SIMPLE_H__ + +#include "ui_widget.hpp" +#include "ui_navigation.hpp" +#include "ui_font_fixed_8x16.hpp" + +#include + +namespace ui +{ + class AboutView : public View + { + public: + AboutView(NavigationView &nav); + void focus() override; + std::string title() const override { return "About"; }; + int32_t timer{180}; + short frame{0}; + + private: + void update(); + + Console console{ + {0, 10, 240, 240}}; + + Button button_ok{ + {240/3, 270, 240/3, 24}, + "OK", + }; + + MessageHandlerRegistration message_handler_update{ + Message::ID::DisplayFrameSync, + [this](const Message *const) { + this->update(); + }}; + }; +} // namespace ui + +#endif /*__UI_ABOUT_SIMPLE_H__*/ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 42b2fdb3d..62092b817 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -30,7 +30,7 @@ #include "bmp_modal_warning.hpp" #include "portapack_persistent_memory.hpp" -#include "ui_about.hpp" +#include "ui_about_simple.hpp" #include "ui_adsb_rx.hpp" #include "ui_adsb_tx.hpp" #include "ui_afsk_rx.hpp"