summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-12-02 21:43:17 +0100
committerJean-François Milants <jf@codingfield.com>2021-12-02 21:43:17 +0100
commitada96ccdc8b725825f571a57bf7b23752c88bc92 (patch)
tree315cd89d4183180aa3d1ec66ab73dc454c68c933 /src
parenta17d8bd566ae7686b9373dc3f2ab218d3a191630 (diff)
parent1404d0186c83d2d805bb5daa1f2de84c52e59b42 (diff)
Merge branch 'clemensvonmolo-paint-colorchange-vibration' into develop
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/DisplayApp.cpp2
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp8
-rw-r--r--src/displayapp/screens/InfiniPaint.h4
3 files changed, 10 insertions, 4 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index 38ce930a..80155187 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -430,7 +430,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 00d224e6..93c3c4a0 100644
--- a/src/displayapp/screens/InfiniPaint.cpp
+++ b/src/displayapp/screens/InfiniPaint.cpp
@@ -4,7 +4,10 @@
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);
}
@@ -15,6 +18,7 @@ InfiniPaint::~InfiniPaint() {
bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
switch (event) {
case Pinetime::Applications::TouchEvents::LongTap:
+ color = (color + 1) % 8;
switch (color) {
case 0:
selectColor = LV_COLOR_MAGENTA;
@@ -47,7 +51,7 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
}
std::fill(b, b + bufferSize, selectColor);
- color++;
+ motor.RunForDuration(35);
return true;
default:
return true;
diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h
index bc0bca24..8c427402 100644
--- a/src/displayapp/screens/InfiniPaint.h
+++ b/src/displayapp/screens/InfiniPaint.h
@@ -4,6 +4,7 @@
#include <cstdint>
#include <algorithm> // std::fill
#include "displayapp/screens/Screen.h"
+#include "components/motor/MotorController.h"
namespace Pinetime {
namespace Components {
@@ -14,7 +15,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;
@@ -24,6 +25,7 @@ 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;