1212#include " Arduino_H7_Video.h"
1313
1414#include " dsi.h"
15- #include " st7701.h"
1615#include " SDRAM.h"
1716extern " C" {
1817#include " video_modes.h"
1918}
20- #include " anx7625.h"
2119
2220#if __has_include ("lvgl.h")
2321#include " lvgl.h"
@@ -29,19 +27,10 @@ void lvgl_displayFlushing(lv_disp_drv_t * disp, const lv_area_t * area, lv_color
2927#endif
3028
3129/* Functions -----------------------------------------------------------------*/
32- Arduino_H7_Video::Arduino_H7_Video (int width, int heigth, DisplayShieldModel shield) :
30+ Arduino_H7_Video::Arduino_H7_Video (int width, int heigth, H7DisplayShield & shield) :
3331 ArduinoGraphics(width, heigth) {
34- _shield = shield;
35-
36- #if defined(ARDUINO_PORTENTA_H7_M7)
37- if (_shield == NONE_SHIELD) {
38- _edidMode = video_modes_get_edid (width, heigth);
39- } else if (_shield == GIGA_DISPLAY_SHIELD) {
40- _edidMode = EDID_MODE_480x800_60Hz;
41- }
42- #elif defined(ARDUINO_GIGA)
43- _edidMode = EDID_MODE_480x800_60Hz;
44- #endif
32+ _shield = &shield;
33+ _edidMode = _shield->getEdidMode (width, heigth);
4534
4635 switch (_edidMode) {
4736 case EDID_MODE_640x480_60Hz ... EDID_MODE_800x600_59Hz:
@@ -66,45 +55,12 @@ int Arduino_H7_Video::begin() {
6655 }
6756
6857 textFont (Font_5x7);
58+
59+ /* Video controller/bridge init */
60+ _shield->init (_edidMode);
6961
70- #if defined(ARDUINO_PORTENTA_H7_M7)
71- if (_shield == NONE_SHIELD) {
72- struct edid recognized_edid;
73- int err_code = 0 ;
74-
75- // Initialization of ANX7625
76- err_code = anx7625_init (0 );
77- if (err_code < 0 ) {
78- return err_code;
79- }
80-
81- // Checking HDMI plug event
82- anx7625_wait_hpd_event (0 );
83-
84- // Read EDID
85- anx7625_dp_get_edid (0 , &recognized_edid);
86-
87- // DSI Configuration
88- anx7625_dp_start (0 , &recognized_edid, (enum edid_modes) _edidMode);
89-
90- // Configure SDRAM
91- SDRAM.begin (dsi_getFramebufferEnd ());
92- } else if (_shield == GIGA_DISPLAY_SHIELD) {
93- // Init LCD Controller
94- st7701_init ((enum edid_modes) _edidMode);
95-
96- // Configure SDRAM
97- SDRAM.begin ();
98- }
99- #elif defined(ARDUINO_GIGA)
100- // Init LCD Controller
101- st7701_init ((enum edid_modes) _edidMode);
102-
103- // Configure SDRAM
104- SDRAM.begin ();
105- #else
106- #error Board not compatible with this library
107- #endif
62+ /* Configure SDRAM */
63+ SDRAM.begin ();
10864
10965 dsi_lcdClear (0 );
11066
0 commit comments