Send commitlog mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:
1. r1971 -
trunk/src/target/OM-2007/applications/openmoko-dialer/src
([EMAIL PROTECTED])
2. r1972 -
trunk/src/target/OM-2007/applications/openmoko-dialer/src
([EMAIL PROTECTED])
3. r1973 -
trunk/src/target/OM-2007/applications/openmoko-dialer/src
([EMAIL PROTECTED])
4. r1974 - trunk/src/target/kernel/patches
([EMAIL PROTECTED])
5. r1975 - in trunk/src/target/OM-2007/panel-plugins: .
openmoko-panel-startup ([EMAIL PROTECTED])
6. r1976 -
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data
([EMAIL PROTECTED])
7. r1977 - in trunk/src/host/qemu-neo1973: . openmoko
([EMAIL PROTECTED])
8. r1978 -
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src
([EMAIL PROTECTED])
--- Begin Message ---
Author: thomas
Date: 2007-05-16 17:53:15 +0200 (Wed, 16 May 2007)
New Revision: 1971
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
Log:
openmoko-dialer: make sure window-talking is initialised, and hangup when it is
hidden
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
===================================================================
---
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
2007-05-16 15:46:56 UTC (rev 1970)
+++
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
2007-05-16 15:53:15 UTC (rev 1971)
@@ -228,6 +228,8 @@
{
moko_gsmd_connection_voice_accept (data->connection);
/* dialer_window_talking_show (data); */
+ if (!data->window_talking)
+ window_talking_init ();
gtk_widget_show_all (data->window_talking);
}
else
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
===================================================================
---
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
2007-05-16 15:46:56 UTC (rev 1970)
+++
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
2007-05-16 15:53:15 UTC (rev 1971)
@@ -218,6 +218,10 @@
gtk_widget_hide (appdata->toolbox_talking);
moko_dialer_textview_empty (appdata->moko_dtmf_text_view);
+
+ /* talking window has been hidden, so we should probably make sure the... */
+ moko_gsmd_connection_voice_hangup (data->connection);
+
/* add_histroy_entry (appdata, appdata->g_state.historytype,
appdata->g_peer_info.name,
appdata->g_peer_info.number,
@@ -367,12 +371,6 @@
G_CALLBACK (on_window_talking_hide), p_dialer_data);
- //now the wheel and tool box, why should the wheel and toolbox created
after the gtk_widget_show_all???
- //please refer to bug 175.
- //FIXME:Dear Thomas, please modify the libmokoui before deleting the
show_all & hide codes. I don't want to splash
- //any window either, but for now, it's the most convenient way to debug
the application. We will remove it, but later, OK?
- //Tony Guan 14/3/2007
- gtk_widget_show_all (GTK_WIDGET (window));
gtk_widget_hide (content_dtmf); //And this line is necessary because
dtmf interface & talking interface share the same window.
//we have to hide it first.
wheel = moko_finger_window_get_wheel (window);
--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-05-16 17:58:43 +0200 (Wed, 16 May 2007)
New Revision: 1972
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
Log:
openmoko-dialer: add missing parameter, fix comiler warnings
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
===================================================================
---
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
2007-05-16 15:53:15 UTC (rev 1971)
+++
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
2007-05-16 15:58:43 UTC (rev 1972)
@@ -229,7 +229,7 @@
moko_gsmd_connection_voice_accept (data->connection);
/* dialer_window_talking_show (data); */
if (!data->window_talking)
- window_talking_init ();
+ window_talking_init (data);
gtk_widget_show_all (data->window_talking);
}
else
--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-05-16 18:00:50 +0200 (Wed, 16 May 2007)
New Revision: 1973
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
Log:
openmoko-dialer: fix compiler warnings
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
===================================================================
---
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
2007-05-16 15:58:43 UTC (rev 1972)
+++
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
2007-05-16 16:00:50 UTC (rev 1973)
@@ -220,7 +220,7 @@
moko_dialer_textview_empty (appdata->moko_dtmf_text_view);
/* talking window has been hidden, so we should probably make sure the... */
- moko_gsmd_connection_voice_hangup (data->connection);
+ moko_gsmd_connection_voice_hangup (appdata->connection);
/* add_histroy_entry (appdata, appdata->g_state.historytype,
appdata->g_peer_info.name,
@@ -295,8 +295,8 @@
GtkWidget *status = NULL;
GtkWidget *content_talk = NULL;
GtkWidget *content_dtmf = NULL;
- MokoFingerToolBox *tools = NULL;
- MokoFingerWheel *wheel = NULL;
+ GtkWidget *tools = NULL;
+ GtkWidget *wheel = NULL;
GtkWidget *mokodialerpanel = NULL;
MokoPixmapButton *button;
GtkWidget *image;
@@ -390,7 +390,7 @@
tools = moko_finger_window_get_toolbox (window);
button =
MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
+ (MOKO_FINGER_TOOL_BOX (tools)));
image = file_new_image_from_relative_path ("speaker.png");
moko_pixmap_button_set_finger_toolbox_btn_center_image
(MOKO_PIXMAP_BUTTON (button), image);
@@ -400,22 +400,22 @@
button =
MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
+ (MOKO_FINGER_TOOL_BOX (tools)));
image = file_new_image_from_relative_path ("dtmf.png");
moko_pixmap_button_set_finger_toolbox_btn_center_image
(MOKO_PIXMAP_BUTTON (button), image);
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (cb_tool_button_dtmf_talk_clicked),
p_dialer_data);
- p_dialer_data->buttonTalk_DTMF = button;
+ p_dialer_data->buttonTalk_DTMF = GTK_WIDGET (button);
p_dialer_data->imageDTMF = image;
p_dialer_data->imageTALK =
file_new_image_from_relative_path ("talking.png");
button =
- MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
+ MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label (
+ MOKO_FINGER_TOOL_BOX (tools)));
image = file_new_image_from_relative_path ("hangup.png");
moko_pixmap_button_set_finger_toolbox_btn_center_image
(MOKO_PIXMAP_BUTTON (button), image);
--- End Message ---
--- Begin Message ---
Author: laforge
Date: 2007-05-16 18:02:06 +0200 (Wed, 16 May 2007)
New Revision: 1974
Modified:
trunk/src/target/kernel/patches/hxd8-core.patch
Log:
add nand-1 and nand-2 for 2nd and 3rd nand chip in hxd8
Modified: trunk/src/target/kernel/patches/hxd8-core.patch
===================================================================
--- trunk/src/target/kernel/patches/hxd8-core.patch 2007-05-16 16:00:50 UTC
(rev 1973)
+++ trunk/src/target/kernel/patches/hxd8-core.patch 2007-05-16 16:02:06 UTC
(rev 1974)
@@ -29,7 +29,7 @@
===================================================================
--- /dev/null
+++ linux-2.6.21-moko/arch/arm/mach-s3c2440/mach-hxd8.c
-@@ -0,0 +1,393 @@
+@@ -0,0 +1,401 @@
+/* linux/arch/arm/mach-s3c2440/mach-hxd8.c
+ *
+ * S3C2440 Machine Support for the FIC HXD8
@@ -166,6 +166,14 @@
+ .name = "hxd8-nand",
+ .nr_chips = 1,
+ },
++ [1] = {
++ .name = "hxd8-nand-1",
++ .nr_chips = 1,
++ },
++ [2] = {
++ .name = "hxd8-nand-2",
++ .nr_chips = 1,
++ },
+};
+
+/* choose a set of timings which should suit most 512Mbit
--- End Message ---
--- Begin Message ---
Author: stefan
Date: 2007-05-16 21:36:36 +0200 (Wed, 16 May 2007)
New Revision: 1975
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/AUTHORS
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/ChangeLog
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/Makefile.am
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/NEWS
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/README
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/autogen.sh
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/configure.ac
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/openmoko-panel-startup.pro
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/
Log:
o Prepare infrastructure for new startup-notification matchbox-panel-2 applet.
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/AUTHORS
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/AUTHORS
2007-05-16 16:02:06 UTC (rev 1974)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/AUTHORS
2007-05-16 19:36:36 UTC (rev 1975)
@@ -0,0 +1,2 @@
+Matthew Allum <[EMAIL PROTECTED]>
+Stefan Schmidt <[EMAIL PROTECTED]>
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/ChangeLog
===================================================================
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/Makefile.am
2007-05-16 16:02:06 UTC (rev 1974)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/Makefile.am
2007-05-16 19:36:36 UTC (rev 1975)
@@ -0,0 +1 @@
+SUBDIRS = src data
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/NEWS
===================================================================
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/README
===================================================================
Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/autogen.sh
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/autogen.sh
2007-05-16 16:02:06 UTC (rev 1974)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/autogen.sh
2007-05-16 19:36:36 UTC (rev 1975)
@@ -0,0 +1,4 @@
+#! /bin/sh
+autoreconf -v --install || exit 1
+glib-gettextize --force --copy || exit 1
+./configure --enable-maintainer-mode "$@"
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/autogen.sh
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/configure.ac
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/configure.ac
2007-05-16 16:02:06 UTC (rev 1974)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/configure.ac
2007-05-16 19:36:36 UTC (rev 1975)
@@ -0,0 +1,25 @@
+AC_PREREQ(2.53)
+AC_INIT(openmoko-panel-startup, %(1.0.0), http://www.openmoko.org/)
+AM_INIT_AUTOMAKE()
+AC_CONFIG_SRCDIR(src/openmoko-panel-startup.c)
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_STDC_HEADERS
+AC_PROG_LIBTOOL
+
+# base deps
+PKG_CHECK_MODULES(OPENMOKO, openmoko-libs >= 0.0.1,,
+ AC_MSG_ERROR([*** Required OpenMoko Libraries >= 0.0.1 not
installed ***]))
+
+LIBS="$LIBS $OPENMOKO_LIBS"
+CFLAGS="$CFLAGS $OPENMOKO_CFLAGS"
+
+# output stuff
+AC_OUTPUT([
+Makefile
+src/Makefile
+data/Makefile
+])
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/openmoko-panel-startup.pro
===================================================================
---
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/openmoko-panel-startup.pro
2007-05-16 16:02:06 UTC (rev 1974)
+++
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/openmoko-panel-startup.pro
2007-05-16 19:36:36 UTC (rev 1975)
@@ -0,0 +1,6 @@
+MOKOCONFIG = mokoui
+MOKOTYPE = panel-plugin
+
+SOURCES = src/openmoko-panel-startup.c
+
+include ( $(OPENMOKODIR)/devel/qmake/openmoko-include.pro )
--- End Message ---
--- Begin Message ---
Author: stefan
Date: 2007-05-16 21:45:37 +0200 (Wed, 16 May 2007)
New Revision: 1976
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/Makefile.am
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-0.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-1.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-2.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-3.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-4.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-5.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-6.png
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-7.png
Log:
o Applet images and Makefile
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/Makefile.am
===================================================================
---
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/Makefile.am
2007-05-16 19:36:36 UTC (rev 1975)
+++
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/Makefile.am
2007-05-16 19:45:37 UTC (rev 1976)
@@ -0,0 +1,15 @@
+EXTRA_DIST =
+
+#
+# misc. data files
+#
+resourcedir = $(pkgdatadir)
+resource_DATA = \
+ hourglass-0.png \
+ hourglass-1.png \
+ hourglass-2.png \
+ hourglass-3.png \
+ hourglass-4.png \
+ hourglass-5.png \
+ hourglass-6.png \
+ hourglass-7.png
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-0.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-0.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-1.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-2.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-3.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-4.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-4.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-5.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-5.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-6.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-6.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-7.png
===================================================================
(Binary files differ)
Property changes on:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/data/hourglass-7.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
--- End Message ---
--- Begin Message ---
Author: andrew
Date: 2007-05-16 21:47:42 +0200 (Wed, 16 May 2007)
New Revision: 1977
Modified:
trunk/src/host/qemu-neo1973/openmoko/flash.sh
trunk/src/host/qemu-neo1973/vl.c
Log:
Make flash.sh less timing dependent by using correct qemu shutdown. Fix
usb-gadget initialisation with no '-usb'.
Modified: trunk/src/host/qemu-neo1973/openmoko/flash.sh
===================================================================
--- trunk/src/host/qemu-neo1973/openmoko/flash.sh 2007-05-16 19:45:37 UTC
(rev 1976)
+++ trunk/src/host/qemu-neo1973/openmoko/flash.sh 2007-05-16 19:47:42 UTC
(rev 1977)
@@ -71,24 +71,33 @@
# Launch the emulator assuming that u-boot is now functional enough
# for us to be able to issue u-boot commands.
# This is also an example of how you *shouldn't* write scripts.
+# We should parse the u-boot output for command prompt lines and only
+# issue commands when u-boot is awaiting them.
emu () {
$qemu -mtdblock "$script_dir/$flash_image" -kernel "$script_dir/$1" \
-serial stdio -nographic -usb -monitor null <&0 & pid=$!
}
uboot () {
cd $src_dir
- emu $1 <<< "$3"
+ emu $1 <<< "
+$3
+neo1973 power-off
+"
echo Please wait, programming the NAND flash...
- sleep $2
- kill $pid # Ugly, use the qemu monitor instead
- sleep 1
- kill -9 $pid
- sleep 1
+ (sleep $2; kill $pid; sleep 1; kill -KILL $pid)& timer=$!
+ if ! wait $pid; then
+ kill $timer
+ echo
+ echo U-boot failed to finish writing in $2 seconds, giving up.
+ echo
+ exit -1
+ fi
+ kill $timer
cd $script_dir
}
# Set up BBT, u-boot environment, boot menu and program u-boot binary.
-uboot $uboot_image 40 "
+uboot $uboot_image 300 "
setenv dontask y
nand createbbt
setenv bootcmd 'setenv bootargs \${bootargs_base} \${mtdparts}; bootm
$kernel_addr'
@@ -103,15 +112,15 @@
saveenv"
# Program bootsplash.
-uboot splash.gz 10 "
+uboot splash.gz 60 "
nand write.e $kernel_addr splash $splash_size"
# Program the kernel binary.
-uboot $kernel_image 10 "
+uboot $kernel_image 60 "
nand write.e $kernel_addr kernel $kernel_size"
# Program the root filesystem.
-uboot $rootfs_image 20 "
+uboot $rootfs_image 120 "
nand write.jffs2 $kernel_addr rootfs $rootfs_size"
# Make the kernel image accessible under a fixed name
Modified: trunk/src/host/qemu-neo1973/vl.c
===================================================================
--- trunk/src/host/qemu-neo1973/vl.c 2007-05-16 19:45:37 UTC (rev 1976)
+++ trunk/src/host/qemu-neo1973/vl.c 2007-05-16 19:47:42 UTC (rev 1977)
@@ -4309,6 +4309,18 @@
USBDevice *dev;
USBPort *port;
+ if (strstart(devname, "gadget", &p)) {
+ dev = usb_gadget;
+ port = host_usb_ports;
+ if (!dev || !port)
+ return -1;
+ if (p[0] == ':')
+ usb_gadget_config_set(port, strtoul(&p[1], NULL, 0));
+ else if (p[0] != 0)
+ return -1;
+ goto attach;
+ }
+
if (!free_usb_ports)
return -1;
@@ -4325,16 +4337,6 @@
if (nr >= (unsigned int) nb_nics || strcmp(nd_table[nr].model, "usb"))
return -1;
dev = usb_net_init(&nd_table[nr]);
- } else if (strstart(devname, "gadget", &p)) {
- dev = usb_gadget;
- port = host_usb_ports;
- if (!dev || !port)
- return -1;
- if (p[0] == ':')
- usb_gadget_config_set(port, strtoul(&p[1], NULL, 0));
- else if (p[0] != 0)
- return -1;
- goto attach;
} else {
return -1;
}
--- End Message ---
--- Begin Message ---
Author: stefan
Date: 2007-05-16 21:50:55 +0200 (Wed, 16 May 2007)
New Revision: 1978
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/Makefile.am
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/openmoko-panel-startup.c
Log:
Not yet, but hopefully soon, upstream version from startup-notification applet.
NOTE: This version is only checked in to have the full changes in svn history.
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/Makefile.am
===================================================================
---
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/Makefile.am
2007-05-16 19:47:42 UTC (rev 1977)
+++
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/Makefile.am
2007-05-16 19:50:55 UTC (rev 1978)
@@ -0,0 +1,11 @@
+AM_CPPFLAGS=-DPKGDATADIR=\"$(pkgdatadir)\" -DGETTEXT_PACKAGE=\"matchbox-panel\"
+AM_CFLAGS = -Wall -std=c99 -pedantic @OPENMOKO_CFLAGS@
+
+appletdir = $(libdir)/matchbox-panel/
+applet_LTLIBRARIES = libopenmoko-panel-startup.la
+
+libopenmoko_panel_startup_la_SOURCES = openmoko-panel-startup.c
+libopenmoko_panel_startup_la_LIBADD = @OPENMOKO_LIBS@
+
+MAINTAINERCLEANFILES = Makefile.in
+
Added:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/openmoko-panel-startup.c
===================================================================
---
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/openmoko-panel-startup.c
2007-05-16 19:47:42 UTC (rev 1977)
+++
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-startup/src/openmoko-panel-startup.c
2007-05-16 19:50:55 UTC (rev 1978)
@@ -0,0 +1,306 @@
+/*
+ * startup-monitor - A tray app that provides feedback
+ * on application startup.
+ *
+ * Copyright 2004, Openedhand Ltd. By Matthew Allum <[EMAIL PROTECTED]>
+ * Copyright 2007 OpenMoko Inc. By Stefan Schmidt <[EMAIL PROTECTED]>
+ *
+ * Based very roughly on GPE's startup monitor.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#include <gdk/gdkx.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+/* FIXME */
+#define USE_LIBSN
+
+#ifdef USE_LIBSN
+ #define SN_API_NOT_YET_FROZEN 1
+ #include <libsn/sn.h>
+#endif
+
+#include <string.h>
+
+#define TIMEOUT 20
+#define HOURGLASS_PIXMAPS 8
+
+typedef struct {
+ GtkImage *image;
+ GdkPixbuf *hglass[HOURGLASS_PIXMAPS];
+ const char *last_icon;
+ guint timeout_id;
+ GdkWindow *root_window;
+ GtkWidget* eventbox;
+ SnDisplay *sn_display;
+} StartupApplet;
+
+typedef struct LaunchList LaunchList;
+
+struct LaunchList {
+ char *id;
+ time_t when;
+ LaunchList *next;
+};
+
+static GdkFilterReturn filter_func(GdkXEvent *gdk_xevent,
+ GdkEvent *event, StartupApplet *applet);
+
+static gboolean applet_main(StartupApplet *applet);
+
+/* Applet destroyed */
+static void startup_applet_free(StartupApplet *applet)
+{
+ gdk_window_remove_filter (applet->root_window,
+ (GdkFilterFunc) filter_func, applet);
+ g_source_remove(applet->timeout_id);
+ g_slice_free(StartupApplet, applet);
+}
+
+/*
+ * Lazy boy globals :/
+ */
+static LaunchList *launch_list = NULL;
+static gboolean hourglass_shown = FALSE;
+static int hourglass_cur_frame_n = 0;
+
+
+static void show_hourglass(StartupApplet *applet)
+{
+ g_message("Entered %s", G_STRFUNC);
+ gtk_widget_show_all(GTK_WIDGET (applet->eventbox));
+ hourglass_shown = TRUE;
+}
+
+static void hide_hourglass(StartupApplet *applet)
+{
+ g_message("Entered %s", G_STRFUNC);
+ gtk_widget_hide_all(GTK_WIDGET (applet->eventbox));
+ hourglass_shown = FALSE;
+}
+
+static void monitor_event_func(SnMonitorEvent *event, void *user_data)
+{
+ SnMonitorContext *context;
+ SnStartupSequence *sequence;
+ const char *id;
+ time_t t;
+ StartupApplet *applet = (StartupApplet *) user_data;
+
+ g_message("Entered %s", G_STRFUNC);
+ context = sn_monitor_event_get_context(event);
+ sequence = sn_monitor_event_get_startup_sequence(event);
+ id = sn_startup_sequence_get_id(sequence);
+
+ switch (sn_monitor_event_get_type(event)) {
+ case SN_MONITOR_EVENT_INITIATED:
+ {
+ g_message("Entered SN_MONITOR_EVENT_INITIATED");
+
+ /* Set up a timeout that will be called every 0.5
seconds */
+ applet->timeout_id = g_timeout_add(500,
+ (GSourceFunc) applet_main, applet);
+
+ LaunchList *item = launch_list;
+
+ /* Reset counter */
+ hourglass_cur_frame_n = 0;
+
+ /* Add a new launch at the end of LaunchList */
+ if (item == NULL) {
+ launch_list = item = malloc(sizeof(LaunchList));
+ } else {
+ while (item->next != NULL)
+ item = item->next;
+ item->next = malloc(sizeof(LaunchList));
+ item = item->next;
+ }
+
+ item->next = NULL;
+ item->id = strdup(id);
+ t = time(NULL);
+ item->when = t + TIMEOUT;
+
+ if (!hourglass_shown)
+ show_hourglass(applet);
+ }
+ break;
+
+ case SN_MONITOR_EVENT_COMPLETED:
+ case SN_MONITOR_EVENT_CANCELED:
+ {
+ g_message("Entered
SN_MONITOR_EVENT_CANCELED/COMPLETED");
+ LaunchList *item = launch_list, *last_item = NULL;
+
+ /* Find actual list item and free it*/
+ while (item != NULL) {
+ if (!strcmp(item->id, id)) {
+ if (last_item == NULL)
+ launch_list = item->next;
+ else
+ last_item->next = item->next;
+
+ free(item->id);
+ free(item);
+
+ break;
+ }
+ last_item = item;
+ item = item->next;
+ }
+
+ if (launch_list == NULL && hourglass_shown)
+ hide_hourglass(applet);
+
+ g_source_remove(applet->timeout_id);
+ }
+ break;
+ default:
+ break; /* Nothing */
+ }
+}
+
+static gboolean applet_main(StartupApplet *applet)
+{
+ LaunchList *item = launch_list;
+ LaunchList *last_item = NULL;
+ time_t t;
+
+ g_message("Entered %s", G_STRFUNC);
+
+ if (!hourglass_shown)
+ return TRUE;
+
+ t = time(NULL);
+
+ /* handle launchee timeouts */
+ while (item) {
+ if ((item->when - t) <= 0) {
+ if (last_item == NULL)
+ launch_list = item->next;
+ else
+ last_item->next = item->next;
+
+ free(item->id);
+ free(item);
+
+ break;
+ }
+
+ last_item = item;
+ item = item->next;
+ }
+
+ if (launch_list == NULL && hourglass_shown) {
+ hide_hourglass(applet);
+ return TRUE;
+ }
+
+ hourglass_cur_frame_n++;
+ if (hourglass_cur_frame_n == 8)
+ hourglass_cur_frame_n = 0;
+
+ g_message("hourglass_cur_frame_n =%i", hourglass_cur_frame_n);
+
+ gtk_image_set_from_pixbuf( applet->image,
applet->hglass[hourglass_cur_frame_n] );
+
+ return TRUE;
+}
+
+static GdkFilterReturn filter_func(GdkXEvent *gdk_xevent, GdkEvent *event,
StartupApplet *applet) {
+ XEvent *xevent;
+ xevent = (XEvent *) gdk_xevent;
+ gboolean ret;
+
+ ret = sn_display_process_event(applet->sn_display, xevent);
+
+ g_message("%s: sn_display_process return value: %i", G_STRFUNC, ret);
+
+ return GDK_FILTER_CONTINUE;
+}
+
+G_MODULE_EXPORT GtkWidget *mb_panel_applet_create(const char *id,
+ GtkOrientation orientation)
+{
+ StartupApplet *applet;
+ Display *xdisplay;
+ SnMonitorContext *context;
+
+ /* Create applet data structure */
+ applet = g_slice_new(StartupApplet);
+
+ //applet->last_icon = NULL;
+
+ /* Create image */
+ applet->image = GTK_IMAGE(gtk_image_new());
+
+ gtk_widget_set_name( GTK_WIDGET(applet->image),
"MatchboxPanelStartupMonitor" );
+ g_object_weak_ref( G_OBJECT(applet->image), (GWeakNotify)
startup_applet_free, applet );
+
+ /* preload pixbufs */
+ guint i = 0;
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-0.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-1.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-2.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-3.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-4.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-5.png", NULL);
+ applet->hglass[i++] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-6.png", NULL);
+ applet->hglass[i] = gdk_pixbuf_new_from_file(DATADIR
"/hourglass-7.png", NULL);
+
+ xdisplay = GDK_DISPLAY_XDISPLAY
+ (gtk_widget_get_display(GTK_WIDGET
(applet->image)));
+
+ applet->sn_display = sn_display_new (xdisplay, NULL, NULL);
+
+ context = sn_monitor_context_new (applet->sn_display,
DefaultScreen(xdisplay),
+ monitor_event_func, (void *)applet,
NULL);
+
+ /* We have to select for property events on at least one
+ * root window (but not all as INITIATE messages go to
+ * all root windows)
+ */
+ XSelectInput (xdisplay, DefaultRootWindow(xdisplay),
PropertyChangeMask);
+
+ /* Get root window */
+ //applet->root_window = gdk_screen_get_root_window
+ // (gtk_widget_get_screen(
GTK_WIDGET (applet->image)));
+
+ applet->root_window =
gdk_window_lookup_for_display(gdk_x11_lookup_xdisplay(xdisplay), 0);
+
+ gdk_window_add_filter (applet->root_window, (GdkFilterFunc)
filter_func, applet);
+
+ /* Show! */
+ applet->eventbox = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(applet->eventbox),
GTK_WIDGET(applet->image));
+ gtk_widget_show_all(GTK_WIDGET(applet->eventbox));
+
+ return GTK_WIDGET(applet->eventbox);
+}
--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog