[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82

Michael 'Mickey' Lauer mickey at vanille-media.de
Mon Feb 2 18:51:30 UTC 2009


The following commit has been merged in the master branch:
commit 67e0266f3fca28f66e1c2e02f9752f5d948e4275
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Mon Dec 1 14:34:21 2008 +0100

    ogsmd: Implement org.freesmartphone.GSM.Device.[Get|Set]SpeakerVolume

diff --git a/ChangeLog b/ChangeLog
index 3ddff49..c30352e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,10 @@
 	  before suspending, after resuming, before shutting down, before rebooting.
 	  This fixes FSO ticket #287.
 
+2008-12-01	Michael Lauer	<mickey at openmoko.org>
+
+	* [ogsmd] Implement org.freesmartphone.GSM.Device.[Get|Set]SpeakerVolume
+
 2008-11-30	Michael Lauer	<mickey at openmoko.org>
 
 	* [ogsmd] Start with CINTERION MC75 support
diff --git a/framework/subsystems/ogsmd/device.py b/framework/subsystems/ogsmd/device.py
index 648b828..c893317 100644
--- a/framework/subsystems/ogsmd/device.py
+++ b/framework/subsystems/ogsmd/device.py
@@ -11,7 +11,7 @@ Module: device
 """
 
 MODULE_NAME = "ogsmd.device"
-__version__ = "0.9.5"
+__version__ = "0.9.6"
 
 from framework import resource
 from modems import modemFactory, allModems, setCurrentModem
@@ -149,6 +149,18 @@ class Device( resource.Resource ):
     def SetSimBuffersSms( self, sim_buffers_sms, dbus_ok, dbus_error ):
         mediator.DeviceSetSimBuffersSms( self, dbus_ok, dbus_error, sim_buffers_sms=sim_buffers_sms )
 
+    @dbus.service.method( DBUS_INTERFACE_DEVICE, "", "i",
+                          async_callbacks=( "dbus_ok", "dbus_error" ) )
+    @resource.checkedmethod
+    def GetSpeakerVolume( self, dbus_ok, dbus_error ):
+        mediator.DeviceGetSpeakerVolume( self, dbus_ok, dbus_error )
+
+    @dbus.service.method( DBUS_INTERFACE_DEVICE, "i", "",
+                          async_callbacks=( "dbus_ok", "dbus_error" ) )
+    @resource.checkedmethod
+    def SetSpeakerVolume( self, modem_volume, dbus_ok, dbus_error ):
+        mediator.DeviceSetSpeakerVolume( self, dbus_ok, dbus_error, modem_volume=modem_volume )
+
     #
     # dbus org.freesmartphone.GSM.SIM
     #
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index c1addd4..56a0262 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -383,6 +383,30 @@ class DeviceSetSimBuffersSms( DeviceMediator ):
         commchannel = self._object.modem.communicationChannel( "UnsolicitedMediator" )
         commchannel.enqueue( "+CNMI=%s" % params, self.responseFromChannel, self.errorFromChannel )
 
+#=========================================================================#
+class DeviceGetSpeakerVolume( DeviceMediator ):
+#=========================================================================#
+    def trigger( self ):
+        self._commchannel.enqueue( "+CLVL?", self.responseFromChannel, self.errorFromChannel )
+
+    @logged
+    def responseFromChannel( self, request, response ):
+        if response[-1] == "OK" and response[0].startswith( "+CLVL" ):
+            value = int( self._rightHandSide( response[0] ) ) * 100 / 255
+            self._ok( value )
+        else:
+            DeviceMediator.responseFromChannel( self, request, response )
+
+#=========================================================================#
+class DeviceSetSpeakerVolume( DeviceMediator ):
+#=========================================================================#
+    def trigger( self ):
+        if 0 <= self.modem_volume <= 100:
+            value = self.modem_volume * 255 / 100
+            self._commchannel.enqueue( "+CLVL=%d" % value, self.responseFromChannel, self.errorFromChannel )
+        else:
+            self._error( error.InvalidParameter( "Volume needs to be within [ 0, 100 ]." ) )
+
 #
 # SIM Mediators
 #

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list