[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