[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