Interfaçage NeoPixel Ring 12, LPRO MECSE, Arnaud A.

Committer:
Rhamao
Date:
Tue Jun 30 23:32:27 2020 +0000
Revision:
2:a885824aefe0
Parent:
1:2a58d8fcf7f9
version publique; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhamao 0:c95a8c8c3c9b 1 #include "view2.h"
Rhamao 0:c95a8c8c3c9b 2
Rhamao 0:c95a8c8c3c9b 3 View2::View2(int width, int height) : m_width(width), m_height(height){}
Rhamao 0:c95a8c8c3c9b 4
Rhamao 0:c95a8c8c3c9b 5 View2::~View2() //Destructeur de bouton
Rhamao 0:c95a8c8c3c9b 6 {
Rhamao 0:c95a8c8c3c9b 7 for (Button * button : m_buttonList) {
Rhamao 0:c95a8c8c3c9b 8 delete button;
Rhamao 0:c95a8c8c3c9b 9 }
Rhamao 0:c95a8c8c3c9b 10 m_buttonList.clear();
Rhamao 0:c95a8c8c3c9b 11 }
Rhamao 0:c95a8c8c3c9b 12
Rhamao 0:c95a8c8c3c9b 13
Rhamao 0:c95a8c8c3c9b 14 void View2::contain(int x, int y)
Rhamao 0:c95a8c8c3c9b 15 {
Rhamao 1:2a58d8fcf7f9 16 if(screenReleased){
Rhamao 1:2a58d8fcf7f9 17 screenReleased=false;
Rhamao 0:c95a8c8c3c9b 18 for (Button * button : m_buttonList) {
Rhamao 0:c95a8c8c3c9b 19 if (button->contain(x,y)) {
Rhamao 1:2a58d8fcf7f9 20 updateViewChanged(button);
Rhamao 0:c95a8c8c3c9b 21 }
Rhamao 0:c95a8c8c3c9b 22 }
Rhamao 0:c95a8c8c3c9b 23 }
Rhamao 0:c95a8c8c3c9b 24 }
Rhamao 0:c95a8c8c3c9b 25
Rhamao 0:c95a8c8c3c9b 26
Rhamao 0:c95a8c8c3c9b 27 void View2::draw()
Rhamao 0:c95a8c8c3c9b 28 {
Rhamao 0:c95a8c8c3c9b 29 BSP_LCD_Clear(m_bgColor); //Enlève l'affichage du début
Rhamao 0:c95a8c8c3c9b 30 for (Button * button : m_buttonList) {
Rhamao 0:c95a8c8c3c9b 31 button->draw();
Rhamao 0:c95a8c8c3c9b 32 }
Rhamao 0:c95a8c8c3c9b 33 }
Rhamao 0:c95a8c8c3c9b 34
Rhamao 0:c95a8c8c3c9b 35
Rhamao 0:c95a8c8c3c9b 36 void View2::initView(){
Rhamao 0:c95a8c8c3c9b 37 m_bgColor = LCD_COLOR_BLACK;
Rhamao 0:c95a8c8c3c9b 38 //Animations
Rhamao 0:c95a8c8c3c9b 39 anim1->setText("Animations1");
Rhamao 0:c95a8c8c3c9b 40 anim2->setText("Animations2");
Rhamao 0:c95a8c8c3c9b 41 anim3->setText("Animations3");
Rhamao 0:c95a8c8c3c9b 42 start->setText("Start animation");
Rhamao 0:c95a8c8c3c9b 43 stop->setText("Stop animation");
Rhamao 1:2a58d8fcf7f9 44 //Animations tab
Rhamao 1:2a58d8fcf7f9 45 animations->setText("Animations", LCD_COLOR_BLACK);
Rhamao 1:2a58d8fcf7f9 46 //LEDs tab
Rhamao 1:2a58d8fcf7f9 47 leds->setText("LEDS", LCD_COLOR_WHITE);
Rhamao 1:2a58d8fcf7f9 48 hideTop2->setText("");
Rhamao 1:2a58d8fcf7f9 49 hideRight2->setText("");
Rhamao 0:c95a8c8c3c9b 50 //Animations
Rhamao 0:c95a8c8c3c9b 51 m_buttonList.push_front(anim1);
Rhamao 0:c95a8c8c3c9b 52 m_buttonList.push_front(anim2);
Rhamao 0:c95a8c8c3c9b 53 m_buttonList.push_front(anim3);
Rhamao 0:c95a8c8c3c9b 54 m_buttonList.push_front(start);
Rhamao 0:c95a8c8c3c9b 55 m_buttonList.push_front(stop);
Rhamao 1:2a58d8fcf7f9 56 //Animations tab
Rhamao 1:2a58d8fcf7f9 57 m_buttonList.push_front(animations);
Rhamao 1:2a58d8fcf7f9 58 //LEDs tab
Rhamao 1:2a58d8fcf7f9 59 m_buttonList.push_front(hideRight2);
Rhamao 1:2a58d8fcf7f9 60 m_buttonList.push_front(hideTop2);
Rhamao 1:2a58d8fcf7f9 61 m_buttonList.push_front(leds);
Rhamao 0:c95a8c8c3c9b 62 }
Rhamao 0:c95a8c8c3c9b 63
Rhamao 0:c95a8c8c3c9b 64 void View2::updateLCD(){
Rhamao 1:2a58d8fcf7f9 65 viewChanged = false;
Rhamao 0:c95a8c8c3c9b 66 BSP_TS_GetState(&TS_State);
Rhamao 0:c95a8c8c3c9b 67 if (TS_State.touchDetected) { //Detecte si l'écran tactile est touché
Rhamao 0:c95a8c8c3c9b 68 cleared = false;
Rhamao 0:c95a8c8c3c9b 69 for (idx = 0; idx < TS_State.touchDetected; idx++) {
Rhamao 0:c95a8c8c3c9b 70 x = TS_State.touchX[idx];
Rhamao 0:c95a8c8c3c9b 71 y = TS_State.touchY[idx];
Rhamao 0:c95a8c8c3c9b 72 contain(x, y);
Rhamao 0:c95a8c8c3c9b 73
Rhamao 0:c95a8c8c3c9b 74 }
Rhamao 0:c95a8c8c3c9b 75 } else {
Rhamao 1:2a58d8fcf7f9 76 screenReleased=true;
Rhamao 0:c95a8c8c3c9b 77 if (!cleared) {
Rhamao 0:c95a8c8c3c9b 78 draw();
Rhamao 0:c95a8c8c3c9b 79 cleared = true;
Rhamao 0:c95a8c8c3c9b 80
Rhamao 0:c95a8c8c3c9b 81 }
Rhamao 0:c95a8c8c3c9b 82 }
Rhamao 0:c95a8c8c3c9b 83
Rhamao 1:2a58d8fcf7f9 84 }
Rhamao 1:2a58d8fcf7f9 85
Rhamao 1:2a58d8fcf7f9 86 void View2::updateViewChanged(Button* button){
Rhamao 1:2a58d8fcf7f9 87 if(button == leds){
Rhamao 1:2a58d8fcf7f9 88 viewChanged=true;
Rhamao 1:2a58d8fcf7f9 89 }
Rhamao 1:2a58d8fcf7f9 90 }
Rhamao 1:2a58d8fcf7f9 91
Rhamao 2:a885824aefe0 92 void View2::updateAnim1(Button* button){
Rhamao 2:a885824aefe0 93 if(button == anim1){
Rhamao 2:a885824aefe0 94 anim1Bool=true;
Rhamao 2:a885824aefe0 95 }
Rhamao 2:a885824aefe0 96 }
Rhamao 2:a885824aefe0 97
Rhamao 2:a885824aefe0 98 bool View2::getAnim1(){
Rhamao 2:a885824aefe0 99 return anim1Bool;
Rhamao 2:a885824aefe0 100 }
Rhamao 2:a885824aefe0 101
Rhamao 2:a885824aefe0 102
Rhamao 2:a885824aefe0 103 void View2::setAnim1(bool viewChanged){
Rhamao 2:a885824aefe0 104 anim1Bool = this->anim1Bool;
Rhamao 2:a885824aefe0 105 }
Rhamao 2:a885824aefe0 106
Rhamao 1:2a58d8fcf7f9 107 bool View2::getViewChanged(){
Rhamao 1:2a58d8fcf7f9 108 return viewChanged;
Rhamao 1:2a58d8fcf7f9 109 }
Rhamao 1:2a58d8fcf7f9 110
Rhamao 1:2a58d8fcf7f9 111
Rhamao 1:2a58d8fcf7f9 112 void View2::setViewChanged(bool viewChanged){
Rhamao 1:2a58d8fcf7f9 113 viewChanged = this->viewChanged;
Rhamao 0:c95a8c8c3c9b 114 }