-
Notifications
You must be signed in to change notification settings - Fork 1
/
amora_descr.t2t
142 lines (89 loc) · 4.48 KB
/
amora_descr.t2t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Amora: A mobile Remote Assistant
Adenilson Cavalcanti ([email protected])
= Abstract =
You got a cellphone with bluetooth and still need to manually control
slides when making a presentation?
Don't worry anymore, **Amora** implements control of mouse
and most of keyboard shortcuts (ESC, ENTER, SPACE, arrow keys, etc)
making easy this task.
Currently, the client is implemented in Python for S60 (Nokia cellphones)
and the server is written in C programming language using Xlib and XTest to
send events for X session and POSIX socket API for I/O.
For bluetooth SDP I used BlueZ (so for while, this part of server is
Linux only), there are plans to port the server to run in other
*nix architectures (FreeBSD, Solaris, Mac OSX).
= Rationale =
Most of notebooks are bluetooth ready, and case negative, a bluetooth dongle
is really cheap, as also cellphones with bluetooth are common place for
geek users.
Even if there are already MS-Windows only applications with similar
purpose, *nix users are forgotten. And strangely, the opensource projects
are cryptic to use (or not strangely after all...) or plain and simple
don't work.
I decided to write this code to answer my own need of an application that has:
- Nice GUI on cellphone
- Server side doesn't require any configuration
Also, expanding the idea of a simple remote control, it has some features
that can be potentially useful for slide presentations:
- a stopwatch
- active window screenshot
== Hardware required ==
A Nokia cellphone S60 (3rd and 2rd editions are tested), Linux
(Ubuntu 8.04) and a bluetooth dongle.
== Software dependencies ==
To run the application, you need to install Python for S60, available in
[PyS60 http://pys60.sourceforge.net]. There are 2 files required, the python
interpreter and the python shell, you need to download them and install
to be able to execute python programs in your cellphone.
To install the cellphone client application, just copy the files in a folder
named 'Python' in cellphone memory card.
For server side, to compile the source code, you will need:
- gcc compiler
- Xlibs
- XTest libs
- BlueZ libs
And also XTest extension enabled in you X server (default on Ubuntu). So,
in Ubuntu simply run in your terminal:
$sudo apt-get install gcc libxext-dev libbluetooth2-dev libimlib2-dev libxtst-dev libdbus-1-dev
After installing the dependencies, change to directory 'amora_server/amora-cli'
and run:
$mkdir build
$cd build
$./configure
$make
It will generate an executable file named 'test_presenter', you must
start the application (and make sure that the bluetooth dongle is
connected to the computer):
$./amorad
If there is not a 'configure' script in the directory, first run:
$autoreconf -i -f
= Project status =
What works: mouse moving, left button clicking, mouse scroll wheel,
keyboard shortcuts (ENTER, ESC, SPACE, Arrow keys), screenshot.
You can ask for screenshots of active window as also use a mode where for each mouse click the screenshot of active window is taken (very handy when driving slides).
Cellphone client can be started independently of server side application.
You can close the connection from cellphone and later reconnect without
restarting the server.
Not only that, but the server in Amora version 1.0 supports multiple cellphones at *same* time (tested with 3 distinct devices) for collaborative presentations.
Its stable and I already use it to control my slides and movie watching (i.e.:
I can start a slide presentation, stop it, move the mouse cursor to a
directory, double click in a video file and control most of actions in
MPlayer).
== What is next ==
- See project page, in 'Issues' tab.
- Camera video capture and streaming to PC
- Write a linux kernel module (V4L2) to make cellphone video stream appear
as a bluetooth webcam.
- FreeBSD server port: no idea of difficulty (it depends **if** bluetooth
SDP API is documented in BSD) and **if** there are source code examples
available.
- Mac OSX: well, it has 1 more factor of difficulty since Mac doesn't use
X server to control most of its apps.
- Write a J2ME client for other cellphone models (Nokia S40, e.g. 6111).
== Related Projects ==
- [controlblue http://code.google.com/p/controlblue/]
- [pys60rc http://pys60rc.sourceforge.net/]
- [GNOME Bluetooth Control Remoto (GBTcr) http://gbtcr.chileforge.cl/]
- [pys60miniapps xmms http://sourceforge.net/projects/pys60miniapps/]
- [bluetricks http://nacaolivre.org/2007/06/30/python-bluetooth-pys60-e-imaginacao/]
- [http;//bluepad.sourceforge.net bluepad]