diff --git a/apps/hardware_test/Makefile b/apps/hardware_test/Makefile index f072f3df0..ba445bc73 100644 --- a/apps/hardware_test/Makefile +++ b/apps/hardware_test/Makefile @@ -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 \ ) diff --git a/apps/hardware_test/app.cpp b/apps/hardware_test/app.cpp index 116c0206d..86f4dc10c 100644 --- a/apps/hardware_test/app.cpp +++ b/apps/hardware_test/app.cpp @@ -1,10 +1,6 @@ #include "app.h" #include "../apps_container.h" -extern "C" { -#include -} - 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 }; diff --git a/apps/hardware_test/app.h b/apps/hardware_test/app.h index 933ca64d5..628d75cd1 100644 --- a/apps/hardware_test/app.h +++ b/apps/hardware_test/app.h @@ -2,11 +2,12 @@ #define HARDWARE_TEST_APP_H #include +#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; }; diff --git a/apps/hardware_test/centered_screen_test_controller.cpp b/apps/hardware_test/centered_screen_test_controller.cpp new file mode 100644 index 000000000..0472ab056 --- /dev/null +++ b/apps/hardware_test/centered_screen_test_controller.cpp @@ -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); +} + +} diff --git a/apps/hardware_test/centered_screen_test_controller.h b/apps/hardware_test/centered_screen_test_controller.h new file mode 100644 index 000000000..b78839bbc --- /dev/null +++ b/apps/hardware_test/centered_screen_test_controller.h @@ -0,0 +1,34 @@ +#ifndef HARDWARE_TEST_CENTERED_SCREEN_TEST_CONTROLLER_H +#define HARDWARE_TEST_CENTERED_SCREEN_TEST_CONTROLLER_H + +#include + +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 + diff --git a/apps/hardware_test/dead_pixels_test_controller.cpp b/apps/hardware_test/dead_pixels_test_controller.cpp new file mode 100644 index 000000000..7bc0c548d --- /dev/null +++ b/apps/hardware_test/dead_pixels_test_controller.cpp @@ -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; +} + +} + diff --git a/apps/hardware_test/dead_pixels_test_controller.h b/apps/hardware_test/dead_pixels_test_controller.h new file mode 100644 index 000000000..4d7ae64e3 --- /dev/null +++ b/apps/hardware_test/dead_pixels_test_controller.h @@ -0,0 +1,28 @@ +#ifndef HARDWARE_TEST_DEAD_PIXELS_TEST_CONTROLLER_H +#define HARDWARE_TEST_DEAD_PIXELS_TEST_CONTROLLER_H + +#include +#include + +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 + diff --git a/apps/hardware_test/pattern.cpp b/apps/hardware_test/pattern.cpp deleted file mode 100644 index 74f57aa09..000000000 --- a/apps/hardware_test/pattern.cpp +++ /dev/null @@ -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) -{ -} - -} diff --git a/apps/hardware_test/pattern.h b/apps/hardware_test/pattern.h deleted file mode 100644 index f38bbedbe..000000000 --- a/apps/hardware_test/pattern.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef HARDWARE_TEST_PATTERN_H -#define HARDWARE_TEST_PATTERN_H - -#include - -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 - diff --git a/apps/hardware_test/pattern_view.cpp b/apps/hardware_test/pattern_view.cpp deleted file mode 100644 index a47fcdd84..000000000 --- a/apps/hardware_test/pattern_view.cpp +++ /dev/null @@ -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()); -} - -} diff --git a/apps/hardware_test/pattern_view.h b/apps/hardware_test/pattern_view.h deleted file mode 100644 index e26e75340..000000000 --- a/apps/hardware_test/pattern_view.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef HARDWARE_TEST_PATTERN_VIEW_H -#define HARDWARE_TEST_PATTERN_VIEW_H - -#include -#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 - diff --git a/apps/hardware_test/screen_test_controller.cpp b/apps/hardware_test/screen_test_controller.cpp deleted file mode 100644 index e9a86584e..000000000 --- a/apps/hardware_test/screen_test_controller.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "screen_test_controller.h" -extern "C" { -#include -} - -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++)); -} - -} - diff --git a/apps/hardware_test/screen_test_controller.h b/apps/hardware_test/screen_test_controller.h deleted file mode 100644 index 2b9570872..000000000 --- a/apps/hardware_test/screen_test_controller.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef HARDWARE_TEST_SCREEN_TEST_CONTROLLER_H -#define HARDWARE_TEST_SCREEN_TEST_CONTROLLER_H - -#include -#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 -