mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-04-08 22:24:30 +00:00
A Simple Touchscreen Test App (Debug) (#1292)
* Touchscreen test * Touchscreen test * Touchscreen test * Clang * Moved some Debug menu icons
This commit is contained in:
parent
47e95c0c47
commit
c4df2e66be
@ -403,9 +403,10 @@ DebugMenuView::DebugMenuView(NavigationView& nav) {
|
|||||||
{"Peripherals", ui::Color::dark_cyan(), &bitmap_icon_peripherals, [&nav]() { nav.push<DebugPeripheralsMenuView>(); }},
|
{"Peripherals", ui::Color::dark_cyan(), &bitmap_icon_peripherals, [&nav]() { nav.push<DebugPeripheralsMenuView>(); }},
|
||||||
{"Temperature", ui::Color::dark_cyan(), &bitmap_icon_temperature, [&nav]() { nav.push<TemperatureView>(); }},
|
{"Temperature", ui::Color::dark_cyan(), &bitmap_icon_temperature, [&nav]() { nav.push<TemperatureView>(); }},
|
||||||
{"Buttons Test", ui::Color::dark_cyan(), &bitmap_icon_controls, [&nav]() { nav.push<DebugControlsView>(); }},
|
{"Buttons Test", ui::Color::dark_cyan(), &bitmap_icon_controls, [&nav]() { nav.push<DebugControlsView>(); }},
|
||||||
|
{"Touch Test", ui::Color::dark_cyan(), &bitmap_icon_notepad, [&nav]() { nav.push<DebugScreenTest>(); }},
|
||||||
{"P.Memory", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav]() { nav.push<DebugPmemView>(); }},
|
{"P.Memory", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav]() { nav.push<DebugPmemView>(); }},
|
||||||
{"Fonts Viewer", ui::Color::dark_cyan(), &bitmap_icon_notepad, [&nav]() { nav.push<DebugFontsView>(); }},
|
|
||||||
{"Debug Dump", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav]() { portapack::persistent_memory::debug_dump(); }},
|
{"Debug Dump", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav]() { portapack::persistent_memory::debug_dump(); }},
|
||||||
|
{"Fonts Viewer", ui::Color::dark_cyan(), &bitmap_icon_notepad, [&nav]() { nav.push<DebugFontsView>(); }},
|
||||||
});
|
});
|
||||||
set_max_rows(2); // allow wider buttons
|
set_max_rows(2); // allow wider buttons
|
||||||
}
|
}
|
||||||
@ -501,6 +502,56 @@ DebugFontsView::DebugFontsView(NavigationView& nav)
|
|||||||
set_focusable(true);
|
set_focusable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* DebugScreenTest ****************************************************/
|
||||||
|
|
||||||
|
DebugScreenTest::DebugScreenTest(NavigationView& nav)
|
||||||
|
: nav_{nav} {
|
||||||
|
set_focusable(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DebugScreenTest::on_key(const KeyEvent key) {
|
||||||
|
Painter painter;
|
||||||
|
switch (key) {
|
||||||
|
case KeyEvent::Select:
|
||||||
|
nav_.pop();
|
||||||
|
break;
|
||||||
|
case KeyEvent::Down:
|
||||||
|
painter.fill_rectangle({0, 0, screen_width, screen_height}, semirand());
|
||||||
|
break;
|
||||||
|
case KeyEvent::Left:
|
||||||
|
pen_color = semirand();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DebugScreenTest::on_encoder(EncoderEvent delta) {
|
||||||
|
pen_size = clip<int32_t>(pen_size + delta, 1, screen_width);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DebugScreenTest::on_touch(const TouchEvent event) {
|
||||||
|
Painter painter;
|
||||||
|
pen_pos = event.point;
|
||||||
|
painter.fill_rectangle({pen_pos.x() - pen_size / 2, pen_pos.y() - pen_size / 2, pen_size, pen_size}, pen_color);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t DebugScreenTest::semirand() {
|
||||||
|
static uint64_t seed{0x31415926DEADBEEF};
|
||||||
|
seed = seed * 137;
|
||||||
|
seed = (seed >> 1) | ((seed & 0x01) << 63);
|
||||||
|
return (uint16_t)seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebugScreenTest::paint(Painter& painter) {
|
||||||
|
painter.fill_rectangle({0, 0, screen_width, screen_height}, Color::white());
|
||||||
|
painter.draw_string({10 * 8, screen_height / 2}, Styles::white, "Use Stylus");
|
||||||
|
pen_color = semirand();
|
||||||
|
}
|
||||||
|
|
||||||
/* DebugLCRView *******************************************************/
|
/* DebugLCRView *******************************************************/
|
||||||
|
|
||||||
/*DebugLCRView::DebugLCRView(NavigationView& nav, std::string lcr_string) {
|
/*DebugLCRView::DebugLCRView(NavigationView& nav, std::string lcr_string) {
|
||||||
|
@ -321,6 +321,22 @@ class DebugFontsView : public View {
|
|||||||
NavigationView& nav_;
|
NavigationView& nav_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DebugScreenTest : public View {
|
||||||
|
public:
|
||||||
|
DebugScreenTest(NavigationView& nav);
|
||||||
|
bool on_key(KeyEvent key) override;
|
||||||
|
bool on_encoder(EncoderEvent delta) override;
|
||||||
|
bool on_touch(TouchEvent event) override;
|
||||||
|
uint16_t semirand();
|
||||||
|
void paint(Painter& painter) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
NavigationView& nav_;
|
||||||
|
Point pen_pos{};
|
||||||
|
Color pen_color{0};
|
||||||
|
int16_t pen_size{10};
|
||||||
|
};
|
||||||
|
|
||||||
/*class DebugLCRView : public View {
|
/*class DebugLCRView : public View {
|
||||||
public:
|
public:
|
||||||
DebugLCRView(NavigationView& nav, std::string lcrstring);
|
DebugLCRView(NavigationView& nav, std::string lcrstring);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user