InfiniPaint vibrate on colorchange, fix color rotation

This commit is contained in:
Clemens von Molo 2021-10-31 21:23:43 +01:00
parent 0aa73c2279
commit 5e1f4839da
3 changed files with 8 additions and 7 deletions

View File

@ -410,7 +410,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::Twos>(this); currentScreen = std::make_unique<Screens::Twos>(this);
break; break;
case Apps::Paint: case Apps::Paint:
currentScreen = std::make_unique<Screens::InfiniPaint>(this, lvgl); currentScreen = std::make_unique<Screens::InfiniPaint>(this, lvgl,motorController);
break; break;
case Apps::Paddle: case Apps::Paddle:
currentScreen = std::make_unique<Screens::Paddle>(this, lvgl); currentScreen = std::make_unique<Screens::Paddle>(this, lvgl);

View File

@ -4,7 +4,7 @@
using namespace Pinetime::Applications::Screens; 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); std::fill(b, b + bufferSize, selectColor);
} }
@ -16,9 +16,6 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
switch (event) { switch (event) {
case Pinetime::Applications::TouchEvents::LongTap: case Pinetime::Applications::TouchEvents::LongTap:
switch (color) { switch (color) {
case 0:
selectColor = LV_COLOR_MAGENTA;
break;
case 1: case 1:
selectColor = LV_COLOR_GREEN; selectColor = LV_COLOR_GREEN;
break; break;
@ -43,11 +40,13 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
default: default:
color = 0; color = 0;
selectColor = LV_COLOR_MAGENTA;
break; break;
} }
std::fill(b, b + bufferSize, selectColor); std::fill(b, b + bufferSize, selectColor);
color++; color++;
motor.RunForDuration(50);
return true; return true;
default: default:
return true; return true;

View File

@ -3,6 +3,7 @@
#include <lvgl/lvgl.h> #include <lvgl/lvgl.h>
#include <cstdint> #include <cstdint>
#include "Screen.h" #include "Screen.h"
#include "components/motor/MotorController.h"
namespace Pinetime { namespace Pinetime {
namespace Components { namespace Components {
@ -13,7 +14,7 @@ namespace Pinetime {
class InfiniPaint : public Screen { class InfiniPaint : public Screen {
public: public:
InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl); InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Controllers::MotorController& motor);
~InfiniPaint() override; ~InfiniPaint() override;
@ -23,12 +24,13 @@ namespace Pinetime {
private: private:
Pinetime::Components::LittleVgl& lvgl; Pinetime::Components::LittleVgl& lvgl;
Controllers::MotorController& motor;
static constexpr uint16_t width = 10; static constexpr uint16_t width = 10;
static constexpr uint16_t height = 10; static constexpr uint16_t height = 10;
static constexpr uint16_t bufferSize = width * height; static constexpr uint16_t bufferSize = width * height;
lv_color_t b[bufferSize]; lv_color_t b[bufferSize];
lv_color_t selectColor = LV_COLOR_WHITE; lv_color_t selectColor = LV_COLOR_WHITE;
uint8_t color = 2; uint8_t color = 3;
}; };
} }
} }