summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorClemens von Molo <clemensvonmolo@paderborn.com>2021-10-31 21:23:43 +0100
committerClemens von Molo <clemensvonmolo@paderborn.com>2021-10-31 21:23:43 +0100
commit5e1f4839daff075d6411f41148eb6d5d0543bcee (patch)
tree8e0daa157d07b3dbcbbab6d706da78b090510b93 /src
parent0aa73c2279f81a3cc2c730d253807b6102033195 (diff)
InfiniPaint vibrate on colorchange, fix color rotation
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/DisplayApp.cpp2
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp7
-rw-r--r--src/displayapp/screens/InfiniPaint.h6
3 files changed, 8 insertions, 7 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index abe5851e..04aec4c4 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -410,7 +410,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::Twos>(this);
break;
case Apps::Paint:
- currentScreen = std::make_unique<Screens::InfiniPaint>(this, lvgl);
+ currentScreen = std::make_unique<Screens::InfiniPaint>(this, lvgl,motorController);
break;
case Apps::Paddle:
currentScreen = std::make_unique<Screens::Paddle>(this, lvgl);
diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp
index 85a5e826..66391b12 100644
--- a/src/displayapp/screens/InfiniPaint.cpp
+++ b/src/displayapp/screens/InfiniPaint.cpp
@@ -4,7 +4,7 @@
using namespace Pinetime::Applications::Screens;
-InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl {lvgl} {
+InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Pinetime::Controllers::MotorController& motor) : Screen(app), lvgl {lvgl}, motor{motor} {
std::fill(b, b + bufferSize, selectColor);
}
@@ -16,9 +16,6 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
switch (event) {
case Pinetime::Applications::TouchEvents::LongTap:
switch (color) {
- case 0:
- selectColor = LV_COLOR_MAGENTA;
- break;
case 1:
selectColor = LV_COLOR_GREEN;
break;
@@ -43,11 +40,13 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
default:
color = 0;
+ selectColor = LV_COLOR_MAGENTA;
break;
}
std::fill(b, b + bufferSize, selectColor);
color++;
+ motor.RunForDuration(50);
return true;
default:
return true;
diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h
index 0a70e033..8a96fc6d 100644
--- a/src/displayapp/screens/InfiniPaint.h
+++ b/src/displayapp/screens/InfiniPaint.h
@@ -3,6 +3,7 @@
#include <lvgl/lvgl.h>
#include <cstdint>
#include "Screen.h"
+#include "components/motor/MotorController.h"
namespace Pinetime {
namespace Components {
@@ -13,7 +14,7 @@ namespace Pinetime {
class InfiniPaint : public Screen {
public:
- InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl);
+ InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Controllers::MotorController& motor);
~InfiniPaint() override;
@@ -23,12 +24,13 @@ namespace Pinetime {
private:
Pinetime::Components::LittleVgl& lvgl;
+ Controllers::MotorController& motor;
static constexpr uint16_t width = 10;
static constexpr uint16_t height = 10;
static constexpr uint16_t bufferSize = width * height;
lv_color_t b[bufferSize];
lv_color_t selectColor = LV_COLOR_WHITE;
- uint8_t color = 2;
+ uint8_t color = 3;
};
}
}