# Copyright (c) 2007 Jurgen Scheible www.mobilenin.com import appuifw, e32, graphics, key_codes, socket sound = 0 y_pos_contr = 100 running = 1 slidershaft = graphics.Image.open("e:\\Python\\resources\\background.jpg") makeMaskTemp = graphics.Image.open('e:\\Python\\resources\\controller_mask.jpg') makeMaskTemp.save("e:\\Python\\resources\\controller_mask.png", bpp=1) contrMask = graphics.Image.new(size = (97,149),mode = '1') contrMask.load("e:\\Python\\resources\\controller_mask.png") contr = graphics.Image.open("e:\\Python\\resources\\controller.jpg") makeMaskTemp = graphics.Image.open('e:\\Python\\resources\\button_mask.jpg') makeMaskTemp.save("e:\\Python\\resources\\button_mask.png", bpp=1) buttnMask = graphics.Image.new(size = (111,78),mode = '1') buttnMask.load("e:\\Python\\resources\\button_mask.png") buttnOn = graphics.Image.open("e:\\Python\\resources\\button_red.jpg") buttnOff = graphics.Image.open("e:\\Python\\resources\\button_dark.jpg") keyboard_state={} downs={} def handle_event(event): global downs,keyboard_state if event['type'] == appuifw.EEventKeyDown: code=event['scancode'] if not key_is_down(code): downs[code]=downs.get(code,0)+1 keyboard_state[code]=1 elif event['type'] == appuifw.EEventKeyUp: keyboard_state[event['scancode']]=0 def key_pressed(scancode): global downs if downs.get(scancode,0): downs[scancode]-=1 return True return False def key_is_down(scancode): global keyboard_state return keyboard_state.get(scancode,0) def handle_redraw(rect): canvas.blit(slidershaft, target = (0,0), source = (0,0),scale = 0 ) canvas.blit(contr, target=(142,y_pos_contr), source=(0,0), mask=contrMask, scale=0 ) if sound == 1: canvas.blit(buttnOn, target=(8,328), source=(0,0), mask=buttnMask, scale=0 ) else: canvas.blit(buttnOff, target=(8,328), source=(0,0), mask=buttnMask, scale=0 ) def connect(): global sock sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM) target='' if not target: address,services=socket.bt_discover() print "Discovered: %s, %s"%(address,services) if len(services)>1: import appuifw choices=services.keys() choices.sort() choice=appuifw.popup_menu([unicode(services[x])+": "+x for x in choices],u'Choose port:') target=(address,services[choices[choice]]) else: target=(address,services.values()[0]) print "Connecting to "+str(target) sock.connect(target) print "OK." def quit(): global running running = 0 canvas=appuifw.Canvas(event_callback=handle_event,redraw_callback=handle_redraw) appuifw.app.body=canvas appuifw.app.screen='full' appuifw.app.exit_key_handler=quit connect() while running: e32.ao_yield() if key_is_down(key_codes.EScancodeDownArrow): if y_pos_contr < 260 : y_pos_contr = y_pos_contr + 5 sock.send(str(3)) handle_redraw(()) if key_is_down(key_codes.EScancodeUpArrow): if y_pos_contr > 100 : y_pos_contr = y_pos_contr - 5 sock.send(str(4)) handle_redraw(()) if key_pressed(key_codes.EScancodeSelect): if sound == 1: sound = 0 else: sound = 1 sock.send(str(5)) handle_redraw(())