mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[hardware_test] Split Screen test into centred screen and dead pixels
This commit is contained in:
@@ -2,16 +2,14 @@ app_src += $(addprefix apps/hardware_test/,\
|
||||
app.cpp \
|
||||
arrow_view.cpp \
|
||||
battery_test_controller.cpp \
|
||||
centered_screen_test_controller.cpp \
|
||||
code_128b_view.cpp \
|
||||
dead_pixels_test_controller.cpp \
|
||||
keyboard_test_controller.cpp \
|
||||
keyboard_view.cpp \
|
||||
lcd_data_test_controller.cpp \
|
||||
led_test_controller.cpp \
|
||||
pattern.cpp \
|
||||
pattern_view.cpp \
|
||||
pop_up_controller.cpp \
|
||||
screen_test_controller.cpp \
|
||||
screen_test_controller.cpp \
|
||||
serial_number_controller.cpp \
|
||||
vblank_test_controller.cpp \
|
||||
)
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
#include "app.h"
|
||||
#include "../apps_container.h"
|
||||
|
||||
extern "C" {
|
||||
#include <assert.h>
|
||||
}
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
App * App::Snapshot::unpack(Container * container) {
|
||||
@@ -24,11 +20,12 @@ App::App(Container * container, Snapshot * snapshot) :
|
||||
|
||||
App::WizardViewController::WizardViewController(Responder * parentResponder) :
|
||||
BankViewController(parentResponder),
|
||||
m_batteryTestController(this),
|
||||
m_centeredScreenTestController(this),
|
||||
m_deadPixelsTestController(this),
|
||||
m_keyboardController(this),
|
||||
m_screenTestController(this),
|
||||
m_lcdDataTestController(this),
|
||||
m_ledTestController(this),
|
||||
m_batteryTestController(this),
|
||||
m_serialNumberController(this),
|
||||
m_vBlankTestController(this)
|
||||
{
|
||||
@@ -42,9 +39,10 @@ ViewController * App::WizardViewController::childAtIndex(int i) {
|
||||
ViewController * children[] = {
|
||||
&m_vBlankTestController,
|
||||
&m_lcdDataTestController,
|
||||
&m_keyboardController,
|
||||
&m_screenTestController,
|
||||
&m_centeredScreenTestController,
|
||||
&m_deadPixelsTestController,
|
||||
&m_ledTestController,
|
||||
&m_keyboardController,
|
||||
&m_batteryTestController,
|
||||
&m_serialNumberController
|
||||
};
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
#define HARDWARE_TEST_APP_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "battery_test_controller.h"
|
||||
#include "centered_screen_test_controller.h"
|
||||
#include "dead_pixels_test_controller.h"
|
||||
#include "keyboard_test_controller.h"
|
||||
#include "screen_test_controller.h"
|
||||
#include "lcd_data_test_controller.h"
|
||||
#include "led_test_controller.h"
|
||||
#include "battery_test_controller.h"
|
||||
#include "serial_number_controller.h"
|
||||
#include "vblank_test_controller.h"
|
||||
|
||||
@@ -29,11 +30,12 @@ private:
|
||||
ViewController * childAtIndex(int i) override;
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
private:
|
||||
BatteryTestController m_batteryTestController;
|
||||
CenteredScreenTestController m_centeredScreenTestController;
|
||||
DeadPixelsTestController m_deadPixelsTestController;
|
||||
KeyboardTestController m_keyboardController;
|
||||
ScreenTestController m_screenTestController;
|
||||
LCDDataTestController m_lcdDataTestController;
|
||||
LEDTestController m_ledTestController;
|
||||
BatteryTestController m_batteryTestController;
|
||||
SerialNumberController m_serialNumberController;
|
||||
VBlankTestController m_vBlankTestController;
|
||||
};
|
||||
|
||||
10
apps/hardware_test/centered_screen_test_controller.cpp
Normal file
10
apps/hardware_test/centered_screen_test_controller.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "centered_screen_test_controller.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
void CenteredScreenTestController::ContentView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
ctx->fillRect(rect, KDColorWhite);
|
||||
ctx->fillRect(KDRect(k_outlineThickness, k_outlineThickness, bounds().width()-2*k_outlineThickness, bounds().height()-2*k_outlineThickness), KDColorBlack);
|
||||
}
|
||||
|
||||
}
|
||||
34
apps/hardware_test/centered_screen_test_controller.h
Normal file
34
apps/hardware_test/centered_screen_test_controller.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef HARDWARE_TEST_CENTERED_SCREEN_TEST_CONTROLLER_H
|
||||
#define HARDWARE_TEST_CENTERED_SCREEN_TEST_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
class CenteredScreenTestController : public ViewController {
|
||||
public:
|
||||
CenteredScreenTestController(Responder * parentResponder) :
|
||||
ViewController(parentResponder),
|
||||
m_view()
|
||||
{}
|
||||
View * view() override { return &m_view; }
|
||||
bool handleEvent(Ion::Events::Event event) override {
|
||||
// This will be handled by the WizardViewController
|
||||
return false;
|
||||
}
|
||||
private:
|
||||
class ContentView : public View {
|
||||
public:
|
||||
ContentView() {}
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
private:
|
||||
constexpr static KDCoordinate k_outlineThickness = 1;
|
||||
};
|
||||
|
||||
ContentView m_view;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
22
apps/hardware_test/dead_pixels_test_controller.cpp
Normal file
22
apps/hardware_test/dead_pixels_test_controller.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include "dead_pixels_test_controller.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
constexpr KDColor DeadPixelsTestController::k_colors[DeadPixelsTestController::k_numberOfColors - 1];
|
||||
|
||||
bool DeadPixelsTestController::handleEvent(Ion::Events::Event event) {
|
||||
if (event != Ion::Events::OK) {
|
||||
return true;
|
||||
}
|
||||
if (m_colorIndex == k_numberOfColors) {
|
||||
// Go to the next step - this will be handled by the WizardViewController
|
||||
return false;
|
||||
} else {
|
||||
m_colorIndex++;
|
||||
m_view.setColor(k_colors[m_colorIndex - 1]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
28
apps/hardware_test/dead_pixels_test_controller.h
Normal file
28
apps/hardware_test/dead_pixels_test_controller.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef HARDWARE_TEST_DEAD_PIXELS_TEST_CONTROLLER_H
|
||||
#define HARDWARE_TEST_DEAD_PIXELS_TEST_CONTROLLER_H
|
||||
|
||||
#include <escher/view_controller.h>
|
||||
#include <escher/solid_color_view.h>
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
class DeadPixelsTestController : public ViewController {
|
||||
public:
|
||||
DeadPixelsTestController(Responder * parentResponder) :
|
||||
ViewController(parentResponder),
|
||||
m_colorIndex(0),
|
||||
m_view(KDColorRed)
|
||||
{}
|
||||
View * view() override { return &m_view; }
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
private:
|
||||
constexpr static int k_numberOfColors = 4;
|
||||
constexpr static KDColor k_colors[k_numberOfColors - 1] = {KDColorBlue, KDColorGreen, KDColorWhite}; // KDColorRed is the first color, set in the constructor
|
||||
int m_colorIndex;
|
||||
SolidColorView m_view;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#include "pattern.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
constexpr KDColor Pattern::k_fillColors[Pattern::k_numberOfPatterns];
|
||||
constexpr KDColor Pattern::k_outlineColors[Pattern::k_numberOfPatterns];
|
||||
|
||||
int Pattern::numberOfPatterns() {
|
||||
return k_numberOfPatterns;
|
||||
}
|
||||
|
||||
Pattern Pattern::patternAtIndex(int i) {
|
||||
return Pattern(i);
|
||||
}
|
||||
|
||||
KDColor Pattern::fillColor() const {
|
||||
return k_fillColors[m_i];
|
||||
}
|
||||
|
||||
KDColor Pattern::outlineColor() const {
|
||||
return k_outlineColors[m_i];
|
||||
}
|
||||
|
||||
Pattern::Pattern(int i) :
|
||||
m_i(i)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef HARDWARE_TEST_PATTERN_H
|
||||
#define HARDWARE_TEST_PATTERN_H
|
||||
|
||||
#include <escher.h>
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
class Pattern {
|
||||
public:
|
||||
static int numberOfPatterns();
|
||||
static Pattern patternAtIndex(int i);
|
||||
KDColor fillColor() const;
|
||||
KDColor outlineColor() const;
|
||||
private:
|
||||
Pattern(int i);
|
||||
int m_i;
|
||||
constexpr static int k_numberOfPatterns = 5;
|
||||
constexpr static KDColor k_fillColors[k_numberOfPatterns] = {KDColorBlack, KDColorRed, KDColorBlue, KDColorGreen, KDColorWhite};
|
||||
constexpr static KDColor k_outlineColors[k_numberOfPatterns] = {KDColorWhite, KDColorGreen, KDColorRed, KDColorRed, KDColorGreen};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#include "pattern_view.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
PatternView::PatternView() :
|
||||
m_pattern(Pattern::patternAtIndex(0))
|
||||
{
|
||||
}
|
||||
|
||||
void PatternView::setPattern(Pattern p) {
|
||||
m_pattern = p;
|
||||
markRectAsDirty(bounds());
|
||||
}
|
||||
|
||||
void PatternView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
ctx->fillRect(rect, m_pattern.outlineColor());
|
||||
ctx->fillRect(KDRect(k_outlineThickness, k_outlineThickness, bounds().width()-2*k_outlineThickness, bounds().height()-2*k_outlineThickness), m_pattern.fillColor());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
#ifndef HARDWARE_TEST_PATTERN_VIEW_H
|
||||
#define HARDWARE_TEST_PATTERN_VIEW_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "pattern.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
class PatternView : public View {
|
||||
public:
|
||||
PatternView();
|
||||
void setPattern(Pattern p);
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
private:
|
||||
constexpr static KDCoordinate k_outlineThickness = 1;
|
||||
Pattern m_pattern;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
#include "screen_test_controller.h"
|
||||
extern "C" {
|
||||
#include <assert.h>
|
||||
}
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
ScreenTestController::ScreenTestController(Responder * parentResponder) :
|
||||
ViewController(parentResponder),
|
||||
m_patternIndex(0),
|
||||
m_view()
|
||||
{
|
||||
}
|
||||
|
||||
View * ScreenTestController::view() {
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
bool ScreenTestController::handleEvent(Ion::Events::Event event) {
|
||||
if (event != Ion::Events::OK) {
|
||||
return true;
|
||||
}
|
||||
if (m_patternIndex == Pattern::numberOfPatterns()) {
|
||||
// Go to the next step - this will be handled by the WizardViewController
|
||||
return false;
|
||||
} else {
|
||||
showNextPattern();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ScreenTestController::viewWillAppear() {
|
||||
m_patternIndex = 0;
|
||||
showNextPattern();
|
||||
}
|
||||
|
||||
void ScreenTestController::showNextPattern() {
|
||||
m_view.setPattern(Pattern::patternAtIndex(m_patternIndex++));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef HARDWARE_TEST_SCREEN_TEST_CONTROLLER_H
|
||||
#define HARDWARE_TEST_SCREEN_TEST_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "pattern_view.h"
|
||||
#include "pattern.h"
|
||||
|
||||
namespace HardwareTest {
|
||||
|
||||
class ScreenTestController : public ViewController {
|
||||
public:
|
||||
ScreenTestController(Responder * parentResponder);
|
||||
View * view() override;
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
void viewWillAppear() override;
|
||||
private:
|
||||
void showNextPattern();
|
||||
int m_patternIndex;
|
||||
PatternView m_view;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user