ecore-drm: Add API function to return output connected state
authorChris Michael <cp.michael@samsung.com>
Mon, 4 May 2015 18:13:21 +0000 (14:13 -0400)
committerChris Michael <cp.michael@samsung.com>
Thu, 7 May 2015 18:39:45 +0000 (14:39 -0400)
Summary: This adds a new API function to check if a given output is connected or not.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_drm/Ecore_Drm.h
src/lib/ecore_drm/ecore_drm_output.c
src/lib/ecore_drm/ecore_drm_private.h

index 54e252e..e5c2972 100644 (file)
@@ -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
index 614abea..f04a890 100644 (file)
@@ -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;
+}
index 75e103a..c7b9c2f 100644 (file)
@@ -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;