Home | Trees | Indices | Help |
---|
|
1 # -*- coding: utf-8 -*- 2 # Elisa - Home multimedia server 3 # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 4 # All rights reserved. 5 # 6 # This file is available under one of two license agreements. 7 # 8 # This file is licensed under the GPL version 3. 9 # See "LICENSE.GPL" in the root of this distribution including a special 10 # exception to use Elisa with Fluendo's plugins. 11 # 12 # The GPL part of Elisa is also available under a commercial licensing 13 # agreement from Fluendo. 14 # See "LICENSE.Elisa" in the root directory of this distribution package 15 # for details on that license. 16 17 18 __maintainer__ = 'Lionel Martin <lionel@fluendo.com>' 19 20 import string 21 from elisa.base_components.input_provider import PushInputProvider 22 from elisa.core.input_event import * 23 import pgm 2426 """ 27 This class implements Pigment events support. 28 """ 2918431 PushInputProvider.__init__(self) 32 self._handler_ids = [] 33 self._simple_keys = {} 34 35 keys = string.ascii_letters 36 for key in keys: 37 key_value = getattr(EventValue, 'KEY_%s' % key) 38 pgm_key = getattr(pgm.keysyms, key) 39 self._simple_keys[pgm_key] = key_value4042 signal_id = self.viewport.connect('delete-event', 43 self._process_delete_event) 44 self._handler_ids.append(signal_id) 45 signal_id = self.viewport.connect('key-press-event', 46 self._process_press_event) 47 self._handler_ids.append(signal_id) 48 signal_id = self.viewport.connect('key-release-event', 49 self._process_release_event) 50 self._handler_ids.append(signal_id)5153 for signal_id in self._handler_ids: 54 self.viewport.disconnect(signal_id) 55 56 # releasing our reference to the viewport 57 del self.viewport5860 elisa_event = InputEvent(EventSource.OTHER, EventType.OTHER, 61 EventAction.EXIT) 62 elisa_event.origin = self.origin 63 self.input_manager.process_event(elisa_event, self.path)6466 elisa_event = self._create_event_with_type(event, EventType.KEY_DOWN) 67 self.input_manager.process_event(elisa_event, self.path)6870 elisa_event = self._create_event_with_type(event, EventType.KEY_UP) 71 self.input_manager.process_event(elisa_event, self.path)7274 if event.direction == pgm.SCROLL_DOWN: 75 elisa_event = InputEvent(EventSource.MOUSE, EventType.OTHER, 76 EventAction.GO_LEFT) 77 elif event.direction == pgm.SCROLL_UP: 78 elisa_event = InputEvent(EventSource.MOUSE, EventType.OTHER, 79 EventAction.GO_RIGHT) 80 81 elisa_event.origin = self.origin 82 self.input_manager.process_event(elisa_event, self.path)83 9799 elisa_event = None 100 101 if event_type == EventType.KEY_DOWN: 102 # TODO: support more keys 103 keyval = event.keyval 104 if keyval == pgm.keysyms.Up: 105 elisa_event = InputEvent(EventSource.KEYBOARD, 106 EventType.KEY_DOWN, 107 EventAction.GO_UP) 108 elif keyval == pgm.keysyms.Down: 109 elisa_event = InputEvent(EventSource.KEYBOARD, 110 EventType.KEY_DOWN, 111 EventAction.GO_DOWN) 112 elif keyval == pgm.keysyms.Right: 113 elisa_event = InputEvent(EventSource.KEYBOARD, 114 EventType.KEY_DOWN, 115 EventAction.GO_RIGHT) 116 elif keyval == pgm.keysyms.Left: 117 elisa_event = InputEvent(EventSource.KEYBOARD, 118 EventType.KEY_DOWN, 119 EventAction.GO_LEFT) 120 elif keyval == pgm.keysyms.Return: 121 elisa_event = InputEvent(EventSource.KEYBOARD, 122 EventType.KEY_DOWN, 123 EventAction.OK) 124 elif keyval == pgm.keysyms.BackSpace or \ 125 keyval == pgm.keysyms.space: 126 elisa_event = InputEvent(EventSource.KEYBOARD, 127 EventType.KEY_DOWN, 128 EventAction.MENU) 129 elif keyval == pgm.keysyms.f: 130 elisa_event = InputEvent(EventSource.KEYBOARD, 131 EventType.KEY_DOWN, 132 EventAction.TOGGLE_FULLSCREEN, 133 EventValue.KEY_f) 134 elif keyval == pgm.keysyms.q: 135 elisa_event = InputEvent(EventSource.KEYBOARD, 136 EventType.KEY_DOWN, 137 EventAction.EXIT, 138 EventValue.KEY_q) 139 elif keyval == pgm.keysyms.Escape: 140 elisa_event = InputEvent(EventSource.KEYBOARD, 141 EventType.KEY_DOWN, 142 EventAction.EXIT) 143 elif keyval == pgm.keysyms.s: 144 elisa_event = InputEvent(EventSource.KEYBOARD, 145 EventType.KEY_DOWN, 146 EventAction.STOP, 147 EventValue.KEY_s) 148 elif keyval == pgm.keysyms.x: 149 elisa_event = InputEvent(EventSource.KEYBOARD, 150 EventType.KEY_DOWN, 151 EventAction.PREVIOUS, 152 EventValue.KEY_x) 153 elif keyval == pgm.keysyms.c: 154 elisa_event = InputEvent(EventSource.KEYBOARD, 155 EventType.KEY_DOWN, 156 EventAction.NEXT, 157 EventValue.KEY_c) 158 elif keyval == pgm.keysyms.v: 159 elisa_event = InputEvent(EventSource.KEYBOARD, 160 EventType.KEY_DOWN, 161 EventAction.SEEK_BACKWARD, 162 EventValue.KEY_v) 163 elif keyval == pgm.keysyms.b: 164 elisa_event = InputEvent(EventSource.KEYBOARD, 165 EventType.KEY_DOWN, 166 EventAction.SEEK_FORWARD, 167 EventValue.KEY_b) 168 169 elif keyval in self._simple_keys: 170 event_value = self._simple_keys[keyval] 171 elisa_event = InputEvent(EventSource.KEYBOARD, 172 EventType.KEY_DOWN, 173 EventAction.NONE, 174 event_value) 175 else: 176 self.info('Unrecognized key received: %s', event) 177 else: 178 self.info('Unrecognized key received: %s', event) 179 180 if elisa_event: 181 elisa_event.origin = self.origin 182 183 return elisa_event
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0beta1 on Wed Jan 16 19:10:27 2008 | http://epydoc.sourceforge.net |