devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c4461ac5d80508da2e542026d7578df2e7390b7b

commit c4461ac5d80508da2e542026d7578df2e7390b7b
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Mon May 4 14:13:21 2015 -0400

    ecore-drm: Add API function to return output connected state
    
    Summary: This adds a new API function to check if a given output is 
connected or not.
    
    @feature
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/lib/ecore_drm/Ecore_Drm.h         | 12 ++++++++++++
 src/lib/ecore_drm/ecore_drm_output.c  | 12 +++++++++++-
 src/lib/ecore_drm/ecore_drm_private.h |  1 +
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h
index 54e252e..e5c2972 100644
--- a/src/lib/ecore_drm/Ecore_Drm.h
+++ b/src/lib/ecore_drm/Ecore_Drm.h
@@ -788,6 +788,18 @@ EAPI const Eina_List *ecore_drm_devices_get(void);
  */
 EAPI void ecore_drm_screen_size_range_get(Ecore_Drm_Device *dev, int *minw, 
int *minh, int *maxw, int *maxh);
 
+/**
+ * Get if a given output is connected
+ *
+ * @param output The Ecore_Drm_Output to get the connected status of
+ *
+ * @return EINA_TRUE if output is connected, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Drm_Output_Group
+ * @since 1.15
+ */
+EAPI Eina_Bool ecore_drm_output_connected_get(Ecore_Drm_Output *output);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/lib/ecore_drm/ecore_drm_output.c 
b/src/lib/ecore_drm/ecore_drm_output.c
index 614abea..f04a890 100644
--- a/src/lib/ecore_drm/ecore_drm_output.c
+++ b/src/lib/ecore_drm/ecore_drm_output.c
@@ -754,13 +754,15 @@ ecore_drm_outputs_create(Ecore_Drm_Device *dev)
         if (!(conn = drmModeGetConnector(dev->drm.fd, res->connectors[i])))
           continue;
 
-        if (conn->connection != DRM_MODE_CONNECTED) goto next;
+        /* if (conn->connection != DRM_MODE_CONNECTED) goto next; */
 
         /* create output for this connector */
         if (!(output =
               _ecore_drm_output_create(dev, res, conn, x, y, EINA_FALSE)))
           goto next;
 
+        output->connected = (conn->connection == DRM_MODE_CONNECTED);
+
         x += output->current_mode->width;
 
 next:
@@ -1099,3 +1101,11 @@ ecore_drm_output_name_get(Ecore_Drm_Output *output)
 
    return strdup(output->name);
 }
+
+EAPI Eina_Bool
+ecore_drm_output_connected_get(Ecore_Drm_Output *output)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
+
+   return output->connected;
+}
diff --git a/src/lib/ecore_drm/ecore_drm_private.h 
b/src/lib/ecore_drm/ecore_drm_private.h
index 75e103a..c7b9c2f 100644
--- a/src/lib/ecore_drm/ecore_drm_private.h
+++ b/src/lib/ecore_drm/ecore_drm_private.h
@@ -140,6 +140,7 @@ struct _Ecore_Drm_Output
 
    Ecore_Drm_Backlight *backlight;   
 
+   Eina_Bool connected : 1;
    Eina_Bool enabled : 1;
    Eina_Bool cloned : 1;
    Eina_Bool need_repaint : 1;

-- 


Reply via email to