# Build time
apt-get install valac libglib2.0-dev libdbus-glib-1-dev libgee-dev libgtk2.0-dev \
- libwnck-dev libdevkit-power-gobject-dev \
+ libwnck-dev \
libomhacks-dev liblua5.1-dev
- # Runtime
- apt-get install devicekit-power
-
# Optional runtime
apt-get install polygen polygen-data
* Alarms
It is possible to set an alarm, which will be shown in the alarm window. When
- the alarm expires, the phone wakes up if it is suspended, and zavai vibrates
- for 5 seconds.
+ the alarm expires, the phone wakes up if it is suspended, and zavai vibrates,
+ turns on baclight, shows a big ACK button and flashes the AUX led for 30
+ seconds. It also plays some music.
- It is planned to use the AUX button to acknowledge the alarm and stop the
- vibration; when this will happen, vibration can go on for more than 5 seconds.
+ You can use the big button on screen or the AUX button to acknowledge the
+ alarm and stop all the attention-seeking activities.
- When I'll implement some audio playing infrastructure, I'll implement playing
- an audio file as well.
+ If you want to change the alarm ringtone, you can set:
+ ringtone_alarm = "file:///some/where/file.ext"
+ in ~/.zavai/config; gstreamer is used, so mostly any audio file format will
+ work. I'm not sure what will happen if you choose a video format: that might
+ work as well.
- Also missing are a popup that tells that an alarm is ringing, and a notifier
- for unacknowledged popups.
+ Alarms (acknowledged or not) are logged in "~/.zavai/log-alarm/". Still
+ missing, howerver, is a way to show that an alarm rang and noone noticed.
Patches welcome.
- Details: the alarms are scheduled with at(1). Please see omhacks for simple
- suspend hooks that will wake up the phone to run scheduled at jobs.
+ Details: the alarms are scheduled with at(1): they stay scheduled even if
+ zavai is restarted, and you can see them with "atq". Please see omhacks for
+ simple suspend hooks that will wake up the phone to run scheduled at jobs.
* Calendar
- interface zavai with a proper calendar system, without making the interface
harder to use (if you can).
+ * GSM
+
+ If you have a pin, add 'sim_pin = "1234"' to ~/.zavai/config
+
+ Don't start frameworkd at boot. Get rid of fso-usaged from your system (it
+ will be started by dbus when frameworkd starts, if it's there).
+
+ Now you can use zavai to turn on GSM, including powering up the antenna and
+ providing the PIN if required by the SIM.
+
+ It does not currently do anything else beside turning things on. It is useful,
+ however, to make GSM services available to simple scripts like SMS or contact
+ list dump tools.
+
+
Stability / design
Zavai currently focuses on the interface side, trying to make it easy for me
* FSO API "documentation":
http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD
+using vala-dbus-binding-tool:
+ mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freedesktop.DBus.Introspectable.Introspect > /tmp/api.xml
+ vi /tmp/api.xml
+ convert to xml:
+ remove quotes at begin and end
+ :$s/\n/^M/g
+ mkdir /tmp/foo
+ vala-dbus-binding-tool --directory=/tmp/foo --api-path=/tmp/api.xml
+
+ Async and D-Bus:
+ http://git.gnome.org/browse/vala/tree/tests/dbus/async.test
+
* Features to add:
- - turn on/off wireless
- - turn on/off chip
- - start/stop wicd
- - start/stop wicd-client
- - turn on/off bluetooth
+ - if GPS time is more than 1 minute and less than 1 hour different than the
+ system time, automatically sync it
+ if GPS time is more than 1 hour different than the system time, show a
+ "SYNC" button that will sync it if pressed
+ - log
+ - flash aux when there are unacknowledged log entries
+ - write data to disk as log happens (to have at least partial logs if power
+ is cut)
+ - more detailed GPX data (dop, elev..)
+ - message (structured) (json?)
+ - turn on/off gsm
+ - pick up phone call
+ - phone call applet (pushed when picking up)
+ - buttons for dtmf
+ - button for hold
+ - button for hangup
+ - icon in main screen (to go back to applet if going around zavai during
+ phone call)
+ to "move" the GSM device to my laptop:
+ socat FILE:/dev/ttySAC0 TCP-LISTEN:12345,bind=192.168.0.202
+ socat TCP:192.168.0.202:12345 PTY,link=/tmp/gps,raw,echo=0
- alarm
- - play sound at alarm trigger
- - leave expired alarm on screen until acknowledged
- (alarm status icon that also brings to alarm menu)
- remember alarm names (on request, maybe with an add feature) and how
often they are triggered, and show them most frequent first
- show active alarms and allow to delete them
+ - fisheye list music player
+ (-> learn/test gstreamer libs)
+ - player page with seek/skip controls
+ - playlist editor
+ - chosen song start playing if nothing is being played
+ - chosen song moves to playlist editor: play, add to playlist, add dir to playlist
+ (show a standard list multiselectable with all the songs in the dir and
+ only the selected song selected; allow to select others, select all, add
+ selected to playlist)
+ - playlist as reorderable standard list, allow to delete tracks, reorder tracks
+ - save playlist to file to reload later
+ - pause with headset button
- audio notes
- record audio notes, logging start and stop so it gets an associated GPX
- shortcut icon in main screen
- - turn on/off gsm
- - start frameworkd as a subprocess, configured to only do phone
- - go through the dbus motions of turning on this and that, and entering PIN
- hardcoded in zavai config
- - log and refuse incoming calls and messages
- - check gobject introspection and dynamic loading
- - there could be a basic loader core that just dynamically loads bits as
- available/needed. Only the battery icon and calendar can be loaded on a
- laptop, while on the moko one can also load the power menu.
- Different bits can effectively work as plugins, to be there or not.
- Alternative plugins can be loaded based on different technologies, too (a
- gpsd satellite monitor, or a fso satellite monitor).
- zavai does not look good in landscape mode
- replace menus with a widget taking a list of actions, which then lays
them out according to the screen size
(-> learn/test libalsamixer something)
/usr/share/vala/vapi/alsa.vapi
- space buttons from sliders, to avoid shutting down instead of lowering the volume
- - log
- - message (structured) (json?)
- - fisheye list music player
- (-> learn/test gstreamer libs)
- - player page with seek/skip controls
- - playlist editor
- - chosen song start playing if nothing is being played
- - chosen song moves to playlist editor: play, add to playlist, add dir to playlist
- (show a standard list multiselectable with all the songs in the dir and
- only the selected song selected; allow to select others, select all, add
- selected to playlist)
- - playlist as reorderable standard list, allow to delete tracks, reorder tracks
- - save playlist to file to reload later
- - pause with headset button
- - battery without devkit: do the parsing via lua
+ - battery: do the parsing via lua
- contacts: show as a fancy focus+context list (see prefuse)
- vcard on e-vcard.{h,c}
- ical on libical-dev
- vcard+index file
- lua functions to read things
- - zavai-calendar as a separate app
- zavai-contacts as a separate app
- calendar
- next30: don't update if not shown currently on the notebook