From 423d7153579394ae9c8f564f16e2fd3c120d8d08 Mon Sep 17 00:00:00 2001 From: Damiano Mazzella Date: Fri, 14 Mar 2025 10:28:50 +0100 Subject: [PATCH 1/3] Get the status of the display. --- libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp | 5 +++++ libraries/Arduino_H7_Video/src/Arduino_H7_Video.h | 7 +++++++ libraries/Arduino_H7_Video/src/H7DisplayShield.cpp | 10 ++++++++++ libraries/Arduino_H7_Video/src/H7DisplayShield.h | 3 +++ libraries/Arduino_H7_Video/src/anx7625.cpp | 5 +++++ libraries/Arduino_H7_Video/src/anx7625.h | 1 + 6 files changed, 31 insertions(+) diff --git a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp index 460a1793a..7c11200d3 100644 --- a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp +++ b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp @@ -179,6 +179,11 @@ bool Arduino_H7_Video::isRotated() { return _rotated; } +int Arduino_H7_Video::getStatus() +{ + return _shield->getStatus(); +} + void Arduino_H7_Video::end() { #ifdef HAS_ARDUINOGRAPHICS ArduinoGraphics::end(); diff --git a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h index 9f05f5ea0..12fd47cb7 100644 --- a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h +++ b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h @@ -106,6 +106,13 @@ class Arduino_H7_Video */ bool isRotated(); + /** + * @brief Get the status of the display. + * + * @return int The Status of the display. + */ + int getStatus(); + #ifdef HAS_ARDUINOGRAPHICS /** * @brief Clear the display. diff --git a/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp b/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp index e045f5abe..14904db70 100644 --- a/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp +++ b/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp @@ -18,6 +18,10 @@ int GigaDisplayShieldClass::getEdidMode(int h, int v) { return EDID_MODE_480x800_60Hz; } +int GigaDisplayShieldClass::getStatus() { + return 1; +} + int USBCVideoClass::init(int edidmode) { struct edid recognized_edid; int err_code = 0; @@ -57,5 +61,11 @@ int USBCVideoClass::getEdidMode(int h, int v) { return edidmode; } +int USBCVideoClass::getStatus() { + int detected = anx7625_get_hpd_event(0); + + return detected; +} + GigaDisplayShieldClass GigaDisplayShield; USBCVideoClass USBCVideo; \ No newline at end of file diff --git a/libraries/Arduino_H7_Video/src/H7DisplayShield.h b/libraries/Arduino_H7_Video/src/H7DisplayShield.h index c29f9d7eb..541c2c632 100644 --- a/libraries/Arduino_H7_Video/src/H7DisplayShield.h +++ b/libraries/Arduino_H7_Video/src/H7DisplayShield.h @@ -5,18 +5,21 @@ class H7DisplayShield { public: virtual int init(int edidmode) = 0; virtual int getEdidMode(int h, int v); + virtual int getStatus(); }; class GigaDisplayShieldClass : public H7DisplayShield { public: int init(int edidmode); int getEdidMode(int h, int v); + int getStatus(); }; class USBCVideoClass : public H7DisplayShield { public: int init(int edidmode); int getEdidMode(int h, int v); + int getStatus(); }; extern GigaDisplayShieldClass GigaDisplayShield; diff --git a/libraries/Arduino_H7_Video/src/anx7625.cpp b/libraries/Arduino_H7_Video/src/anx7625.cpp index 5f06e96c7..e69d5d832 100644 --- a/libraries/Arduino_H7_Video/src/anx7625.cpp +++ b/libraries/Arduino_H7_Video/src/anx7625.cpp @@ -630,6 +630,11 @@ bool anx7625_is_power_provider(uint8_t bus) { } } +int anx7625_get_hpd_event(uint8_t bus) { + int ret = anx7625_hpd_change_detect(bus);; + return ret; +} + int i2c_writeb(uint8_t bus, uint8_t saddr, uint8_t offset, uint8_t val) { char cmd[2]; cmd[0] = offset; diff --git a/libraries/Arduino_H7_Video/src/anx7625.h b/libraries/Arduino_H7_Video/src/anx7625.h index e6f8de7f2..146d09ec1 100644 --- a/libraries/Arduino_H7_Video/src/anx7625.h +++ b/libraries/Arduino_H7_Video/src/anx7625.h @@ -24,5 +24,6 @@ int anx7625_wait_hpd_event(uint8_t bus); int anx7625_get_cc_status(uint8_t bus, uint8_t *cc_status); int anx7625_read_system_status(uint8_t bus, uint8_t *sys_status); bool anx7625_is_power_provider(uint8_t bus); +int anx7625_get_hpd_event(uint8_t bus); #endif /* _ANX7625_H */ From e11f5c60c1894bbf3ee64498f46efd404bb9ec73 Mon Sep 17 00:00:00 2001 From: Damiano Mazzella Date: Mon, 17 Mar 2025 09:46:35 +0100 Subject: [PATCH 2/3] Update post review --- libraries/Arduino_H7_Video/docs/api.md | 10 ++++++++++ libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp | 4 ++-- libraries/Arduino_H7_Video/src/Arduino_H7_Video.h | 6 +++--- libraries/Arduino_H7_Video/src/H7DisplayShield.cpp | 2 +- libraries/Arduino_H7_Video/src/anx7625.cpp | 2 +- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/libraries/Arduino_H7_Video/docs/api.md b/libraries/Arduino_H7_Video/docs/api.md index 356144b49..923393173 100644 --- a/libraries/Arduino_H7_Video/docs/api.md +++ b/libraries/Arduino_H7_Video/docs/api.md @@ -14,6 +14,7 @@ The main class for managing the video controller and the display. | `public ` [`Arduino_H7_Video`](#public-arduino_h7_videoint-width-int-height-h7displayshield-shield) | Construct a new Arduino_H7_Video object with the specified width, height, and display shield. | | `public int` [`begin`](#public-int-begin) | Initialize the video controller and display. | | `public void` [`end`](#public-void-end) | De-initialize the video controller and display. | +| `public bool` [`detect`](#public-bool-detect) | Checks if the display is connected. | | `public int` [`width`](#public-int-width) | Get the width of the display. | | `public int` [`height`](#public-int-height) | Get the height of the display. | | `public bool` [`isRotated`](#public-bool-isrotated) | Check if the display is rotated. | @@ -54,6 +55,15 @@ De-initialize the video controller and display. --- +### `public bool` [`detect`](#)`()` + +Checks if the display is connected. + +#### Returns +`bool`: True if the display is connected, False otherwis. + +--- + ### `public int` [`width`](#)`()` Get the width of the display. diff --git a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp index 7c11200d3..0e1cc06af 100644 --- a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp +++ b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp @@ -179,9 +179,9 @@ bool Arduino_H7_Video::isRotated() { return _rotated; } -int Arduino_H7_Video::getStatus() +bool Arduino_H7_Video::getStatus() { - return _shield->getStatus(); + return (_shield->getStatus() > 0); } void Arduino_H7_Video::end() { diff --git a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h index 12fd47cb7..8f40d37a0 100644 --- a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h +++ b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.h @@ -107,11 +107,11 @@ class Arduino_H7_Video bool isRotated(); /** - * @brief Get the status of the display. + * @brief Checks if the display is connected. * - * @return int The Status of the display. + * @return true if the display is connected, false otherwise. */ - int getStatus(); + bool detect(); #ifdef HAS_ARDUINOGRAPHICS /** diff --git a/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp b/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp index 14904db70..b6010f3f0 100644 --- a/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp +++ b/libraries/Arduino_H7_Video/src/H7DisplayShield.cpp @@ -19,7 +19,7 @@ int GigaDisplayShieldClass::getEdidMode(int h, int v) { } int GigaDisplayShieldClass::getStatus() { - return 1; + return 1; // TODO: Not implemented; } int USBCVideoClass::init(int edidmode) { diff --git a/libraries/Arduino_H7_Video/src/anx7625.cpp b/libraries/Arduino_H7_Video/src/anx7625.cpp index e69d5d832..3cfefce47 100644 --- a/libraries/Arduino_H7_Video/src/anx7625.cpp +++ b/libraries/Arduino_H7_Video/src/anx7625.cpp @@ -631,7 +631,7 @@ bool anx7625_is_power_provider(uint8_t bus) { } int anx7625_get_hpd_event(uint8_t bus) { - int ret = anx7625_hpd_change_detect(bus);; + int ret = anx7625_hpd_change_detect(bus); return ret; } From fbc07736a92abc28351c72149359e0266a32d714 Mon Sep 17 00:00:00 2001 From: Damiano Mazzella Date: Mon, 17 Mar 2025 09:48:30 +0100 Subject: [PATCH 3/3] Renamed getStatus sto detect --- libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp index 0e1cc06af..2bb02ebc9 100644 --- a/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp +++ b/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp @@ -179,7 +179,7 @@ bool Arduino_H7_Video::isRotated() { return _rotated; } -bool Arduino_H7_Video::getStatus() +bool Arduino_H7_Video::detect() { return (_shield->getStatus() > 0); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy