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 430dee86e4f85e7650ac764beb68307cad40f1bc
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Wed Nov 22 06:55:48 2023 -0500

    ecore_drm2: Add APIs to support setting display relative properties
---
 src/lib/ecore_drm2/Ecore_Drm2.h          | 13 +++++++++++++
 src/lib/ecore_drm2/ecore_drm2_displays.c | 15 +++++++++++++++
 src/lib/ecore_drm2/ecore_drm2_private.h  |  6 ++++++
 3 files changed, 34 insertions(+)

diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 170cb8525b..cd2f0632d5 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -28,6 +28,18 @@ typedef enum _Ecore_Drm2_Rotation
    ECORE_DRM2_ROTATION_REFLECT_Y = 32
 } Ecore_Drm2_Rotation;
 
+/* public enum for relative mode */
+typedef enum _Ecore_Drm2_Relative_Mode
+{
+   ECORE_DRM2_RELATIVE_MODE_UNKNOWN,
+   ECORE_DRM2_RELATIVE_MODE_NONE,
+   ECORE_DRM2_RELATIVE_MODE_CLONE,
+   ECORE_DRM2_RELATIVE_MODE_TO_LEFT,
+   ECORE_DRM2_RELATIVE_MODE_TO_RIGHT,
+   ECORE_DRM2_RELATIVE_MODE_TO_ABOVE,
+   ECORE_DRM2_RELATIVE_MODE_TO_BELOW
+} Ecore_Drm2_Relative_Mode;
+
 /* opaque structure to represent a drm crtc */
 typedef struct _Ecore_Drm2_Crtc Ecore_Drm2_Crtc;
 
@@ -83,6 +95,7 @@ EAPI void ecore_drm2_display_mode_set(Ecore_Drm2_Display *disp, Ecore_Drm2_Displ
 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);
 EAPI int ecore_drm2_display_supported_rotations_get(Ecore_Drm2_Display *disp);
+EAPI void ecore_drm2_display_relative_to_set(Ecore_Drm2_Display *disp, const char *relative);
 
 # endif
 
diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c
index 72eaf9dd9b..4ae0c71b58 100644
--- a/src/lib/ecore_drm2/ecore_drm2_displays.c
+++ b/src/lib/ecore_drm2/ecore_drm2_displays.c
@@ -576,6 +576,7 @@ _ecore_drm2_displays_destroy(Ecore_Drm2_Device *dev)
    EINA_LIST_FREE(dev->displays, disp)
      {
         if (disp->thread) ecore_thread_cancel(disp->thread);
+        eina_stringshare_del(disp->relative.to);
         eina_stringshare_del(disp->serial);
         eina_stringshare_del(disp->model);
         eina_stringshare_del(disp->make);
@@ -934,3 +935,17 @@ ecore_drm2_display_supported_rotations_get(Ecore_Drm2_Display *disp)
    /* return primary plane state supported_rotations */
    return plane->state.current->supported_rotations;
 }
+
+EAPI void
+ecore_drm2_display_relative_mode_set(Ecore_Drm2_Display *disp, Ecore_Drm2_Relative_Mode mode)
+{
+   EINA_SAFETY_ON_NULL_RETURN(disp);
+   disp->relative.mode = mode;
+}
+
+EAPI void
+ecore_drm2_display_relative_to_set(Ecore_Drm2_Display *disp, const char *relative)
+{
+   EINA_SAFETY_ON_NULL_RETURN(disp);
+   eina_stringshare_replace(&disp->relative.to, relative);
+}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 4eaa9ef028..9a98c86bc2 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -263,6 +263,12 @@ struct _Ecore_Drm2_Display
         Ecore_Drm2_Backlight_Type type;
      } backlight;
 
+   struct
+     {
+        const char *to;
+        Ecore_Drm2_Relative_Mode mode;
+     } relative;
+
    struct
      {
         Ecore_Drm2_Display_State *current;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to