This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch devs/devilhorns/apos
in repository efl.
View the commit online.
commit d8e6231f960821b0e98a69207935c23cea91d7e0
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Tue Nov 21 09:07:53 2023 -0500
ecore_drm2: Add API function to return if a possible crtc
---
src/lib/ecore_drm2/Ecore_Drm2.h | 1 +
src/lib/ecore_drm2/ecore_drm2_displays.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index fa63e4ea3a..fff06679cb 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -81,6 +81,7 @@ EAPI int ecore_drm2_display_rotation_get(Ecore_Drm2_Display *disp);
EAPI void ecore_drm2_display_rotation_set(Ecore_Drm2_Display *disp, uint64_t rotation);
EAPI void ecore_drm2_display_mode_set(Ecore_Drm2_Display *disp, Ecore_Drm2_Display_Mode *mode, int x, int y);
EAPI Ecore_Drm2_Crtc *ecore_drm2_display_crtc_get(Ecore_Drm2_Display *disp);
+EAPI Eina_Bool ecore_drm2_display_possible_crtc_get(Ecore_Drm2_Display *disp, Ecore_Drm2_Crtc *crtc);
# endif
diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c
index f8ff84dd4d..4e5161e8a9 100644
--- a/src/lib/ecore_drm2/ecore_drm2_displays.c
+++ b/src/lib/ecore_drm2/ecore_drm2_displays.c
@@ -883,3 +883,35 @@ ecore_drm2_display_crtc_get(Ecore_Drm2_Display *disp)
EINA_SAFETY_ON_NULL_RETURN_VAL(disp, NULL);
return disp->crtc;
}
+
+EAPI Eina_Bool
+ecore_drm2_display_possible_crtc_get(Ecore_Drm2_Display *disp, Ecore_Drm2_Crtc *crtc)
+{
+ drmModeConnector *conn;
+ drmModeEncoder *enc;
+ int i = 0;
+ Eina_Bool ret = EINA_FALSE;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(disp, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(disp->conn, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(disp->conn->drmConn, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(crtc, EINA_FALSE);
+
+ conn = disp->conn->drmConn;
+ for (; i < conn->count_encoders; i++)
+ {
+ enc = sym_drmModeGetEncoder(disp->conn->fd, conn->encoders[i]);
+ if (!enc) continue;
+
+ if (enc->crtc_id != crtc->id) goto next;
+
+ if (enc->possible_crtcs & (1 << crtc->pipe))
+ ret = EINA_TRUE;
+
+next:
+ sym_drmModeFreeEncoder(enc);
+ if (ret) break;
+ }
+
+ return ret;
+}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.