105 Commits (main)

Author SHA1 Message Date
emdete 343ce9be5a always check for errors!
git-svn-id: http://www.neo1973-germany.de/svn@179 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau a364a9459e more than 4 digist for pin are possible
git-svn-id: http://www.neo1973-germany.de/svn@172 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 6005068e07 add some more gps status information
git-svn-id: http://www.neo1973-germany.de/svn@171 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau e0864bdd30 add gps status edje
git-svn-id: http://www.neo1973-germany.de/svn@170 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau c6fc5cc11e add fix or no fix
git-svn-id: http://www.neo1973-germany.de/svn@169 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 1d4693fdcb click 2, click dial, power gps on/off
git-svn-id: http://www.neo1973-germany.de/svn@168 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 2f044ce7d9 add blinkenlights if phone ringing
git-svn-id: http://www.neo1973-germany.de/svn@149 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 5b8c60044b add screenlock/unlock. press # for 2 sec
git-svn-id: http://www.neo1973-germany.de/svn@148 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau e5cc83fe82 show incomming number
git-svn-id: http://www.neo1973-germany.de/svn@141 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau cd4acf969e update blackwhite theme
git-svn-id: http://www.neo1973-germany.de/svn@140 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 387dafaf5d remove the timer for backspace. thx thomas ;)
git-svn-id: http://www.neo1973-germany.de/svn@139 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
thomasg c882ebc859 git-svn-id: http://www.neo1973-germany.de/svn@138 46df4e5c-bc4e-4628-a0fc-830ba316316d 16 years ago
fgau cd8cc144aa cosmetic repair
git-svn-id: http://www.neo1973-germany.de/svn@137 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 6c2757563f add special backspace (only blackwhite theme)
git-svn-id: http://www.neo1973-germany.de/svn@136 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau fd1f322c6d rename something in dialer_incall.edc
git-svn-id: http://www.neo1973-germany.de/svn@135 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa c928be9617 Fix improper call handing surrounding gsm_phone_call_start and gsm_phone_ringing
git-svn-id: http://www.neo1973-germany.de/svn@134 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 2cd242f769 add some pix for blackwhite theme
git-svn-id: http://www.neo1973-germany.de/svn@133 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 814c3c2c7d add a new dialer_incall.edc (only blackwhite theme)
git-svn-id: http://www.neo1973-germany.de/svn@132 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau a8f9e5c2c8 add display_time
git-svn-id: http://www.neo1973-germany.de/svn@131 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 0cdeb0797b reduced numberdisplay field
git-svn-id: http://www.neo1973-germany.de/svn@130 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 68653a2a17 set default theme
git-svn-id: http://www.neo1973-germany.de/svn@129 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 90fb77598d add operator and signal strength
git-svn-id: http://www.neo1973-germany.de/svn@128 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 6b9a7d964f Added authors
git-svn-id: http://www.neo1973-germany.de/svn@127 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa df4b16c228 Add evas image and font caching
git-svn-id: http://www.neo1973-germany.de/svn@126 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau fb27f65bcb add End Call
git-svn-id: http://www.neo1973-germany.de/svn@125 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 1a15a98a75 Fix signal callback
git-svn-id: http://www.neo1973-germany.de/svn@124 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 24fa27ff11 Add missing join() in MainScreen.on_edje_numberkey_triggered()
Add phone status callbacks to PyneoControl (gsm_phone_ringing and friends)
Change if/if/if structure to if/elif/elif to be more efficient
Make PyneoControl able to send parameters to callbacks when they're called
Use these parameters to submit values where meaningful (e.g. sim_key_required)
Make Dialer class switch screens on call status changes



git-svn-id: http://www.neo1973-germany.de/svn@123 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 02593e9bb2 Make PyneoControl.gsm_hangup() delete terminated calls from its internal list
git-svn-id: http://www.neo1973-germany.de/svn@122 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 6f254d30e6 Make PyneoControl.gsm_dial() work as expected
Add PyneoControl.gsm_hangup()



git-svn-id: http://www.neo1973-germany.de/svn@121 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa ce0260dbc1 Rework SIM D-Bus object intialization, placing it in its own method so it can have its own try-again-timer
Make debug output a little more descriptive



git-svn-id: http://www.neo1973-germany.de/svn@120 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 2a739e1378 Remove PyneoController's "init" event and the corresponding callbacks. It was part of the initial PyneoControl draft, no longer used.
git-svn-id: http://www.neo1973-germany.de/svn@119 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa bff85c8a79 Simplify handling of PyneoController._callbacks
git-svn-id: http://www.neo1973-germany.de/svn@118 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 60f1bd4e8f split the dbus initialisation and fixed gsm_wireless_status
git-svn-id: http://www.neo1973-germany.de/svn@117 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 8e6d08c3b2 Rename PyneoInterface to PyneoController, as things had to be redesigned
Add generic callbacks to PyneoController
Enhance GSM handling in PyneoController
Make MainScreen interface with PyneoController



git-svn-id: http://www.neo1973-germany.de/svn@116 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 8f99c6edd8 Remove unneeded edje_cc comment at end of file
Make spaces between classes two lines long
Add PyneoInterface singleton class
Rename global TITLE constant to APP_TITLE
Add initial callback structure, preparing GUI integration



git-svn-id: http://www.neo1973-germany.de/svn@115 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau fe4d2bb963 add files for blackwhite theme
git-svn-id: http://www.neo1973-germany.de/svn@114 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau b3b00bb611 added isdigit in correct syntax
git-svn-id: http://www.neo1973-germany.de/svn@111 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 5064c05317 Make epydial able to handle multiple themes
Update the locations in data/
Update the theme compile script



git-svn-id: http://www.neo1973-germany.de/svn@110 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa aedb86b36d Add Dialer.get_evas()
Rename parameters from "main" to "screen_manager", as that's what the Dialer class is 



git-svn-id: http://www.neo1973-germany.de/svn@109 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 6465961301 Rename TestView to Dialer
Rename Dialer.groups to Dialer.screens
Rename *_GROUP_NAME to *_SCREEN_NAME
Add Dialer.show_screen() method



git-svn-id: http://www.neo1973-germany.de/svn@108 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa efe7084165 Rename dialer main screen theme file
Add "in call" screen theme file
Rework TestView and EdjeGroup classes to allow the use of multiple edje groups and corresponding theme files
Add compile_theme script, making use of easy_e17
Fix bug in EdjeGroup.__init__() that made use of newly renamed variable f



git-svn-id: http://www.neo1973-germany.de/svn@107 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 75cfd64932 fixed the star issue ;)
git-svn-id: http://www.neo1973-germany.de/svn@106 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 97b8bdf84e add python foo with help from the master. autoscale for display is ... TODO: scrolling to left
git-svn-id: http://www.neo1973-germany.de/svn@105 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau c126221a2a 4 digits for sim pin. TODO: the first digit is not visible
git-svn-id: http://www.neo1973-germany.de/svn@104 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 72cf62094a only numerics for sim pin
git-svn-id: http://www.neo1973-germany.de/svn@103 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 8f56a23473 #!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
__author__ = ""
__version__ = "prototype"
__copyright__ = "Copyright (c) 2008"
__license__ = "GPL3"

WIDTH = 480
HEIGHT = 640
FRAMETIME = 1.0 / 20
FULLSCREEN = True
TITLE = "epydial"
WM_INFO = ("epydial", "epydial")
EDJE_GROUP_NAME = "pyneo/dialer/main"
EDJE_FILE_NAME = "data/themes/dialer.edj"

from datetime import datetime
from dbus import SystemBus
import os
import sys
import time

import e_dbus
import ecore
import ecore.evas
import edje.decorators
import edje
import evas.decorators

from pyneo.dbus_support import *
from pyneo.sys_support import pr_set_name

from ConfigParser import SafeConfigParser

class EdjeGroup(edje.Edje):
	def __init__(self, main, group):
		self.main = main
		
		if not os.path.exists(EDJE_FILE_NAME):
			raise IOError("Edje theme file not found: " + EDJE_FILE_NAME)
		
		try:
			edje.Edje.__init__(self, self.main.evas_canvas.evas_obj.evas, file=EDJE_FILE_NAME, group=group)
		except edje.EdjeLoadError, e:
			raise SystemExit("Error loading %s: %s" % (f, e))
		
		self.size = self.main.evas_canvas.evas_obj.evas.size

class MainScreen(EdjeGroup):
	def __init__(self, main):
		EdjeGroup.__init__(self, main, EDJE_GROUP_NAME)
		self.text = []
		
		dbus_ml = e_dbus.DBusEcoreMainLoop()
		self.system_bus = SystemBus(mainloop=dbus_ml)
		
		ecore.timer_add(5, self.init_dbus)

	def init_dbus(self):
		try:
			self.gsm = object_by_url('dbus:///org/pyneo/GsmDevice')
			self.wireless = object_by_url('dbus:///org/pyneo/gsmdevice/Network')
			self.keyring = object_by_url('dbus:///org/pyneo/GsmDevice')
		except Exception, e:
			print e
			#if not self.dbus_timer:
			#	self.dbus_timer = ecore.timer_add(2, self.init_dbus)
			# We had an error, keep the timer running
			#return True
		
		# No error, all went well
		#if self.dbus_timer: self.dbus_timer.stop()
		# D-Bus is ready, let's init GSM
		self.gsm_on()

	def gsm_on(self):
		try:
			if self.gsm.GetPower('sample', dbus_interface=DIN_POWERED, ):
				print '---', 'gsm device is already on'
			else:
				self.gsm.SetPower('sample', True, dbus_interface=DIN_POWERED, )
				print '---', 'switching device on'
		except Exception, e:
			print e
			#if not self.gsm_timer:
			#	self.gsm_timer = ecore.timer_add(5, self.gsm_on)
			# We had an error, keep the timer running
			#return True
		# No error
		#if self.gsm_timer: self.gsm_timer.stop()
		# GSM ready, let's ask SIM PIN
		self.sim_pin()

	def sim_pin(self):
		self.res = dedbusmap(self.keyring.GetOpened(dbus_interface=DIN_KEYRING))
		if self.res['code'] != 'READY':
			print '---', 'opening keyring'
			self.part_text_set("numberdisplay_text", "Enter " + self.res['code'])
			self.res = dedbusmap(self.keyring.GetOpened(dbus_interface=DIN_KEYRING))
		else:
			print '---', 'already authorized'
			self.nw_register()

	def nw_register(self):
		self.nw_res = dedbusmap(self.wireless.GetStatus(dbus_interface=DIN_WIRELESS))
		if not self.nw_res['stat'] in (1, 5, ):
			print '---', 'registering to gsm network'
			self.wireless.Register(dbus_interface=DIN_WIRELESS)
			self.nw_res = dedbusmap(self.wireless.GetStatus(dbus_interface=DIN_WIRELESS))
		else:
			self.part_text_set("numberdisplay_text", "please dial")
			print '---', 'already registered'

	@edje.decorators.signal_callback("dialer_send", "*")
	def on_edje_signal_numberkey_triggered(self, emission, source):
		if self.res['code'] != 'READY':
			if source in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#", "*", ):
				self.text.append(source)
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "backspace":
				self.text = self.text[:-1]
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "dial":
				print '---', 'send pin'
				self.keyring.Open(''.join(self.text), dbus_interface=DIN_KEYRING, )
				self.part_text_set("numberdisplay_text", "register ...")
				self.nw_register()
		else:
			if source in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#", "*", ):
				self.text.append(source)
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "backspace":
				self.text = self.text[:-1]
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "dial":
				print '---', 'dial number'
				self.part_text_set("numberdisplay_text", "calling ...")
				os.system('alsactl -f /usr/share/openmoko/scenarios/gsmhandset.state restore')
				name = self.wireless.Initiate(''.join(self.text), dbus_interface=DIN_VOICE_CALL_INITIATOR, timeout=200, )
				time.sleep(20)
				call = object_by_url(name)
				call.Hangup(dbus_interface=DIN_CALL)

class TestView(object):
	def __init__(self):
		edje.frametime_set(FRAMETIME)
		self.evas_canvas = EvasCanvas(FULLSCREEN, "x11-16")
		
		self.groups = {}
		self.groups[EDJE_GROUP_NAME] = MainScreen(self)
		self.evas_canvas.evas_obj.data[EDJE_GROUP_NAME] = self.groups[EDJE_GROUP_NAME]
		self.groups[EDJE_GROUP_NAME].show()
		self.groups[EDJE_GROUP_NAME].part_text_set("numberdisplay_text", "wait ...")

class EvasCanvas(object):
	def __init__(self, fullscreen, engine_name):
		if engine_name == "x11":
			engine = ecore.evas.SoftwareX11
#		elif engine_name == "x11-16":
#			if ecore.evas.engine_type_supported_get("software_x11_16"):
#				engine = ecore.evas.SoftwareX11_16
		else:
			print "warning: x11-16 is not supported, falling back to x11"
			engine = ecore.evas.SoftwareX11
		
		self.evas_obj = engine(w=WIDTH, h=HEIGHT)
		self.evas_obj.callback_delete_request = self.on_delete_request
		self.evas_obj.callback_resize = self.on_resize
		
		self.evas_obj.title = TITLE
		self.evas_obj.name_class = WM_INFO
		self.evas_obj.fullscreen = fullscreen
#		self.evas_obj.size = str(WIDTH) + 'x' + str(HEIGHT)
		self.evas_obj.show()

	def on_resize(self, evas_obj):
		x, y, w, h = evas_obj.evas.viewport
		size = (w, h)
		for key in evas_obj.data.keys():
			evas_obj.data[key].size = size

	def on_delete_request(self, evas_obj):
		ecore.main_loop_quit()

if __name__ == "__main__":
	TestView()
	ecore.main_loop_begin()

'''
export LDFLAGS="$LDFLAGS -L/opt/e17/lib"
export PKG_CONFIG_PATH="/opt/e17/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PATH:/opt/e17/bin"
export PYTHONPATH="/home/fgau/usr/lib/python2.5/site-packages"

edje_cc -v -id ../images -fd ../fonts *edc
'''



git-svn-id: http://www.neo1973-germany.de/svn@102 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa af2f8a6f9b Rename edje_group and dialer_main classes to EdjeGroup and MainScreen, respectively
git-svn-id: http://www.neo1973-germany.de/svn@101 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 25495587d0 Simplify EvasCanvas.__init__() parameters
Rename f in EvasCanvas.__init__() to engine



git-svn-id: http://www.neo1973-germany.de/svn@100 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 974ba5cae1 Add FRAMETIME constant to remove magic number supplied to edje.frametime_set()
Make EvasCanvas.__init__() honor the WIDTH and HEIGHT constants



git-svn-id: http://www.neo1973-germany.de/svn@99 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 1fc87d074d Group imports by category (system, efl, others)
Sort imports alphabetically
Remove duplicate imports (import os / import os.path)
Remove comments where there was already code in the same line (comments on separate lines are better)
Fix whitespace / tab indentation where necessary



git-svn-id: http://www.neo1973-germany.de/svn@98 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 3b5fd004fa Remove code that checks for the edje theme file since the execution order is non-linear
Introduce the EDJE_FILE_NAME global constant to avoid having magic strings all over the place
Add a check for the edje theme file in edje_group.__init__()
On error, raise an IOError with message string, not a raw string exception as in the initial code



git-svn-id: http://www.neo1973-germany.de/svn@97 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 8a22c63d1e Introduce EDJE_GROUP_NAME to replace static magic strings
git-svn-id: http://www.neo1973-germany.de/svn@96 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
Abraxa 4cd74d1fea Rename global variable FS to FULLSCREEN in order to make it self-descriptive
Make EvasCanvas.__init__() honor the fullscreen parameter instead of using the global variable directly




git-svn-id: http://www.neo1973-germany.de/svn@95 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 6be4f6a3a5 #!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
__author__ = ""
__version__ = "prototype"
__copyright__ = "Copyright (c) 2008"
__license__ = "GPL3"

WIDTH = 480
HEIGHT = 640
FS = True
TITLE = "epydial"
WM_INFO = ("epydial", "epydial")

import os
import sys
import ecore
import ecore.evas
import evas.decorators
import edje.decorators
import edje
from dbus import SystemBus
from e_dbus import DBusEcoreMainLoop
import e_dbus
from datetime import datetime
from os import system # alsactl is used with a sytem call
from pyneo.dbus_support import *
from pyneo.sys_support import pr_set_name

from ConfigParser import SafeConfigParser
from os.path import exists
import time
from time import sleep

#import sqlite3

for i in "data/themes/dialer.edj".split():
	if os.path.exists( i ):
		global edjepath
		edjepath = i
		break
else:
	raise "Edje not found"
	
class edje_group(edje.Edje):
	def __init__(self, main, group):
		self.main = main
		global edjepath
		f = edjepath
		try:
			edje.Edje.__init__(self, self.main.evas_canvas.evas_obj.evas, file=f, group=group)
		except edje.EdjeLoadError, e:
			raise SystemExit("error loading %s: %s" % (f, e))
		self.size = self.main.evas_canvas.evas_obj.evas.size
		
class dialer_main(edje_group):
	def __init__(self, main):
		edje_group.__init__(self, main, "pyneo/dialer/main")
		self.text = []

		dbus_ml = e_dbus.DBusEcoreMainLoop()
		self.system_bus = SystemBus(mainloop=dbus_ml)
		ecore.timer_add(5, self.init_dbus)

	def init_dbus(self):
		try:
			self.gsm = object_by_url('dbus:///org/pyneo/GsmDevice')
			self.wireless = object_by_url('dbus:///org/pyneo/gsmdevice/Network')
			self.keyring = object_by_url('dbus:///org/pyneo/GsmDevice')
		except Exception, e:
			print e
			#if not self.dbus_timer:
			#	self.dbus_timer = ecore.timer_add(2, self.init_dbus)
			# We had an error, keep the timer running
			#return True

		# No error, all went well
		#if self.dbus_timer: self.dbus_timer.stop()
		# D-Bus is ready, let's init GSM
		self.gsm_on()

	def gsm_on(self):
		try:
			if self.gsm.GetPower('sample', dbus_interface=DIN_POWERED, ):
				print '---', 'gsm device is already on'
			else:
				self.gsm.SetPower('sample', True, dbus_interface=DIN_POWERED, )
				print '---', 'switching device on'
		except Exception, e:
			print e
			#if not self.gsm_timer:
			#	self.gsm_timer = ecore.timer_add(5, self.gsm_on)
			# We had an error, keep the timer running
			#return True
		# No error
		#if self.gsm_timer: self.gsm_timer.stop()
		# GSM ready, let's ask SIM PIN
		self.sim_pin()

	def sim_pin(self):
		self.res = dedbusmap(self.keyring.GetOpened(dbus_interface=DIN_KEYRING))
		if self.res['code'] != 'READY': # TODO unify!
			print '---', 'opening keyring'
			self.part_text_set("numberdisplay_text", "Enter " + self.res['code'])
			self.res = dedbusmap(self.keyring.GetOpened(dbus_interface=DIN_KEYRING))
		else:
			print '---', 'already authorized'
			self.nw_register()
			
	def nw_register(self):
		self.nw_res = dedbusmap(self.wireless.GetStatus(dbus_interface=DIN_WIRELESS))
		if not self.nw_res['stat'] in (1, 5, ): # TODO unify!
			print '---', 'registering to gsm network'
			self.wireless.Register(dbus_interface=DIN_WIRELESS)
			self.nw_res = dedbusmap(self.wireless.GetStatus(dbus_interface=DIN_WIRELESS))
		else:
			self.part_text_set("numberdisplay_text", "please dial")
			print '---', 'already registered'

	@edje.decorators.signal_callback("dialer_send", "*")
	def on_edje_signal_numberkey_triggered(self, emission, source):
		if self.res['code'] != 'READY':
			if source in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#", "*", ):
				self.text.append(source)
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "backspace":
				self.text = self.text[:-1]
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "dial":
				print '---', 'send pin'
				self.keyring.Open(''.join(self.text), dbus_interface=DIN_KEYRING, )
				self.part_text_set("numberdisplay_text", "register ...")
				self.nw_register()
		else:
			if source in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "#", "*", ):
				self.text.append(source)
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "backspace":
				self.text = self.text[:-1]
				print ''.join(self.text)
				self.part_text_set("numberdisplay_text", "".join(self.text))
			elif source == "dial":
				print '---', 'dial number'
				self.part_text_set("numberdisplay_text", "calling ...")
				system('alsactl -f /usr/share/openmoko/scenarios/gsmhandset.state restore')
				name = self.wireless.Initiate(''.join(self.text), dbus_interface=DIN_VOICE_CALL_INITIATOR, timeout=200, )
				sleep(20)
				call = object_by_url(name)
				call.Hangup(dbus_interface=DIN_CALL)

class TestView(object):
	def __init__(self):
		edje.frametime_set(1.0 / 20)
		self.evas_canvas = EvasCanvas(fullscreen=FS, engine="x11-16", size="480x640")
		
		self.groups = {}
		self.groups["pyneo/dialer/main"] = dialer_main(self)
        	self.evas_canvas.evas_obj.data["pyneo/dialer/main"] = self.groups["pyneo/dialer/main"]
		self.groups["pyneo/dialer/main"].show()
		self.groups["pyneo/dialer/main"].part_text_set("numberdisplay_text", "wait ...")

class EvasCanvas(object):
	def __init__(self, fullscreen, engine, size):
		if engine == "x11":
			f = ecore.evas.SoftwareX11
#		elif engine == "x11-16":
#			if ecore.evas.engine_type_supported_get("software_x11_16"):
#				f = ecore.evas.SoftwareX11_16
		else:
			print "warning: x11-16 is not supported, fallback to x11"
			f = ecore.evas.SoftwareX11

		self.evas_obj = f(w=480, h=640)
		self.evas_obj.callback_delete_request = self.on_delete_request
		self.evas_obj.callback_resize = self.on_resize

		self.evas_obj.title = TITLE
		self.evas_obj.name_class = WM_INFO
		self.evas_obj.fullscreen = FS
#		self.evas_obj.size = size
		self.evas_obj.show()

	def on_resize(self, evas_obj):
		x, y, w, h = evas_obj.evas.viewport
		size = (w, h)
		for key in evas_obj.data.keys():
			evas_obj.data[key].size = size

	def on_delete_request(self, evas_obj):
		ecore.main_loop_quit()

if __name__ == "__main__":
	TestView()
	ecore.main_loop_begin()

'''	
export LDFLAGS="$LDFLAGS -L/opt/e17/lib"
export PKG_CONFIG_PATH="/opt/e17/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PATH:/opt/e17/bin"
export PYTHONPATH="/home/fgau/usr/lib/python2.5/site-packages"

edje_cc -v -id ../images -fd ../fonts *edc
'''



git-svn-id: http://www.neo1973-germany.de/svn@94 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago
fgau 14791e602a initialisation
git-svn-id: http://www.neo1973-germany.de/svn@93 46df4e5c-bc4e-4628-a0fc-830ba316316d
16 years ago