[pkg-fso-commits] [SCM] libframeworkd-phonegui branch, upstream, updated. 640da47bfcff755388d0fb8f443eb34e0dea3c72

Julien 'Ainulindale' Cassignol ainulindale at gmail.com
Sat Dec 27 20:50:01 UTC 2008


The following commit has been merged in the upstream branch:
commit dc38359ee26dc586f657b13b13826a3ccf15da32
Author: Julien 'Ainulindale' Cassignol <ainulindale at gmail.com>
Date:   Thu Nov 27 15:37:05 2008 +0100

    shr-settings: Now manages Ophonekitd using its dbus interface.

diff --git a/shr-settings/src/expos/gsm.py b/shr-settings/src/expos/gsm.py
index f325bfa..f347d1e 100644
--- a/shr-settings/src/expos/gsm.py
+++ b/shr-settings/src/expos/gsm.py
@@ -12,94 +12,98 @@
 # (at your option) any later version.
 #
 
-import os
+import os, dbus
 
 
 def debug(msg):
-	print msg
-
-### delayed init sequence for the gsm modem ###
-def _power_on_first(self):
-	os.system("echo 0 > " + self.pows)
-	self.timer_add(1, _power_on_sec, self)
-
-def _power_on_sec(self):
-	os.system("echo 1 > " + self.pows)
-	self.timer_add(1, _power_on_third, self)
-
-def _power_on_third(self):
-	os.system("echo 1 > " + self.res)
-	self.timer_add(1, _power_on_fourth, self)
-
-def _power_on_fourth(self):
-	os.system("echo 0 > " + self.res)
-	self.timer_add(2, _power_on_fifth, self)
-
-def _power_on_fifth(self):
-	self.timer_running = 0
-	if (self.timer_mode == 0):
-		self.power_off
+    print msg
 
 class gsm:
-	def __init__(self, name="GSM"):
-		self.name = name
-		self.default_status = "Qt Bug"
-		self.runnable = 0
-
-		self.status = 0
-		self.status_str = self.default_status
-		self.timer_running = 0
-		self.timer_mode = 0
-		self.pows = "/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on"
-		self.res = "/sys/bus/platform/devices/neo1973-pm-gsm.0/reset"
-		self.dl = "/sys/bus/platform/devices/neo1973-pm-gsm.0/download"
-		#debug("enter init device : " + self.name)
-
-	def power_on(self):
-		#debug('gsm on')
-		self.timer_mode = 1
-		if (self.timer_running == 0):
-			self.timer_running = 1
-			self.timer_add(0.1, _power_on_first, self)
-
-	def power_off(self):
-		#debug('gsm off')
-		self.timer_mode = 0
-		if (self.timer_running == 0):
-			os.system("echo 0 > " + self.pows)
-
-	def after_animate_click(self, edje_obj, emission, source):
-		#debug('onclick')
-		if (self.status):
-			self.power_off()
-			self.status = 0
-			self.status_str = "off"
-		else:
-			self.power_on()
-			self.status = 1
-			self.status_str = "on"
-		self.update_label()
-
-	def init_status(self):
-		#debug('init_status')
-		if self.runnable:
-			self.get_status()
-		else:
-			self.status_str = self.default_status
-		self.update_label()
-
-	def get_status(self):
-		#debug('get_status')
-		file = open(self.pows)
-		status = file.readline()
-		if status.find('0') > -1:
-			self.status = 0
-			self.status_str = "off"
-		else:
-			self.status = 1
-			self.status_str = "on"
-		file.close()
-
-	def update_label(self):
-		#debug('update_label')
-		self.edje_obj.part_text_set("item-status", self.status_str)
+        def __init__(self, dbus, system_bus, name="GSM"):
+                self.name = name
+                self.default_status = "unknown"
+                self.runnable = 1
+
+                self.status = -1
+                self.status_str = self.default_status
+                self.dbus = dbus
+                self.system_bus = system_bus
+                self.dbus_name = "org.shr.ophonekitd.Usage"
+                self.dbus_path = "/org/shr/ophonekitd/Usage"
+                self.dbus_iface = "org.shr.ophonekitd.Usage"
+                debug("enter init device : " + self.name)
+
+        def dbus_get_resource_state(self, state):
+                self.status = 1 if state else 0
+                self.update_label()
+
+        def dbus_set_state(self):
+                debug("state changed")
+
+        def dbus_error_handler(self, error):
+                print "error getting bus names - %s" % str(error)
+                self.status = -1
+                self.status_str = self.default_status
+                self.runnable = 0
+                self.update_label()
+
+        def dbus_owner_changed(self, owner):
+                debug("dbus_owner_changed: " + str(owner))
+
+                if not self.runnable and owner <> "":
+                        self.connect_to_ophonekitd()
+
+                        if self.runnable:
+                                self.get_status()
+
+        def after_animate_click(self, edje_obj, emission, source):
+                debug('onclick')
+                if (self.runnable):
+                        self.status = 0 if self.status == 1 else 1
+                        self.set_state()
+                        self.update_label()
+
+        def init_status(self):
+                #debug('init_status')
+                self.connect_to_ophonekitd()
+
+                if self.runnable:
+                        self.get_state()
+                else:
+                        self.system_bus.watch_name_owner(self.dbus_name, self.dbus_owner_changed)
+                        self.update_label()
+
+        def connect_to_ophonekitd(self):
+                self.runnable = 1
+                try:
+                        self.ophonekitd_obj = self.system_bus.get_object(self.dbus_name, self.dbus_path, introspect=False)
+                except:
+                        debug("Can't get ophonekitd object:")
+                        debug(sys.exc_info()[1])
+                        self.runnable = 0
+                else:
+                        try:
+                                self.ophonekitd_iface = self.dbus.Interface(self.ophonekitd_obj, dbus_interface=self.dbus_iface)
+                        except:
+                                debug("Can't get ophonekitd interface:")
+                                debug(sys.exc_info()[1])
+                                self.runnable = 0
+                        else:
+                                self.ophonekitd_iface.GetResourceState("GSM", reply_handler=self.dbus_get_resource_state, error_handler=self.dbus_error_handler)
+        def get_state(self):
+                self.ophonekitd_iface.GetResourceState("GSM",reply_handler=self.dbus_get_resource_state, error_handler=self.dbus_error_handler)
+
+        def set_state(self):
+                debug('set_state: ' + str(self.status))
+                if self.status == 1:
+                        self.ophonekitd_iface.RequestResource("GSM",reply_handler=self.dbus_set_state, error_handler=self.dbus_error_handler)
+                else:
+                        self.ophonekitd_iface.ReleaseResource("GSM",reply_handler=self.dbus_set_state, error_handler=self.dbus_error_handler)
+
+        def update_label(self):
+                debug('update_label: ' + str(self.status))
+                if self.runnable:
+                        self.status_str = "on" if self.status == 1 else "off"
+                        debug('update_label: ' + self.status_str)
+                self.edje_obj.part_text_set("item-status", self.status_str)
+
diff --git a/shr-settings/src/exposure.py b/shr-settings/src/exposure.py
index 5d21da9..f6b015e 100644
--- a/shr-settings/src/exposure.py
+++ b/shr-settings/src/exposure.py
@@ -91,7 +91,7 @@ class exposure():
 
 		### load and initialize modules ###
 
-		#self.mygsm = gsm()
+		self.mygsm = gsm(dbus, self.system_bus)
 		self.mybt = bt()
 		#self.mygps = gps() # COMMENTED OUT BY QUICKDEV
 		self.mywifi = wifi(self.etk, self.edj, self.edje.Edje, self.edje_file, self.window.evas, dbus, self.system_bus, self.ecore, self.window)
@@ -103,7 +103,7 @@ class exposure():
 		self.xdesktop = xdesktop(self)
 
 		# QUICKDEV: excluded mygps from loaded modules 
-		self.loaded_modules = [self.mybt, self.mybrightness, self.myprofile, self.mysuspend]
+		self.loaded_modules = [self.mygsm, self.mybt, self.mybrightness, self.myprofile, self.mysuspend]
 
 		### gui setup ###
 

-- 
libframeworkd-phonegui



More information about the pkg-fso-commits mailing list