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. r3793 - developers/sameo/patches/ar6k-ng ([EMAIL PROTECTED])
2. r3794 - in
trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . data
([EMAIL PROTECTED])
3. r3795 - in
trunk/src/target/OM-2007.2/applications/openmoko-messages2: .
data src ([EMAIL PROTECTED])
--- Begin Message ---
Author: sameo
Date: 2008-01-09 12:48:17 +0100 (Wed, 09 Jan 2008)
New Revision: 3793
Added:
developers/sameo/patches/ar6k-ng/115-s3cmci_sdio.patch
Log:
ar6k-ng: Forgot to add the mci patch.
Added: developers/sameo/patches/ar6k-ng/115-s3cmci_sdio.patch
===================================================================
--- developers/sameo/patches/ar6k-ng/115-s3cmci_sdio.patch 2008-01-09
10:43:34 UTC (rev 3792)
+++ developers/sameo/patches/ar6k-ng/115-s3cmci_sdio.patch 2008-01-09
11:48:17 UTC (rev 3793)
@@ -0,0 +1,422 @@
+---
+ drivers/mmc/host/s3cmci.c | 156
+++++++++++++++++++++++++++++++---------------
+ drivers/mmc/host/s3cmci.h | 6 +
+ 2 files changed, 112 insertions(+), 50 deletions(-)
+
+Index: linux-2.6.22-atheros-ng/drivers/mmc/host/s3cmci.c
+===================================================================
+--- linux-2.6.22-atheros-ng.orig/drivers/mmc/host/s3cmci.c 2007-12-21
16:24:25.000000000 +0100
++++ linux-2.6.22-atheros-ng/drivers/mmc/host/s3cmci.c 2007-12-21
16:25:44.000000000 +0100
+@@ -15,6 +15,7 @@
+ #include <linux/mmc/host.h>
+ #include <linux/platform_device.h>
+ #include <linux/timer.h>
++#include <linux/delay.h>
+ #include <linux/irq.h>
+
+ #include <asm/dma.h>
+@@ -44,7 +45,7 @@
+
+ static const int dbgmap_err = dbg_err | dbg_fail;
+ static const int dbgmap_info = dbg_info | dbg_conf;
+-static const int dbgmap_debug = dbg_debug;
++static const int dbgmap_debug = dbg_debug | dbg_pio;
+
+ #define dbg(host, channels, args...) \
+ if (dbgmap_err & channels) \
+@@ -159,7 +160,7 @@
+ u32 newmask;
+
+ newmask = readl(host->base + host->sdiimsk);
+- newmask|= imask;
++ newmask |= imask;
+
+ writel(newmask, host->base + host->sdiimsk);
+
+@@ -180,11 +181,14 @@
+
+ static inline void clear_imask(struct s3cmci_host *host)
+ {
+- writel(0, host->base + host->sdiimsk);
++ if (host->sdio_int)
++ writel(S3C2410_SDIIMSK_SDIOIRQ, host->base + host->sdiimsk);
++ else
++ writel(0, host->base + host->sdiimsk);
+ }
+
+ static inline int get_data_buffer(struct s3cmci_host *host,
+- volatile u32 *words, volatile u32 **pointer)
++ volatile u32 *bytes, volatile u8 **pointer)
+ {
+ struct scatterlist *sg;
+
+@@ -201,7 +205,7 @@
+ }
+ sg = &host->mrq->data->sg[host->pio_sgptr];
+
+- *words = sg->length >> 2;
++ *bytes = sg->length;
+ *pointer= page_address(sg->page) + sg->offset;
+
+ host->pio_sgptr++;
+@@ -212,8 +216,8 @@
+ return 0;
+ }
+
+-#define FIFO_FILL(host) ((readl(host->base + S3C2410_SDIFSTA) &
S3C2410_SDIFSTA_COUNTMASK) >> 2)
+-#define FIFO_FREE(host) ((63 - (readl(host->base + S3C2410_SDIFSTA) &
S3C2410_SDIFSTA_COUNTMASK)) >> 2)
++#define FIFO_FILL(host) ((readl(host->base + S3C2410_SDIFSTA) &
S3C2410_SDIFSTA_COUNTMASK))
++#define FIFO_FREE(host) ((63 - (readl(host->base + S3C2410_SDIFSTA) &
S3C2410_SDIFSTA_COUNTMASK)))
+
+ static inline void do_pio_read(struct s3cmci_host *host)
+ {
+@@ -227,9 +231,9 @@
+ from_ptr = host->base + host->sdidata;
+
+ while ((fifo = FIFO_FILL(host))) {
+- if (!host->pio_words) {
+- res = get_data_buffer(host, &host->pio_words,
+- &host->pio_ptr);
++ if (!host->pio_bytes) {
++ res = get_data_buffer(host, &host->pio_bytes,
++ &host->pio_ptr);
+ if (res) {
+ host->pio_active = XFER_NONE;
+ host->complete_what = COMPLETION_FINALIZE;
+@@ -240,27 +244,26 @@
+ }
+
+ dbg(host, dbg_pio, "pio_read(): new target: [EMAIL
PROTECTED]",
+- host->pio_words, host->pio_ptr);
++ host->pio_bytes, host->pio_ptr);
+ }
+
+ dbg(host, dbg_pio, "pio_read(): fifo:[%02i] "
+ "buffer:[%03i] dcnt:[%08X]\n",
+- fifo, host->pio_words,
++ fifo, host->pio_bytes,
+ readl(host->base + S3C2410_SDIDCNT));
+
+- if (fifo > host->pio_words)
+- fifo = host->pio_words;
++ if (fifo > host->pio_bytes)
++ fifo = host->pio_bytes;
+
+- host->pio_words-= fifo;
+- host->pio_count+= fifo;
++ host->pio_bytes -= fifo;
++ host->pio_count += fifo;
+
+- while(fifo--) {
+- *(host->pio_ptr++) = readl(from_ptr);
+- }
++ while(fifo--)
++ *(host->pio_ptr++) = readb(from_ptr);
+ }
+
+- if (!host->pio_words) {
+- res = get_data_buffer(host, &host->pio_words, &host->pio_ptr);
++ if (!host->pio_bytes) {
++ res = get_data_buffer(host, &host->pio_bytes, &host->pio_ptr);
+ if (res) {
+ dbg(host, dbg_pio, "pio_read(): "
+ "complete (no more buffers).\n");
+@@ -284,9 +287,9 @@
+ to_ptr = host->base + host->sdidata;
+
+ while ((fifo = FIFO_FREE(host))) {
+- if (!host->pio_words) {
+- res = get_data_buffer(host, &host->pio_words,
+- &host->pio_ptr);
++ if (!host->pio_bytes) {
++ res = get_data_buffer(host, &host->pio_bytes,
++ &host->pio_ptr);
+ if (res) {
+ dbg(host, dbg_pio, "pio_write(): "
+ "complete (no more data).\n");
+@@ -297,18 +300,18 @@
+
+ dbg(host, dbg_pio, "pio_write(): "
+ "new source: [EMAIL PROTECTED]",
+- host->pio_words, host->pio_ptr);
++ host->pio_bytes, host->pio_ptr);
+
+ }
+
+- if (fifo > host->pio_words)
+- fifo = host->pio_words;
++ if (fifo > host->pio_bytes)
++ fifo = host->pio_bytes;
+
+- host->pio_words-= fifo;
+- host->pio_count+= fifo;
++ host->pio_bytes -= fifo;
++ host->pio_count += fifo;
+
+ while(fifo--) {
+- writel(*(host->pio_ptr++), to_ptr);
++ writeb(*(host->pio_ptr++), to_ptr);
+ }
+ }
+
+@@ -331,9 +334,9 @@
+ clear_imask(host);
+ if (host->pio_active != XFER_NONE) {
+ dbg(host, dbg_err, "unfinished %s "
+- "- pio_count:[%u] pio_words:[%u]\n",
++ "- pio_count:[%u] pio_bytes:[%u]\n",
+ (host->pio_active == XFER_READ)?"read":"write",
+- host->pio_count, host->pio_words);
++ host->pio_count, host->pio_bytes);
+
+ host->mrq->data->error = -EIO;
+ }
+@@ -376,6 +379,7 @@
+ struct mmc_command *cmd;
+ u32 mci_csta, mci_dsta, mci_fsta, mci_dcnt, mci_imsk;
+ u32 mci_cclear, mci_dclear;
++ int cardint = 0;
+ unsigned long iflags;
+
+ host = (struct s3cmci_host *)dev_id;
+@@ -390,8 +394,19 @@
+ mci_cclear = 0;
+ mci_dclear = 0;
+
++ if (mci_dsta & S3C2410_SDIDSTA_SDIOIRQDETECT) {
++ if (host->sdio_int) {
++ disable_imask(host, S3C2410_SDIIMSK_SDIOIRQ);
++ cardint = 1;
++ host->sdio_pending_int = 0;
++ } else {
++ host->sdio_pending_int = 1;
++ }
++ mci_dclear |= S3C2410_SDIDSTA_SDIOIRQDETECT;
++ }
++
+ if ((host->complete_what == COMPLETION_NONE) ||
+- (host->complete_what == COMPLETION_FINALIZE)) {
++ (host->complete_what == COMPLETION_FINALIZE)) {
+ host->status = "nothing to complete";
+ clear_imask(host);
+ goto irq_out;
+@@ -413,7 +428,7 @@
+
+ if (!host->dodma) {
+ if ((host->pio_active == XFER_WRITE) &&
+- (mci_fsta & S3C2410_SDIFSTA_TFDET)) {
++ (mci_fsta & S3C2410_SDIFSTA_TFDET)) {
+
+ disable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);
+ tasklet_schedule(&host->pio_tasklet);
+@@ -468,8 +483,10 @@
+ goto close_transfer;
+ }
+
+- if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN)
++ if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) {
+ host->complete_what = COMPLETION_XFERFINISH;
++ host->status = "ok: command response received, xfer to
be done";
++ }
+
+ mci_cclear |= S3C2410_SDICMDSTAT_RSPFIN;
+ }
+@@ -550,6 +567,10 @@
+ mci_dcnt, host->status);
+
+ spin_unlock_irqrestore(&host->complete_lock, iflags);
++
++ /* We have to delay this as it calls back into the driver */
++ if (cardint)
++ mmc_signal_sdio_irq(host->mmc);
+ return IRQ_HANDLED;
+
+ }
+@@ -671,7 +692,7 @@
+ writel(0, host->base + S3C2410_SDICMDARG);
+ writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
+ writel(0, host->base + S3C2410_SDICMDCON);
+- writel(0, host->base + host->sdiimsk);
++ clear_imask(host);
+
+ if (cmd->data && cmd->error)
+ cmd->data->error = cmd->error;
+@@ -711,7 +732,7 @@
+
+ //reset fifo
+ mci_con = readl(host->base + S3C2410_SDICON);
+- mci_con|= S3C2410_SDICON_FIFORESET;
++ mci_con |= S3C2410_SDICON_FIFORESET;
+
+ writel(mci_con, host->base + S3C2410_SDICON);
+ }
+@@ -776,6 +797,9 @@
+ if (cmd->flags & MMC_RSP_136)
+ ccon|= S3C2410_SDICMDCON_LONGRSP;
+
++ if (cmd->data)
++ ccon |= S3C2410_SDICMDCON_WITHDATA;
++
+ writel(ccon, host->base + S3C2410_SDICMDCON);
+ }
+
+@@ -833,7 +857,8 @@
+ }
+
+ if (host->is2440) {
+- dcon |= S3C2440_SDIDCON_DS_WORD;
++ dcon |= S3C2440_SDIDCON_DS_BYTE;
++// dcon |= S3C2440_SDIDCON_DS_WORD;
+ dcon |= S3C2440_SDIDCON_DATSTART;
+ }
+
+@@ -858,12 +883,11 @@
+
+ //FIX: set slow clock to prevent timeouts on read
+ if (data->flags & MMC_DATA_READ) {
++ printk("######## FIX ########## \n");
+ writel(0xFF, host->base + S3C2410_SDIPRE);
+ }
+ }
+
+- //debug_dump_registers(host, "Data setup:");
+-
+ return 0;
+ }
+
+@@ -875,7 +899,7 @@
+ return -EINVAL;
+
+ host->pio_sgptr = 0;
+- host->pio_words = 0;
++ host->pio_bytes = 0;
+ host->pio_count = 0;
+ host->pio_active = rw?XFER_WRITE:XFER_READ;
+
+@@ -1019,7 +1043,7 @@
+ host->pdata->set_power(ios->power_mode,
ios->vdd);
+
+ if (!host->is2440)
+- mci_con|=S3C2410_SDICON_FIFORESET;
++ mci_con |= S3C2410_SDICON_FIFORESET;
+
+ break;
+
+@@ -1032,7 +1056,7 @@
+ host->pdata->set_power(ios->power_mode,
ios->vdd);
+
+ if (host->is2440)
+- mci_con|=S3C2440_SDICON_SDRESET;
++ mci_con |= S3C2440_SDICON_SDRESET;
+
+ break;
+ }
+@@ -1060,9 +1084,11 @@
+ else
+ mci_con &=~S3C2410_SDICON_CLOCKTYPE;
+
++ mci_con |= S3C2410_SDICON_SDIOIRQ;
++
+ writel(mci_con, host->base + S3C2410_SDICON);
+
+- if ((ios->power_mode==MMC_POWER_ON)
++ if ((ios->power_mode == MMC_POWER_ON)
+ || (ios->power_mode==MMC_POWER_UP)) {
+
+ dbg(host, dbg_conf, "running at %lukHz (requested: %ukHz).\n",
+@@ -1094,10 +1120,39 @@
+ return s3c2410_gpio_getpin(host->pdata->gpio_wprotect);
+ }
+
++void s3cmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
++{
++ struct s3cmci_host *host = mmc_priv(mmc);
++ u32 con, imask;
++
++ con = readl(host->base + S3C2410_SDICON);
++ imask = readl(host->base + host->sdiimsk);
++
++ if (enable) {
++ host->sdio_int = 1;
++ con |= S3C2410_SDICON_SDIOIRQ;
++ imask |= S3C2410_SDIIMSK_SDIOIRQ;
++ if (host->sdio_pending_int) {
++ printk("We have a pending INT\n");
++ mmc_signal_sdio_irq(host->mmc);
++ host->sdio_pending_int = 0;
++ }
++ } else {
++
++ host->sdio_int = 0;
++ con &= ~S3C2410_SDICON_SDIOIRQ;
++ imask &= ~S3C2410_SDIIMSK_SDIOIRQ;
++ }
++
++ writel(imask, host->base + host->sdiimsk);
++ writel(con, host->base + S3C2410_SDICON);
++}
++
+ static struct mmc_host_ops s3cmci_ops = {
+- .request = s3cmci_request,
+- .set_ios = s3cmci_set_ios,
+- .get_ro = s3cmci_get_ro,
++ .request = s3cmci_request,
++ .set_ios = s3cmci_set_ios,
++ .get_ro = s3cmci_get_ro,
++ .enable_sdio_irq = s3cmci_enable_sdio_irq,
+ };
+
+ static struct s3c24xx_mci_pdata s3cmci_def_pdata = {
+@@ -1143,6 +1198,7 @@
+ host->sdidata = S3C2410_SDIDATA;
+ host->clk_div = 2;
+ }
++ host->sdio_int = 0;
+ host->dodma = 0;
+ host->complete_what = COMPLETION_NONE;
+ host->pio_active = XFER_NONE;
+@@ -1229,7 +1285,7 @@
+
+ mmc->ops = &s3cmci_ops;
+ mmc->ocr_avail = host->pdata->ocr_avail;
+- mmc->caps = MMC_CAP_4_BIT_DATA;
++ mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ;
+ mmc->f_min = host->clk_rate / (host->clk_div * 256);
+ mmc->f_max = host->clk_rate / host->clk_div;
+
+@@ -1250,6 +1306,10 @@
+ goto free_dmabuf;
+ }
+
++
++// mdelay(1000);
++ mmc_detect_change(host->mmc, 500);
++
+ platform_set_drvdata(pdev, mmc);
+
+ dev_info(&pdev->dev,"initialisation done.\n");
+Index: linux-2.6.22-atheros-ng/drivers/mmc/host/s3cmci.h
+===================================================================
+--- linux-2.6.22-atheros-ng.orig/drivers/mmc/host/s3cmci.h 2007-12-21
16:24:29.000000000 +0100
++++ linux-2.6.22-atheros-ng/drivers/mmc/host/s3cmci.h 2007-12-21
16:24:32.000000000 +0100
+@@ -40,6 +40,8 @@
+ unsigned sdiimsk;
+ unsigned sdidata;
+ int dodma;
++ int sdio_int;
++ int sdio_pending_int;
+
+ volatile int dmatogo;
+
+@@ -53,9 +55,9 @@
+ volatile int dma_complete;
+
+ volatile u32 pio_sgptr;
+- volatile u32 pio_words;
++ volatile u32 pio_bytes;
+ volatile u32 pio_count;
+- volatile u32 *pio_ptr;
++ volatile u8 *pio_ptr;
+ #define XFER_NONE 0
+ #define XFER_READ 1
+ #define XFER_WRITE 2
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-09 14:54:05 +0100 (Wed, 09 Jan 2008)
New Revision: 3794
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/data/org.openmoko.Dialer.service.in
Log:
Correct dbus service name
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-09 11:48:17 UTC (rev 3793)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-09 13:54:05 UTC (rev 3794)
@@ -1,5 +1,10 @@
2008-01-09 Chris Lord <[EMAIL PROTECTED]>
+ * data/org.openmoko.Dialer.service.in:
+ Correct name
+
+2008-01-09 Chris Lord <[EMAIL PROTECTED]>
+
* src/phone-kit/moko-network.c: (on_network_registered),
(sms_msghandler):
Add support for reading delivery status reports from the SIM card
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/data/org.openmoko.Dialer.service.in
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/data/org.openmoko.Dialer.service.in
2008-01-09 11:48:17 UTC (rev 3793)
+++
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/data/org.openmoko.Dialer.service.in
2008-01-09 13:54:05 UTC (rev 3794)
@@ -1,3 +1,3 @@
[D-BUS Service]
-Name=org.openmoko.Dialer
+Name=org.openmoko.PhoneKit
[EMAIL PROTECTED]@/phone-kit
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-09 15:38:23 +0100 (Wed, 09 Jan 2008)
New Revision: 3795
Added:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/org.openmoko.OpenmokoMessages2.service.in
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.h
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.xml
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.h
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.h
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
Log:
* configure.ac:
* data/Makefile.am:
* data/org.openmoko.OpenmokoMessages2.service.in:
* src/Makefile.am:
* src/sms-compose.c: (sms_compose_refresh):
* src/sms-compose.h:
* src/sms-contacts.c: (contacts_changed_cb),
(contacts_seq_complete_cb), (sms_contacts_page_new):
* src/sms-dbus.c: (sms_dbus_class_init), (sms_dbus_init),
(sms_dbus_new), (free_data), (view_messages_idle),
(send_message_idle), (sms_dbus_view_messages),
(sms_dbus_send_message), (sms_dbus_append_recipient):
* src/sms-dbus.h:
* src/sms-dbus.xml:
* src/sms-main.c: (main):
* src/sms-notes.c: (notes_treeview_scroll_to_bottom),
(note_progress_cb), (page_shown), (sms_notes_refresh):
* src/sms-notes.h:
* src/sms-utils.c: (sms_select_contact):
* src/sms-utils.h:
* src/sms.h:
Add DBus interface for viewing/sending SMS messages. Also, break
scrolling to bottom of messages (but it was even more broken before,
really)
Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
2008-01-09 14:38:23 UTC (rev 3795)
@@ -1,3 +1,30 @@
+2008-01-09 Chris Lord <[EMAIL PROTECTED]>
+
+ * configure.ac:
+ * data/Makefile.am:
+ * data/org.openmoko.OpenmokoMessages2.service.in:
+ * src/Makefile.am:
+ * src/sms-compose.c: (sms_compose_refresh):
+ * src/sms-compose.h:
+ * src/sms-contacts.c: (contacts_changed_cb),
+ (contacts_seq_complete_cb), (sms_contacts_page_new):
+ * src/sms-dbus.c: (sms_dbus_class_init), (sms_dbus_init),
+ (sms_dbus_new), (free_data), (view_messages_idle),
+ (send_message_idle), (sms_dbus_view_messages),
+ (sms_dbus_send_message), (sms_dbus_append_recipient):
+ * src/sms-dbus.h:
+ * src/sms-dbus.xml:
+ * src/sms-main.c: (main):
+ * src/sms-notes.c: (notes_treeview_scroll_to_bottom),
+ (note_progress_cb), (page_shown), (sms_notes_refresh):
+ * src/sms-notes.h:
+ * src/sms-utils.c: (sms_select_contact):
+ * src/sms-utils.h:
+ * src/sms.h:
+ Add DBus interface for viewing/sending SMS messages. Also, break
+ scrolling to bottom of messages (but it was even more broken before,
+ really)
+
2008-01-07 Chris Lord <[EMAIL PROTECTED]>
* src/sms-notes.c: (scroll_notes_to_bottom_cb), (note_progress_cb),
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/configure.ac
2008-01-09 14:38:23 UTC (rev 3795)
@@ -26,6 +26,21 @@
AC_DEFINE(HAVE_PHOTO_TYPE, 1, [Defined if EContactPhotoType exists])
fi
+dnl ==============================================
+dnl DBUS
+dnl ==============================================
+
+DBUS_GLIB_BIN="`$PKG_CONFIG --variable=exec_prefix dbus-glib-1`/bin"
+
+dnl AC_ARG_WITH(dbusbindir,
+dnl AC_HELP_STRING([--with-dbusbindir=[=DIR]],
+dnl [Use a different path to dbus tools]),,
+dnl dbusdir=$withval;)
+
+AC_ARG_WITH(dbusbindir,[ --with-dbusbindir=DIR dbus tools in DIR],
[DBUS_GLIB_BIN="$withval"])
+echo "DBus tools location ${DBUS_GLIB_BIN}"
+AC_SUBST(DBUS_GLIB_BIN)
+
AC_OUTPUT([
Makefile
src/Makefile
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/Makefile.am
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/Makefile.am
2008-01-09 14:38:23 UTC (rev 3795)
@@ -2,6 +2,17 @@
desktopdir = $(datadir)/applications
desktop_DATA = openmoko-messages.desktop
+#
+# Dbus service file
+#
+servicedir = $(datadir)/dbus-1/services
+service_in_files = org.openmoko.OpenmokoMessages2.service.in
+service_DATA = $(service_in_files:.service.in=.service)
+
+# Expand the bindir in the service file
+$(service_DATA) : $(service_in_files) Makefile
+ sed -e "s|[EMAIL PROTECTED]@|$(bindir)|g" $< > $@
+
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(desktop_DATA)
Added:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/org.openmoko.OpenmokoMessages2.service.in
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/org.openmoko.OpenmokoMessages2.service.in
2008-01-09 13:54:05 UTC (rev 3794)
+++
trunk/src/target/OM-2007.2/applications/openmoko-messages2/data/org.openmoko.OpenmokoMessages2.service.in
2008-01-09 14:38:23 UTC (rev 3795)
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.openmoko.openmoko-messages2
[EMAIL PROTECTED]@/openmoko-messages
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/Makefile.am
2008-01-09 14:38:23 UTC (rev 3795)
@@ -14,5 +14,14 @@
sms-compose.c \
sms-compose.h \
sms-utils.c \
- sms-utils.h
+ sms-utils.h \
+ sms-dbus.c \
+ sms-dbus.h
+%-glue.h: %.xml
+ $(LIBTOOL) --mode=execute $(DBUS_GLIB_BIN)/dbus-binding-tool
--prefix=$(subst -,_,$*) --mode=glib-server --output=$@ $<
+
+BUILT_SOURCES = sms-dbus-glue.h
+
+EXTRA_DIST = sms-dbus.xml
+
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
2008-01-09 13:54:05 UTC (rev 3794)
+++
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -110,6 +110,19 @@
MOKO_STOCK_SMS_NEW);
}
+void
+sms_compose_refresh (SmsData *data)
+{
+ if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) ==
+ SMS_PAGE_COMPOSE) {
+ page_hidden (data);
+ page_shown (data);
+ } else {
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (data->notebook),
+ SMS_PAGE_COMPOSE);
+ }
+}
+
static void
notify_visible_cb (GObject *gobject, GParamSpec *arg1, SmsData *data)
{
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.h
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.h
2008-01-09 13:54:05 UTC (rev 3794)
+++
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-compose.h
2008-01-09 14:38:23 UTC (rev 3795)
@@ -23,5 +23,6 @@
#include "sms.h"
GtkWidget *sms_compose_page_new (SmsData *data);
+void sms_compose_refresh (SmsData *data);
#endif /* SMS_COMPOSE_H */
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
2008-01-09 13:54:05 UTC (rev 3794)
+++
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -233,6 +233,8 @@
static void
contacts_changed_cb (EBookView *ebookview, GList *contacts, SmsData *data)
{
+ data->book_seq_complete = FALSE;
+
for (; contacts; contacts = contacts->next) {
GList *categories, *c;
GtkTreeIter *iter;
@@ -301,6 +303,13 @@
}
static void
+contacts_seq_complete_cb (EBookView *ebookview, EBookViewStatus status,
+ SmsData *data)
+{
+ data->book_seq_complete = TRUE;
+}
+
+static void
free_iter_slice (GtkTreeIter *iter)
{
g_slice_free (GtkTreeIter, iter);
@@ -594,6 +603,7 @@
GError *error = NULL;
+ data->book_seq_complete = FALSE;
data->contact_groups = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify)g_free, (GDestroyNotify)malloc_list_free);
data->group_refs = g_hash_table_new_full (g_str_hash, g_str_equal,
@@ -736,6 +746,8 @@
G_CALLBACK (contacts_changed_cb), data);
g_signal_connect (view, "contacts-removed",
G_CALLBACK (contacts_removed_cb), data);
+ g_signal_connect (view, "sequence-complete",
+ G_CALLBACK (contacts_seq_complete_cb), data);
e_book_view_start (view);
/* Connect to toolbar delete buttons */
Added: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.c
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -0,0 +1,152 @@
+/*
+ * openmoko-messages -- OpenMoko SMS Application
+ *
+ * Authored by Chris Lord <[EMAIL PROTECTED]>
+ *
+ * Copyright (C) 2008 OpenMoko Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date$) [$Author$]
+ */
+
+#include "sms.h"
+#include "sms-dbus.h"
+#include "sms-utils.h"
+#include "sms-compose.h"
+#include "sms-notes.h"
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+
+G_DEFINE_TYPE (SmsDbus, sms_dbus, G_TYPE_OBJECT)
+
+#include "sms-dbus-glue.h"
+
+static void
+sms_dbus_class_init (SmsDbusClass *klass)
+{
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
+ &dbus_glib_sms_dbus_object_info);
+}
+
+static void
+sms_dbus_init (SmsDbus *sms_dbus)
+{
+}
+
+SmsDbus *
+sms_dbus_new (SmsData *data)
+{
+ SmsDbus *sms_dbus = g_object_new (SMS_TYPE_DBUS, NULL);
+ sms_dbus->priv = data;
+ return sms_dbus;
+}
+
+typedef struct {
+ SmsData *data;
+ gchar *uid;
+ gchar *number;
+ gchar *message;
+} SmsDbusData;
+
+static void
+free_data (SmsDbusData *data)
+{
+ g_free (data->uid);
+ g_free (data->number);
+ g_free (data->message);
+ g_slice_free (SmsDbusData, data);
+}
+
+static gboolean
+view_messages_idle (SmsDbusData *data)
+{
+ if (data->data->book_seq_complete) {
+ if (sms_select_contact (data->data, data->uid))
+ sms_notes_refresh (data->data);
+
+ free_data (data);
+ return FALSE;
+ } else
+ return TRUE;
+}
+
+static gboolean
+send_message_idle (SmsDbusData *data)
+{
+ if (data->data->book_seq_complete) {
+ if (sms_select_contact (data->data, data->uid))
+ sms_compose_refresh (data->data);
+
+ free_data (data);
+ return FALSE;
+ } else
+ return TRUE;
+}
+
+gboolean
+sms_dbus_view_messages (SmsDbus *sms_dbus, const gchar *uid, GError **error)
+{
+ EContact *contact;
+
+ if (e_book_get_contact (sms_dbus->priv->ebook, uid, &contact, error)) {
+ SmsDbusData *data;
+
+ g_object_unref (contact);
+
+ data = g_slice_new0 (SmsDbusData);
+ data->data = sms_dbus->priv;
+ data->uid = g_strdup (uid);
+
+ g_idle_add ((GSourceFunc)view_messages_idle, data);
+
+ return TRUE;
+ } else
+ return FALSE;
+}
+
+gboolean
+sms_dbus_send_message (SmsDbus *sms_dbus, const gchar *uid, const gchar
*number,
+ const gchar *message, GError **error)
+{
+ EContact *contact;
+
+ if (e_book_get_contact (sms_dbus->priv->ebook, uid, &contact, error)) {
+ SmsDbusData *data;
+
+ g_object_unref (contact);
+
+ data = g_slice_new0 (SmsDbusData);
+ data->data = sms_dbus->priv;
+ data->uid = g_strdup (uid);
+ data->number = g_strdup (number);
+ data->message = g_strdup (message);
+
+ g_idle_add ((GSourceFunc)send_message_idle, data);
+
+ return TRUE;
+ } else
+ return FALSE;
+}
+
+gboolean
+sms_dbus_append_recipient (SmsDbus *sms_dbus, const gchar *uid,
+ const gchar *number, GError **error)
+{
+ EContact *contact;
+
+ if (e_book_get_contact (sms_dbus->priv->ebook, uid, &contact, error)) {
+ /* TODO: Add multiple recipient support and implement this */
+ g_object_unref (contact);
+ return TRUE;
+ } else
+ return FALSE;
+}
+
Added: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.h
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.h
2008-01-09 14:38:23 UTC (rev 3795)
@@ -0,0 +1,74 @@
+/*
+ * openmoko-messages -- OpenMoko SMS Application
+ *
+ * Authored by Chris Lord <[EMAIL PROTECTED]>
+ *
+ * Copyright (C) 2008 OpenMoko Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date$) [$Author$]
+ */
+
+#ifndef SMS_DBUS_H
+#define SMS_DBUS_H
+
+#include "sms.h"
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define SMS_TYPE_DBUS (sms_dbus_get_type ())
+
+#define SMS_DBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+ SMS_TYPE_DBUS, SmsDbus))
+
+#define SMS_DBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
+ SMS_TYPE_DBUS, SmsDbusClass))
+
+#define SMS_IS_DBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+ SMS_TYPE_DBUS))
+
+#define SMS_IS_DBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ SMS_TYPE_DBUS))
+
+#define SMS_DBUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+ SMS_TYPE_DBUS, SmsDbusClass))
+
+typedef struct _SmsDbus SmsDbus;
+typedef struct _SmsDbusClass SmsDbusClass;
+
+struct _SmsDbus
+{
+ GObject parent;
+ SmsData *priv;
+};
+
+struct _SmsDbusClass
+{
+ GObjectClass parent_class;
+};
+
+SmsDbus * sms_dbus_new (SmsData *data);
+
+/* dbus methods */
+gboolean sms_dbus_view_messages (SmsDbus *sms_dbus, const gchar *uid,
+ GError **error);
+gboolean sms_dbus_send_message (SmsDbus *sms_dbus, const gchar *uid,
+ const gchar *number, const gchar *message,
+ GError **error);
+gboolean sms_dbus_append_recipient (SmsDbus *sms_dbus, const gchar *uid,
+ const gchar *number, GError **error);
+
+G_END_DECLS
+
+#endif /* SMS_DBUS_H */
+
Added:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.xml
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.xml
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-dbus.xml
2008-01-09 14:38:23 UTC (rev 3795)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<node name="/org/openmoko/OpenmokoMessages2">
+<interface name="org.openmoko.OpenmokoMessages2">
+<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="sms_dbus"/>
+
+ <method name="ViewMessages">
+ <arg type="s" name="uid" direction="in" />
+ </method>
+
+ <method name="SendMessage">
+ <arg type="s" name="uid" direction="in" />
+ <arg type="s" name="number" direction="in" />
+ <arg type="s" name="message" direction="in" />
+ </method>
+
+ <method name="AppendRecipient">
+ <arg type="s" name="uid" direction="in" />
+ <arg type="s" name="number" direction="in" />
+ </method>
+
+</interface>
+</node>
+
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-main.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -21,8 +21,14 @@
#include "sms-contacts.h"
#include "sms-notes.h"
#include "sms-compose.h"
+#include "sms-dbus.h"
#include <libmokoui2/moko-stock.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+#define SMS_NAMESPACE "org.openmoko.OpenmokoMessages2"
+#define SMS_PATH "/org/openmoko/OpenmokoMessages2"
+
static void
notebook_add_page_with_icon (GtkWidget *notebook, GtkWidget *child,
const gchar *icon_name, int padding)
@@ -52,6 +58,7 @@
{
SmsData data;
DBusGConnection *connection;
+ DBusGProxy *proxy;
GtkWidget *vbox, *toolbar;
GError *error = NULL;
@@ -65,9 +72,25 @@
g_error_free (error);
data.sms_proxy = NULL;
} else {
+ guint32 ret;
+
data.sms_proxy = dbus_g_proxy_new_for_name (connection,
"org.openmoko.PhoneKit", "/org/openmoko/PhoneKit/Sms",
"org.openmoko.PhoneKit.Sms");
+
+ proxy = dbus_g_proxy_new_for_name (connection,
+ DBUS_SERVICE_DBUS, DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS);
+ if (org_freedesktop_DBus_request_name (proxy,
+ SMS_NAMESPACE, 0, &ret, &error)) {
+ SmsDbus *sms_dbus = sms_dbus_new (&data);
+ dbus_g_connection_register_g_object (connection,
+ SMS_PATH, G_OBJECT (sms_dbus));
+ } else {
+ g_warning ("Failing requestion dbus name %s: %s",
+ SMS_NAMESPACE, error->message);
+ g_error_free (error);
+ }
}
data.window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -42,6 +42,27 @@
RECV_NOTES,
};
+static gboolean
+notes_treeview_scroll_to_bottom (SmsData *data)
+{
+ GtkTreePath *path;
+ GtkTreeModel *model;
+ GtkTreeViewColumn *column;
+
+ column = gtk_tree_view_get_column (
+ GTK_TREE_VIEW (data->notes_treeview), 0);
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (data->notes_treeview));
+ path = gtk_tree_path_new_from_indices (
+ gtk_tree_model_iter_n_children (model, NULL) - 1, -1);
+
+ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (data->notes_treeview),
+ path, column, TRUE, 1.0, 0.0);
+
+ gtk_tree_path_free (path);
+
+ return FALSE;
+}
+
static void
note_changed_cb (JanaStoreView *store_view, GList *components, SmsData *data)
{
@@ -90,22 +111,15 @@
}
static void
-scroll_notes_to_bottom_cb (GtkAdjustment *vadjust, SmsData *data)
-{
- /* Scroll note list to the bottom */
- if (vadjust->value != (vadjust->upper - vadjust->page_size))
- gtk_adjustment_set_value (vadjust,
- vadjust->upper - vadjust->page_size);
-}
-
-static void
note_progress_cb (JanaStoreView *store_view, gint percent, SmsData *data)
{
if (percent != 100) return;
- /* Remove scroll-to-bottom callback */
- g_signal_handlers_disconnect_by_func (
- data->notes_treeview, scroll_notes_to_bottom_cb, data);
+ notes_treeview_scroll_to_bottom (data);
+ /*g_idle_add ((GSourceFunc)notes_treeview_scroll_to_bottom, data);*/
+
+ g_signal_handlers_disconnect_by_func (store_view,
+ note_progress_cb, data);
}
static gboolean
@@ -180,8 +194,6 @@
G_CALLBACK (scroll_changed_cb), data);
g_signal_connect (vadjust, "value-changed",
G_CALLBACK (scroll_changed_cb), data);
- g_signal_connect (vadjust, "changed",
- G_CALLBACK (scroll_notes_to_bottom_cb), data);
/* Assign the recipient photo to the generic avatar icon, in case we
* can't find it later.
@@ -289,6 +301,19 @@
}
}
+void
+sms_notes_refresh (SmsData *data)
+{
+ if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) ==
+ SMS_PAGE_NOTES) {
+ page_hidden (data);
+ page_shown (data);
+ } else {
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (data->notebook),
+ SMS_PAGE_NOTES);
+ }
+}
+
static void
notify_visible_cb (GObject *gobject, GParamSpec *arg1, SmsData *data)
{
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.h
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.h
2008-01-09 14:38:23 UTC (rev 3795)
@@ -23,5 +23,6 @@
#include "sms.h"
GtkWidget *sms_notes_page_new (SmsData *data);
+void sms_notes_refresh (SmsData *data);
#endif
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
2008-01-09 14:38:23 UTC (rev 3795)
@@ -33,6 +33,32 @@
gtk_combo_box_remove_text (combo, 0);
}
+gboolean
+sms_select_contact (SmsData *data, const gchar *uid)
+{
+ GtkTreeSelection *selection;
+ GtkTreeIter iter;
+
+ if (gtk_tree_model_get_iter_first (data->contacts_store, &iter)) do {
+ gchar *iter_uid;
+ gtk_tree_model_get (data->contacts_store,
+ &iter, COL_UID, &iter_uid, -1);
+
+ if (iter_uid && (strcmp (uid, iter_uid) == 0)) {
+ g_free (iter_uid);
+ selection = gtk_tree_view_get_selection (
+ GTK_TREE_VIEW (data->contacts_treeview));
+ gtk_tree_selection_select_iter (selection, &iter);
+ return TRUE;
+ }
+
+ g_free (iter_uid);
+
+ } while (gtk_tree_model_iter_next (data->contacts_store, &iter));
+
+ return FALSE;
+}
+
EContact *
sms_get_selected_contact (SmsData *data)
{
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
2008-01-09 14:38:23 UTC (rev 3795)
@@ -27,5 +27,6 @@
GdkPixbuf *sms_contact_load_photo (EContact *contact);
gboolean sms_contacts_note_count_update (SmsData *data);
gboolean sms_delete_selected_contact_messages (SmsData *data);
+gboolean sms_select_contact (SmsData *data, const gchar *uid);
#endif /* SMS_UTILS_H */
Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
2008-01-09 13:54:05 UTC (rev 3794)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms.h
2008-01-09 14:38:23 UTC (rev 3795)
@@ -43,6 +43,7 @@
GHashTable *note_emblems;
EBook *ebook;
+ gboolean book_seq_complete;
GtkTreeModel *contacts_store;
GtkTreeModel *contacts_filter;
GHashTable *contacts;
--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog