#!/usr/bin/python WIDTH = 480 HEIGHT = 640 FS = False TITLE = "pyphone" WM_INFO = ("pyphone", "pyphone") import os import sys import e_dbus import evas import evas.decorators import edje import edje.decorators import ecore import ecore.evas from dbus import SystemBus, Interface from os import system def on_resize(ee): x, y, w, h = ee.evas.viewport ee.data["main"].size = w, h def on_delete_request(ee): ecore.main_loop_quit() def on_key_down(obj, event, ee): if event.keyname in ("F6", "f"): ee.fullscreen = not ee.fullscreen elif event.keyname == "Escape": ecore.main_loop_quit() class pyphone(edje.Edje): def __init__(self, canvas): edje.Edje.__init__(self, canvas) self.text = [] self.visible = [] f = os.path.splitext(sys.argv[0])[0] + ".edj" self.file_set(f, "main") self.obj = { "sms": self.part_swallow_get("sms"), "phone": self.part_swallow_get("phone"), } #self.obj["sms"].part_text_set("label", "python2") #self.part_text_set("label", "13:37") @edje.decorators.signal_callback("selected", "*") def on_edje_signal_selected(self, emission, source): print "test" def modem_info(array): print array def sim_info(array): o.part_text_set("txt_pinstate_value", str(array["pin_state"])) print array def network_info(array): o.part_text_set("txt_operater_value", array["oper"]) o.part_text_set("txt_signalq_value", str(array["rssi"])); o.part_text_set("txt_networkreg_value", (str(array["lac"])+str(array["ci"]))) o.part_text_set("txt_activitystatus_value", str(array["phone_activity_status"])) if str(array["phone_activity_status"]) == '0': o.part_text_set("txt_clip_number_value", '... waiting ...') #system('killall madplay') else: o.part_text_set("txt_clip_number_value", str(array["cli_number"])) #system('madplay -r --amplify=3 /usr/share/openmoko/sounds/ringtone_simple02.mp3 --fade-in=0:01') #phone-ringing.png in the foreground #o.part_text_visible_set(1) print array def gsmBUSY(string): print string def gsmCRING(string): print string def gsmNO_CARRIER(self, *values): print values def error(string): print string #pypwrd status def state(array): o.part_text_set("txt_chgmode_value", array["chgmode"]) o.part_text_set("txt_battvolt_value", str(array["battvolt"])) o.part_text_set("txt_chgcur_value", str(array["chgcur"])) print array #pygpsd status def PositionChanged(array): o.part_text_set("txt_latitude_value", str(round(array["latitude"],5))) o.part_text_set("txt_longitude_value", str(round(array["longitude"],5))) print array if ecore.evas.engine_type_supported_get("software_x11_16") and \ '-x11' not in sys.argv: ee = ecore.evas.SoftwareX11_16(w=WIDTH, h=HEIGHT) print "using X11_16" else: ee = ecore.evas.SoftwareX11(w=WIDTH, h=HEIGHT) print "using X11" canvas = ee.evas o = pyphone(canvas) o.size = canvas.size o.focus = True o.show() o.on_key_down_add(on_key_down, ee) ee.data["main"] = o ee.callback_delete_request = on_delete_request ee.callback_resize = on_resize ee.title = TITLE ee.name_class = WM_INFO ee.fullscreen = FS ee.show() #connect to dbus dbus_ml = e_dbus.DBusEcoreMainLoop() bus = SystemBus(mainloop=dbus_ml) try: obj = bus.get_object('org.mobile.gsm', '/org/mobile/gsm/RemoteObject') obj_pwr = bus.get_object('org.mobile.pwr', '/org/mobile/pwr/RemoteObject') obj_gps = bus.get_object('org.mobile.gps', '/org/mobile/gps/RemoteObject') except Exception, e: print e raise SystemExit #connect gsm functions to dbus events dbus_interface = 'org.mobile.gsm.RemoteInterface' for fkt in (modem_info, sim_info, network_info, gsmCRING, gsmNO_CARRIER, gsmBUSY, error,): obj.connect_to_signal(fkt.__name__, fkt, dbus_interface=dbus_interface) gsm = Interface(obj, dbus_interface) #get gsm status info on startup gsm.FireModemInfo() gsm.FireNetworkInfo() gsm.FireSimInfo() #connect pwr functions to dbus events dbus_interface = 'org.mobile.pwr.RemoteInterface' for fkt in (state,): obj_pwr.connect_to_signal(fkt.__name__, fkt, dbus_interface=dbus_interface) pwr = Interface(obj_pwr, dbus_interface) #get pwr status info on startup pwr.FireStatus() #connect gps functions to dbus events dbus_interface = 'org.mobile.gps.RemoteInterface' for fkt in (PositionChanged,): obj_gps.connect_to_signal(fkt.__name__, fkt, dbus_interface=dbus_interface) gps = Interface(obj_gps, dbus_interface) #get gps status info on startup pwr.FireStatus() ecore.main_loop_begin()