Save state of volume when shutdown and reboot fix for #3652
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -147,6 +147,9 @@ if __name__ == '__main__':
|
||||
|
||||
main()
|
||||
|
||||
hw_manager = hardwaremanager.get_manager()
|
||||
hw_manager.startup()
|
||||
|
||||
try:
|
||||
gtk.main()
|
||||
except KeyboardInterrupt:
|
||||
|
||||
@@ -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
|
||||
@@ -169,6 +170,9 @@ class HomeMyIcon(MyIcon):
|
||||
|
||||
pm = self._get_power_manager()
|
||||
|
||||
hw_manager = hardwaremanager.get_manager()
|
||||
hw_manager.shutdown()
|
||||
|
||||
if env.is_emulator():
|
||||
self._close_emulator()
|
||||
else:
|
||||
@@ -180,6 +184,9 @@ class HomeMyIcon(MyIcon):
|
||||
|
||||
pm = self._get_power_manager()
|
||||
|
||||
hw_manager = hardwaremanager.get_manager()
|
||||
hw_manager.shutdown()
|
||||
|
||||
if env.is_emulator():
|
||||
self._close_emulator()
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user