InfiniPaint vibrate on colorchange, fix color rotation
This commit is contained in:
		
							parent
							
								
									0aa73c2279
								
							
						
					
					
						commit
						5e1f4839da
					
				@ -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);
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user