All pastes #927928 Raw Edit

Unbenannt

public text v1 · immutable
·published 2008-03-04 17:23 UTC
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()