diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-24 19:08:26 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-24 19:08:26 (GMT) |
commit | 9b68754ba5c1f63d7ca6adfee3ef6114628c175e (patch) | |
tree | 351767f819241965d51f7d5aeb600d3226c12bee | |
parent | 90bf68d0f3a7f96561dfe22c46721db585f4bdc9 (diff) | |
parent | e3f97b042f2ffddcef8d10ae6d9bd3cb4f6c19c1 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Conflicts:
NEWS
-rw-r--r-- | shell/hardware/hardwaremanager.py | 13 | ||||
-rwxr-xr-x | shell/sugar-shell | 3 | ||||
-rw-r--r-- | shell/view/home/HomeBox.py | 7 | ||||
-rw-r--r-- | sugar/profile.py | 7 |
4 files changed, 30 insertions, 0 deletions
diff --git a/shell/hardware/hardwaremanager.py b/shell/hardware/hardwaremanager.py index 5a85707..79b932f 100644 --- a/shell/hardware/hardwaremanager.py +++ b/shell/hardware/hardwaremanager.py @@ -21,6 +21,8 @@ import gst import gst.interfaces from hardware.nmclient import NMClient +from sugar.profile import get_profile +from sugar import env _HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager' _HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager' @@ -80,6 +82,17 @@ class HardwareManager(object): logging.error('Cannot mute the audio channel') self._mixer.set_mute(self._master, mute) + def startup(self): + if env.is_emulator() is False: + profile = get_profile() + self.set_volume(profile.sound_volume) + + def shutdown(self): + if env.is_emulator() is False: + profile = get_profile() + profile.sound_volume = self.get_volume() + profile.save() + def set_dcon_freeze(self, frozen): if not self._service: return diff --git a/shell/sugar-shell b/shell/sugar-shell index 93f2faa..106a9d7 100755 --- a/shell/sugar-shell +++ b/shell/sugar-shell @@ -147,6 +147,9 @@ if __name__ == '__main__': main() + hw_manager = hardwaremanager.get_manager() + hw_manager.startup() + try: gtk.main() except KeyboardInterrupt: diff --git a/shell/view/home/HomeBox.py b/shell/view/home/HomeBox.py index ddcac66..79628ba 100644 --- a/shell/view/home/HomeBox.py +++ b/shell/view/home/HomeBox.py @@ -24,6 +24,7 @@ import gtk import hippo import dbus +from hardware import hardwaremanager from sugar.graphics import style from sugar.graphics.xocolor import XoColor from sugar.graphics.palette import Palette, CanvasInvoker @@ -167,6 +168,9 @@ class _MyIcon(MyIcon): pm = self._get_power_manager() + hw_manager = hardwaremanager.get_manager() + hw_manager.shutdown() + if env.is_emulator(): self._close_emulator() else: @@ -178,6 +182,9 @@ class _MyIcon(MyIcon): pm = self._get_power_manager() + hw_manager = hardwaremanager.get_manager() + hw_manager.shutdown() + if env.is_emulator(): self._close_emulator() else: diff --git a/sugar/profile.py b/sugar/profile.py index b0dc8d3..06084b7 100644 --- a/sugar/profile.py +++ b/sugar/profile.py @@ -25,6 +25,7 @@ from sugar import util from sugar.graphics.xocolor import XoColor DEFAULT_JABBER_SERVER = 'olpc.collabora.co.uk' +DEFAULT_VOLUME = 81 _profile = None @@ -93,6 +94,8 @@ class Profile(object): _set_key(cp, 'Jabber', 'Registered', self.jabber_registered) + _set_key(cp, 'Sound', 'Volume', self.sound_volume) + f = open(self._config_path, 'w') cp.write(f) f.close() @@ -115,6 +118,10 @@ class Profile(object): self.jabber_registered = True if cp.has_option('Server', 'Backup1'): self.backup1 = cp.get('Server', 'Backup1') + if cp.has_option('Sound', 'Volume'): + self.sound_volume = float(cp.get('Sound', 'Volume')) + else: + self.sound_volume = DEFAULT_VOLUME del cp |