[meego-commits] 24908: Changes to MeeGo:1.2.0:oss:Update:Testing/meego-panel-devices

shock no_reply at build.meego.com
Wed Jun 13 03:20:00 UTC 2012


Hi,
I have made the following changes to meego-panel-devices in project MeeGo:1.2.0:oss:Update:Testing. Please review and accept ASAP.

Thank You,
shock

[This message was auto-generated]

---

Request #24908:

  submit:   home:shock:branches:MeeGo:1.2.0:oss:Update:Testing/meego-panel-devices(r5)(update) -> MeeGo:1.2.0:oss:Update:Testing/meego-panel-devices


Message:
    Fix BMC #24403: Back light setting should persist after S3

State:   new          2012-06-12T19:16:07 shock
Comment: None



changes files:
--------------
--- meego-panel-devices.changes
+++ meego-panel-devices.changes
@@ -0,0 +1,4 @@
+* Wed Jul 13 2012 Maxzhang <maxzhang at linpus.com> - 0.2.10
+- Add patch4: fix_backlight_setting_change_after_suspend.patch
+  Fix BMC #24403: Backlight setting should persist after S3
+

new:
----
  fix_backlight_setting_change_after_suspend.patch

spec files:
-----------
--- meego-panel-devices.spec
+++ meego-panel-devices.spec
@@ -17,6 +17,7 @@
 Patch0:     0001-volume-tile-Show-the-mute-icon-when-the-volume-value.patch
 Patch1:     0002-storage-import-media-using-banshee-rather-than-bansh.patch
 Patch2:     i18n.patch
+Patch3:     fix_backlight_setting_change_after_suspend.patch
 Requires:   mutter-netbook
 Requires:   gthumb
 Requires:   gvfs-trash
@@ -64,6 +65,8 @@
 %patch1 -p1
 # i18n.patch
 %patch2 -p1
+# fix_backlight_setting_change_after_suspend.patch
+%patch3 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ fix_backlight_setting_change_after_suspend.patch (new)
--- fix_backlight_setting_change_after_suspend.patch
+++ fix_backlight_setting_change_after_suspend.patch
+diff -Nuar meego-panel-devices-0.2.10/src/mpd-brightness-tile.c meego-panel-devices-0.2.10-new/src/mpd-brightness-tile.c
+--- meego-panel-devices-0.2.10/src/mpd-brightness-tile.c	2011-06-06 21:59:47.000000000 +0800
++++ meego-panel-devices-0.2.10-new/src/mpd-brightness-tile.c	2012-06-13 09:36:38.072193318 +0800
+@@ -22,6 +22,14 @@
+ 
+ #include <glib/gi18n.h>
+ 
++#include <math.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <pthread.h>
++#include <fcntl.h>
++#include <sys/inotify.h>
++#include <stdlib.h>
++
+ #include "mpd-battery-device.h"
+ #include "mpd-brightness-tile.h"
+ #include "mpd-display-device.h"
+@@ -33,6 +41,9 @@
+ #define GET_PRIVATE(o) \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), MPD_TYPE_BRIGHTNESS_TILE, MpdBrightnessTilePrivate))
+ 
++#define MAX_BUF_SIZE 1024
++#define BRIGHTNESS_CONIG "/sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness"
++
+ typedef struct
+ {
+   MxLabel             *header;
+@@ -42,12 +53,17 @@
+   MpdDisplayDevice    *display;
+ } MpdBrightnessTilePrivate;
+ 
++int flag = 1;
+ static void
+ update_display_brightness (MpdBrightnessTile *self);
+ 
+ static void
+ update_brightness_display (MpdBrightnessTile *self);
+ 
++static void
++update_brightness_bars (MpdBrightnessTile *self,
++                        float              brightness);
++
+ static MpdDisplayDeviceMode
+ get_display_device_mode (MpdBrightnessTile *self)
+ {
+@@ -165,6 +181,80 @@
+   object_class->dispose = _dispose;
+ }
+ 
++void
++handle(void *arg)
++{
++    int fd, fb, wd;
++    int len, index;
++    int bytes = 0;
++    float brightness, old_brightness;
++    char buffer[1024];
++    char buf[128] = {'\0'};
++    struct inotify_event *event;
++   
++    MpdBrightnessTile *self = (MpdBrightnessTile *)arg;
++    MpdBrightnessTilePrivate *priv = GET_PRIVATE (self);
++
++    /*Create a watcher to watch SYS_DEVICE_FILE*/
++    fd = inotify_init();
++    if(fd < 0)
++    {
++            printf("Failed to initialize inotify.\n");
++    }
++
++    wd = inotify_add_watch(fd, BRIGHTNESS_CONIG, IN_CLOSE_WRITE | IN_CREATE);
++    if(wd < 0)
++    {
++            printf("Can't add watch for %s", BRIGHTNESS_CONIG);
++    }
++
++    /*After SYS_DECICE_FILE written and closed, update slider and gconf file*/
++    while((len = read(fd, buffer, MAX_BUF_SIZE)))
++    {
++        index = 0;
++        while(index < len)
++        {
++            event = (struct inotify_event *)(buffer+index);
++            if(event->wd != wd) continue;
++            if(event -> mask & IN_CLOSE_WRITE)
++	    {
++		fb = open(BRIGHTNESS_CONIG, O_RDONLY | O_CREAT, 0644);
++                if((bytes = read(fb, buf, 4)) == -1)
++                	printf("Open erron\n");
++                close(fb);
++                brightness = (atof(buf))/10;
++                old_brightness = floor(10*mx_slider_get_value(priv->slider))/10;
++              
++		if(flag == 0)
++    			continue;
++                if(brightness == old_brightness)
++			continue;
++
++                g_signal_handlers_disconnect_by_func (priv->slider,
++                                                      _brightness_slider_value_notify_cb,
++                                                      self);
++                if (brightness >= 0)
++		{
++                      mx_slider_set_value (priv->slider, brightness);
++		}
++                else
++                      g_warning ("%s : Brightness is %.1f", G_STRLOC, brightness);
++                g_signal_connect (priv->slider, "notify::value",
++                                  G_CALLBACK (_brightness_slider_value_notify_cb), self);
++		update_brightness_bars (self, brightness);
++
++                g_signal_handlers_disconnect_by_func (priv->display,
++                                                      _display_brightness_notify_cb,
++                                                      self);
++		update_stored_brightness (priv->display, brightness, get_display_device_mode(self));
++                g_signal_connect (priv->display, "notify::brightness",
++                                  G_CALLBACK (_display_brightness_notify_cb), self);
++	    }
++            index += sizeof(struct inotify_event)+event->len;
++        }
++    }
++}
++
+ static void
+ mpd_brightness_tile_init (MpdBrightnessTile *self)
+ {
+@@ -173,6 +263,7 @@
+   ClutterActor  *icon;
+   ClutterActor  *vbox;
+   GError        *error = NULL;
++  pthread_t pid;
+ 
+   mx_box_layout_set_orientation (MX_BOX_LAYOUT (self), MX_ORIENTATION_VERTICAL);
+   mx_box_layout_set_spacing (MX_BOX_LAYOUT (self), MPD_TILE_HEADER_SPACING);
+@@ -231,6 +322,8 @@
+                     G_CALLBACK (_battery_state_notify_cb), self);
+ 
+   update_brightness_display (self);
++  
++  pthread_create(&pid, NULL, (void *)&handle, (void *)self);
+ }
+ 
+ ClutterActor *
+@@ -268,10 +361,10 @@
+   MpdBrightnessTilePrivate *priv = GET_PRIVATE (self);
+   float brightness;
+ 
++  flag = 0;
+   g_signal_handlers_disconnect_by_func (priv->display,
+                                         _display_brightness_notify_cb,
+                                         self);
+-
+   brightness = mx_slider_get_value (priv->slider);
+   mpd_display_device_set_brightness (priv->display,
+                                      brightness,
+@@ -281,6 +374,7 @@
+                     G_CALLBACK (_display_brightness_notify_cb), self);
+ 
+   update_brightness_bars (self, brightness);
++  flag = 1;
+ }
+ 
+ static void
+diff -Nuar meego-panel-devices-0.2.10/src/mpd-display-device.c meego-panel-devices-0.2.10-new/src/mpd-display-device.c
+--- meego-panel-devices-0.2.10/src/mpd-display-device.c	2011-06-06 21:59:47.000000000 +0800
++++ meego-panel-devices-0.2.10-new/src/mpd-display-device.c	2012-06-11 17:52:51.482630903 +0800
+@@ -202,7 +202,7 @@
+   return -1;
+ }
+ 
+-static void
++void
+ update_stored_brightness (MpdDisplayDevice      *self,
+                           float                  brightness,
+                           MpdDisplayDeviceMode   mode)
+diff -Nuar meego-panel-devices-0.2.10/src/mpd-display-device.h meego-panel-devices-0.2.10-new/src/mpd-display-device.h
+--- meego-panel-devices-0.2.10/src/mpd-display-device.h	2011-06-06 21:59:47.000000000 +0800
++++ meego-panel-devices-0.2.10-new/src/mpd-display-device.h	2012-06-11 17:55:09.933633632 +0800
+@@ -65,6 +65,11 @@
+ MpdDisplayDevice *
+ mpd_display_device_new (void);
+ 
++void
++update_stored_brightness (MpdDisplayDevice      *self,
++                          float                  brightness,
++                          MpdDisplayDeviceMode   mode);
++
+ bool
+ mpd_display_device_is_enabled (MpdDisplayDevice  *self);
+ 

++++++ meego-panel-devices.yaml
--- meego-panel-devices.yaml
+++ meego-panel-devices.yaml
@@ -14,7 +14,7 @@
     - 0001-volume-tile-Show-the-mute-icon-when-the-volume-value.patch
     - 0002-storage-import-media-using-banshee-rather-than-bansh.patch
     - i18n.patch
-
+    - fix_backlight_setting_change_after_suspend.patch
 Requires:
     - mutter-netbook
     - gthumb



More information about the MeeGo-commits mailing list