rendered paste body#!/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()