devilhorns pushed a commit to branch master.

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

commit af6cb4e84a92de053aa347c7d06e2c53c0f2fce4
Author: vivek <[email protected]>
Date:   Wed Sep 24 09:58:57 2014 -0400

    ecore-drm: Added private functions to get brightness levels in backlight
    
    Summary:
     Added private internal functions to get various brightness levels
       1) Added _ecore_drm_actual_brightness_get to get Actual brightness
       2) Added _ecore_drm_max_brightness_get to get Max brightness
       3) Added _ecore_drm_brightness_get to get Brightness
     These functions will eventually be exposed with an API for ecore-drm
    to get/set the backlight level for an output.
    
    @feature
    
    Signed-off-by: vivek <[email protected]>
    
    Reviewers: devilhorns
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D1482
---
 src/lib/ecore_drm/ecore_drm_output.c  | 69 ++++++++++++++++++++++++++++-------
 src/lib/ecore_drm/ecore_drm_private.h |  8 ++--
 2 files changed, 60 insertions(+), 17 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm_output.c 
b/src/lib/ecore_drm/ecore_drm_output.c
index 8f85f8b..6fce004 100644
--- a/src/lib/ecore_drm/ecore_drm_output.c
+++ b/src/lib/ecore_drm/ecore_drm_output.c
@@ -290,14 +290,62 @@ _ecore_drm_output_mode_add(Ecore_Drm_Output *output, 
drmModeModeInfo *info)
    return mode;
 }
 
+static double
+_ecore_drm_output_brightness_get(Ecore_Drm_Backlight *backlight)
+{
+   const char *brightness = NULL;
+   double ret;
+
+   brightness = eeze_udev_syspath_get_sysattr(backlight->device, "brightness");
+   if (!brightness) return 0;
+
+   ret = strtod(brightness, NULL);
+   if (ret < 0)
+     ret = 0;
+
+   return ret;
+}
+
+static double
+_ecore_drm_output_actual_brightness_get(Ecore_Drm_Backlight *backlight)
+{
+   const char *brightness = NULL;
+   double ret;
+
+   brightness = eeze_udev_syspath_get_sysattr(backlight->device, 
"actual_brightness");
+   if (!brightness) return 0;
+
+   ret = strtod(brightness, NULL);
+   if (ret < 0)
+     ret = 0;
+
+   return ret;
+}
+
+static double
+_ecore_drm_output_max_brightness_get(Ecore_Drm_Backlight *backlight)
+{
+   const char *brightness = NULL;
+   double ret;
+
+   brightness = eeze_udev_syspath_get_sysattr(backlight->device, 
"max_brightness");
+   if (!brightness) return 0;
+
+   ret = strtod(brightness, NULL);
+   if (ret < 0)
+     ret = 0;
+
+   return ret;
+}
+
 static Ecore_Drm_Backlight *
-_ecore_drm_backlight_init(Ecore_Drm_Device *dev EINA_UNUSED, uint32_t 
conn_type)
+_ecore_drm_output_backlight_init(Ecore_Drm_Output *output EINA_UNUSED, 
uint32_t conn_type)
 {
    Ecore_Drm_Backlight *backlight = NULL;
    Ecore_Drm_Backlight_Type type = 0;
    Eina_List *devs, *l;
    Eina_Bool found = EINA_FALSE;
-   const char *device, *devtype, *tmpdevice;
+   const char *device, *devtype;
 
    if (!(devs = eeze_udev_find_by_type(EEZE_UDEV_TYPE_BACKLIGHT, NULL)))
      devs = eeze_udev_find_by_type(EEZE_UDEV_TYPE_LEDS, NULL);
@@ -327,27 +375,20 @@ cont:
         eina_stringshare_del(devtype);
         if (found)
           {
-             tmpdevice = eina_stringshare_add(device);
              break;
           }
      }
 
-   EINA_LIST_FREE(devs, device)
-     eina_stringshare_del(device);
-
-   if (!found) return NULL;
+   if (!found) goto out;
 
    if ((backlight = calloc(1, sizeof(Ecore_Drm_Backlight))))
      {
         backlight->type = type;
-        /* NB: This sets backlight directory path to /dev/...
-         * Am not sure yet if this is the desired path, or if we want the 
-         * actual /sys path. If we want Just the syspath then 'tmpdevice' is 
-         * already equal to that */
-        backlight->dir_path = eeze_udev_syspath_get_devpath(tmpdevice);
+        backlight->device = eina_stringshare_add(device);
      }
-
-   eina_stringshare_del(tmpdevice);
+out:
+   EINA_LIST_FREE(devs, device);
+      eina_stringshare_del(device);
 
    return backlight;
 }
diff --git a/src/lib/ecore_drm/ecore_drm_private.h 
b/src/lib/ecore_drm/ecore_drm_private.h
index 2f0904d..da84614 100644
--- a/src/lib/ecore_drm/ecore_drm_private.h
+++ b/src/lib/ecore_drm/ecore_drm_private.h
@@ -103,9 +103,11 @@ typedef enum _Ecore_Drm_Backlight_Type
 
 typedef struct _Ecore_Drm_Backlight
 {
-   const char *dir_path;
-   int brightness_max;
-   int brightness;
+   const char *device;
+   double brightness_max;
+   double brightness_actual;
+   double brightness;
+
    Ecore_Drm_Backlight_Type type;
 } Ecore_Drm_Backlight;
 

-- 


Reply via email to