r3863 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src src/phone-kit

chris at sita.openmoko.org chris at sita.openmoko.org
Thu Jan 17 12:36:59 CET 2008


Author: chris
Date: 2008-01-17 12:36:56 +0100 (Thu, 17 Jan 2008)
New Revision: 3863

Added:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-marshal.list
Removed:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-glue.h
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.h
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-dbus.xml
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.h
Log:
        * src/moko-dialer-glue.h:
        Remove, shouldn't be in version control

        * src/phone-kit/moko-sms-marshal.list:
        * src/phone-kit/Makefile.am:
        Add custom marshaller for VOID:BOOLEAN,BOOLEAN

        * src/phone-kit/moko-listener.c: (moko_listener_on_error):
        * src/phone-kit/moko-listener.h:
        Add on_error function

        * src/phone-kit/moko-network.c: (gsmd_eventhandler),
        (network_init_gsmd), (on_network_registered):
        Don't retrieve operators list, takes too long and blocks other calls

        * src/phone-kit/moko-sms-dbus.xml:
        * src/phone-kit/moko-sms.c: (moko_sms_set_property),
        (moko_sms_class_init), (on_error), (listener_interface_init),
        (start_handling_sms), (sms_store_opened_cb), (moko_sms_get_status),
        (moko_sms_get_memory_status):
        * src/phone-kit/moko-sms.h:
        Add memory full signal/query function (incomplete, needs further
        support from gsmd)


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-17 11:36:56 UTC (rev 3863)
@@ -1,3 +1,29 @@
+2008-01-17  Chris Lord  <chris at openedhand.com>
+
+	* src/moko-dialer-glue.h:
+	Remove, shouldn't be in version control
+
+	* src/phone-kit/moko-sms-marshal.list:
+	* src/phone-kit/Makefile.am:
+	Add custom marshaller for VOID:BOOLEAN,BOOLEAN
+
+	* src/phone-kit/moko-listener.c: (moko_listener_on_error):
+	* src/phone-kit/moko-listener.h:
+	Add on_error function
+
+	* src/phone-kit/moko-network.c: (gsmd_eventhandler),
+	(network_init_gsmd), (on_network_registered):
+	Don't retrieve operators list, takes too long and blocks other calls
+
+	* src/phone-kit/moko-sms-dbus.xml:
+	* src/phone-kit/moko-sms.c: (moko_sms_set_property),
+	(moko_sms_class_init), (on_error), (listener_interface_init),
+	(start_handling_sms), (sms_store_opened_cb), (moko_sms_get_status),
+	(moko_sms_get_memory_status):
+	* src/phone-kit/moko-sms.h:
+	Add memory full signal/query function (incomplete, needs further
+	support from gsmd)
+
 2008-01-16  Chris Lord  <chris at openedhand.com>
 
 	* src/phone-kit/moko-alsa-volume-scale.c: (create_widgets):

Deleted: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-glue.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-glue.h	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-glue.h	2008-01-17 11:36:56 UTC (rev 3863)
@@ -1,216 +0,0 @@
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal_moko_dialer_MARSHAL_H__
-#define __dbus_glib_marshal_moko_dialer_MARSHAL_H__
-
-#include	<glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.ZYAPVT:1) */
-extern void dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                                    GValue       *return_value,
-                                                                    guint         n_param_values,
-                                                                    const GValue *param_values,
-                                                                    gpointer      invocation_hint,
-                                                                    gpointer      marshal_data);
-void
-dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER_POINTER (GClosure     *closure,
-                                                        GValue       *return_value,
-                                                        guint         n_param_values,
-                                                        const GValue *param_values,
-                                                        gpointer      invocation_hint,
-                                                        gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
-                                                             gpointer     arg_1,
-                                                             gpointer     arg_2,
-                                                             gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.ZYAPVT:2) */
-extern void dbus_glib_marshal_moko_dialer_BOOLEAN__STRING_POINTER (GClosure     *closure,
-                                                                   GValue       *return_value,
-                                                                   guint         n_param_values,
-                                                                   const GValue *param_values,
-                                                                   gpointer      invocation_hint,
-                                                                   gpointer      marshal_data);
-void
-dbus_glib_marshal_moko_dialer_BOOLEAN__STRING_POINTER (GClosure     *closure,
-                                                       GValue       *return_value,
-                                                       guint         n_param_values,
-                                                       const GValue *param_values,
-                                                       gpointer      invocation_hint,
-                                                       gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_POINTER) (gpointer     data1,
-                                                            gpointer     arg_1,
-                                                            gpointer     arg_2,
-                                                            gpointer     data2);
-  register GMarshalFunc_BOOLEAN__STRING_POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__STRING_POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_string (param_values + 1),
-                       g_marshal_value_peek_pointer (param_values + 2),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:POINTER (/tmp/dbus-binding-tool-c-marshallers.ZYAPVT:3) */
-extern void dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER (GClosure     *closure,
-                                                            GValue       *return_value,
-                                                            guint         n_param_values,
-                                                            const GValue *param_values,
-                                                            gpointer      invocation_hint,
-                                                            gpointer      marshal_data);
-void
-dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER (GClosure     *closure,
-                                                GValue       *return_value,
-                                                guint         n_param_values,
-                                                const GValue *param_values,
-                                                gpointer      invocation_hint,
-                                                gpointer      marshal_data)
-{
-  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     data2);
-  register GMarshalFunc_BOOLEAN__POINTER callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gboolean v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_pointer (param_values + 1),
-                       data2);
-
-  g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal_moko_dialer_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib_moko_dialer_methods[] = {
-  { (GCallback) moko_dialer_show_dialer, dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER, 0 },
-  { (GCallback) moko_dialer_show_missed_calls, dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER, 34 },
-  { (GCallback) moko_dialer_get_status, dbus_glib_marshal_moko_dialer_BOOLEAN__POINTER_POINTER, 73 },
-  { (GCallback) moko_dialer_dial, dbus_glib_marshal_moko_dialer_BOOLEAN__STRING_POINTER, 121 },
-  { (GCallback) moko_dialer_hang_up, dbus_glib_marshal_moko_dialer_BOOLEAN__STRING_POINTER, 160 },
-};
-
-const DBusGObjectInfo dbus_glib_moko_dialer_object_info = {
-  0,
-  dbus_glib_moko_dialer_methods,
-  5,
-"org.openmoko.Dialer\0ShowDialer\0S\0\0org.openmoko.Dialer\0ShowMissedCalls\0S\0\0org.openmoko.Dialer\0GetStatus\0S\0status\0O\0F\0N\0i\0\0org.openmoko.Dialer\0Dial\0S\0number\0I\0s\0\0org.openmoko.Dialer\0HangUp\0S\0message\0I\0s\0\0\0",
-"org.openmoko.Dialer\0IncomingCall\0org.openmoko.Dialer\0OutgoingCall\0org.openmoko.Dialer\0Talking\0org.openmoko.Dialer\0HungUp\0org.openmoko.Dialer\0Rejected\0\0",
-"\0"
-};
-

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am	2008-01-17 11:36:56 UTC (rev 3863)
@@ -1,6 +1,8 @@
 AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DPKGDATADIR=\"$(pkgdatadir)\"
 AM_CFLAGS = -Wall @DIALER_CFLAGS@ @JANA_CFLAGS@ @NOTIFY_CFLAGS@ @ALSA_CFLAGS@
 
+GLIB_GENMARSHAL = `pkg-config --variable=glib_genmarshal glib-2.0`
+
 INCLUDES = -I$(top_srcdir)/src/common
 
 bin_PROGRAMS = phone-kit
@@ -17,7 +19,8 @@
 	moko-alsa-volume-control.c moko-alsa-volume-control.h \
 	moko-alsa-volume-scale.c moko-alsa-volume-scale.h \
 	moko-pin.c moko-pin.h \
-	moko-mcc-dc.h
+	moko-mcc-dc.h \
+	$(BUILT_SOURCES)
 
 phone_kit_LDADD = @DIALER_LIBS@ @JANA_LIBS@ @NOTIFY_LIBS@ @ALSA_LIBS@ $(top_srcdir)/src/common/libdialer-common.a
 
@@ -25,7 +28,33 @@
 %-glue.h: %-dbus.xml
 	$(LIBTOOL) --mode=execute $(DBUS_GLIB_BIN)/dbus-binding-tool --prefix=$(subst -,_,$*) --mode=glib-server --output=$@ $<
 	
-BUILT_SOURCES = moko-dialer-glue.h moko-sms-glue.h moko-network-glue.h
+BUILT_SOURCES = moko-dialer-glue.h moko-sms-glue.h moko-network-glue.h \
+	moko-sms-marshal.h moko-sms-marshal.c
 
-EXTRA_DIST = moko-dialer-dbus.xml moko-sms-dbus.xml moko-network-dbus.xml
+STAMP_FILES = stamp-moko-sms-marshal.h
 
+moko-sms-marshal.h: stamp-moko-sms-marshal.h
+	@true
+stamp-moko-sms-marshal.h: Makefile moko-sms-marshal.list
+	$(GLIB_GENMARSHAL) \
+		--prefix=_moko_sms_marshal \
+		--header \
+	$(srcdir)/moko-sms-marshal.list > xgen-tmh && \
+	(cmp -s xgen-tmh moko-sms-marshal.h || \
+		cp -f xgen-tmh moko-sms-marshal.h) && \
+	rm -f xgen-tmh && \
+	echo timestamp > $(@F)
+
+moko-sms-marshal.c: Makefile moko-sms-marshal.list
+	(echo "#include \"moko-sms-marshal.h\"" ; \
+	 $(GLIB_GENMARSHAL) \
+		--prefix=_moko_sms_marshal \
+		--body \
+	 $(srcdir)/moko-sms-marshal.list ) > xgen-tmc && \
+	cp -f xgen-tmc moko-sms-marshal.c && \
+	rm -f xgen-tmc
+
+CLEANFILES = $(STAMP_FILES) $(BUILT_SOURCES)
+
+EXTRA_DIST = moko-dialer-dbus.xml moko-sms-dbus.xml moko-network-dbus.xml moko-sms-marshal.list
+

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.c	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.c	2008-01-17 11:36:56 UTC (rev 3863)
@@ -168,3 +168,13 @@
     interface->on_send_sms (listener, handle, result);
 }
 
+void
+moko_listener_on_error (MokoListener *listener,
+                        struct lgsm_handle *handle,
+                        int cme, int cms)
+{
+  MokoListenerInterface *interface = MOKO_LISTENER_GET_INTERFACE (listener);
+  if (interface->on_error)
+    interface->on_error (listener, handle, cme, cms);
+}
+

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.h	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-listener.h	2008-01-17 11:36:56 UTC (rev 3863)
@@ -76,6 +76,9 @@
   void  (*on_send_sms)           (MokoListener *listener,
                                   struct lgsm_handle *handle,
                                   int result);
+  void  (*on_error)              (MokoListener *listener,
+                                  struct lgsm_handle *handle,
+                                  int cme, int cms);
 };
 
 GType moko_listener_get_type (void);
@@ -113,6 +116,9 @@
 void  moko_listener_on_send_sms           (MokoListener *listener,
                                 struct lgsm_handle *handle,
                                 int result);
+void  moko_listener_on_error              (MokoListener *listener,
+                                struct lgsm_handle *handle,
+                                int cme, int cms);
 
 #endif /* MOKO_LISTENER_H */
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c	2008-01-17 11:36:56 UTC (rev 3863)
@@ -197,7 +197,10 @@
         lgsm_oper_get (handle);
         
         /* Retrieve operator list to get current country code */
-        lgsm_opers_get (handle);
+        /* FIXME: This takes too long, we need gsmd to give us the current 
+         * operator number from lgsm_oper_get.
+         */
+        /*lgsm_opers_get (handle);*/
         
         /* Retrieve IMSI to get home country code */
         lgsm_get_imsi (handle);
@@ -209,10 +212,10 @@
           priv->retry_oper = g_timeout_add_seconds (RETRY_DELAY,
                                                     (GSourceFunc)retry_oper_get,
                                                     listener);
-        if (priv->retry_opers_n)
+        /*if (priv->retry_opers_n)
           priv->retry_opers = g_timeout_add_seconds (RETRY_DELAY,
                                                      (GSourceFunc)retry_opers_get,
-                                                     listener);
+                                                     listener);*/
         if (priv->retry_imsi_n)
           priv->retry_imsi = g_timeout_add_seconds (RETRY_DELAY,
                                                     (GSourceFunc)retry_get_imsi,
@@ -498,6 +501,13 @@
                                       aux->u.call_status.prog);
     }
     break;
+  case GSMD_EVT_IN_ERROR :
+    for (l = priv->listeners; l; l = l->next) {
+      moko_listener_on_error (MOKO_LISTENER (l->data), priv->handle,
+                              aux->u.cme_err.number,
+                              aux->u.cms_err.number);
+    }
+    break;
   default :
     g_warning ("Unhandled gsmd event (%d)", evt_type);
   }
@@ -743,6 +753,7 @@
   lgsm_evt_handler_register (priv->handle, GSMD_EVT_OUT_STATUS, gsmd_eventhandler);
   lgsm_evt_handler_register (priv->handle, GSMD_EVT_OUT_STATUS, gsmd_eventhandler);
   lgsm_evt_handler_register (priv->handle, GSMD_EVT_PIN, gsmd_eventhandler);
+  lgsm_evt_handler_register (priv->handle, GSMD_EVT_IN_ERROR, gsmd_eventhandler);
   lgsm_register_handler (priv->handle, GSMD_MSG_NETWORK, net_msghandler);
   lgsm_register_handler (priv->handle, GSMD_MSG_PHONE, phone_msghandler);
   lgsm_register_handler (priv->handle, GSMD_MSG_SMS, sms_msghandler);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-dbus.xml
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-dbus.xml	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-dbus.xml	2008-01-17 11:36:56 UTC (rev 3863)
@@ -12,9 +12,19 @@
     <arg type="s" name="uid" direction="out" />
   </method>
 
+  <method name="GetMemoryStatus">
+    <arg type="b" name="sim_full" direction="out" />
+    <arg type="b" name="phone_full" direction="out" />
+  </method>
+
   <signal name="StatusChanged">
     <arg type="i" name="status" />
   </signal>
 
+  <signal name="MemoryFull">
+    <arg type="b" name="sim" />
+    <arg type="b" name="phone" />
+  </signal>
+
 </interface>
 </node>

Added: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-marshal.list
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-marshal.list	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms-marshal.list	2008-01-17 11:36:56 UTC (rev 3863)
@@ -0,0 +1 @@
+VOID:BOOLEAN,BOOLEAN

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c	2008-01-17 11:36:56 UTC (rev 3863)
@@ -34,6 +34,7 @@
 #include "moko-network.h"
 #include "moko-listener.h"
 #include "moko-notify.h"
+#include "moko-sms-marshal.h"
 
 static void
 listener_interface_init (gpointer g_iface, gpointer iface_data);
@@ -53,6 +54,7 @@
 enum
 {
   STATUS_CHANGED,
+  MEMORY_FULL,
   
   LAST_SIGNAL
 };
@@ -62,7 +64,7 @@
 struct _MokoSmsPrivate
 {
   MokoNetwork        *network;
-  gboolean           got_subscriber_number;
+  /*gboolean           got_subscriber_number;*/
   gboolean           handling_sms;
   
   JanaStore          *sms_store;
@@ -72,6 +74,8 @@
   GList              *unread_uids;
   NotifyNotification *notification;
   MokoNotify         *notify;
+  
+  gboolean           sim_full;
 };
 
 static void start_handling_sms (MokoSms *sms);
@@ -89,7 +93,7 @@
   }
 }
 
-static void
+/*static void
 subscriber_number_changed_cb (MokoNetwork *network, const gchar *number,
                               MokoSms *sms)
 {
@@ -111,13 +115,13 @@
         g_signal_emit (sms, signals[STATUS_CHANGED], 0, PK_SMS_NOTREADY);
     }
   }
-}
+}*/
 
 static void
 moko_sms_set_property (GObject *object, guint property_id,
                        const GValue *value, GParamSpec *pspec)
 {
-  gchar *number;
+  /*gchar *number;*/
   MokoSms *sms = MOKO_SMS (object);
   MokoSmsPrivate *priv = sms->priv;
 
@@ -128,14 +132,15 @@
         g_object_unref (priv->network);
       }
       priv->network = g_value_dup_object (value);
-      if (!moko_network_get_subscriber_number (priv->network, &number, NULL)) {
+      /*if (!moko_network_get_subscriber_number (priv->network, &number, NULL)) {
         subscriber_number_changed_cb (priv->network, NULL, MOKO_SMS (object));
       } else {
         subscriber_number_changed_cb (priv->network, number, MOKO_SMS (object));
       }
       g_signal_connect (priv->network, "subscriber_number_changed",
-                        G_CALLBACK (subscriber_number_changed_cb), object);
+                        G_CALLBACK (subscriber_number_changed_cb), object);*/
       /* moko_network_add_listener happens in start_handling_sms */
+      if (!priv->handling_sms) start_handling_sms (sms);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -222,6 +227,16 @@
                   G_TYPE_NONE, 
                   1, G_TYPE_INT);
 
+  signals[MEMORY_FULL] =
+    g_signal_new ("memory_full", 
+                  G_TYPE_FROM_CLASS (obj_class),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (MokoSmsClass, memory_full),
+                  NULL, NULL,
+                  _moko_sms_marshal_VOID__BOOLEAN_BOOLEAN,
+                  G_TYPE_NONE, 
+                  2, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+
   g_type_class_add_private (obj_class, sizeof (MokoSmsPrivate)); 
   dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass), 
                                    &dbus_glib_moko_sms_object_info);
@@ -405,6 +420,18 @@
 }
 
 static void
+on_error (MokoListener *listener, struct lgsm_handle *handle,
+          int cme, int cms)
+{
+  MokoSmsPrivate *priv = ((MokoSms *)listener)->priv;
+
+  if (cms == 322) {
+    priv->sim_full = TRUE;
+    g_signal_emit (listener, signals[MEMORY_FULL], 0, TRUE, FALSE);
+  }
+}
+
+static void
 listener_interface_init (gpointer g_iface, gpointer iface_data)
 {
   MokoListenerInterface *iface = (MokoListenerInterface *)g_iface;
@@ -412,6 +439,7 @@
   iface->on_incoming_sms = on_incoming_sms;
   iface->on_incoming_ds = on_incoming_ds;
   iface->on_send_sms = on_send_sms;
+  iface->on_error = on_error;
 }
 
 static gboolean
@@ -530,8 +558,8 @@
   MokoSmsPrivate *priv = sms->priv;
   struct lgsm_handle *handle;
   
-  if (priv->handling_sms ||
-      (!priv->sms_store_open) || (!priv->got_subscriber_number)) return;
+  if (priv->handling_sms || (!priv->sms_store_open)/* ||
+      (!priv->got_subscriber_number)*/) return;
   if (!moko_network_get_lgsm_handle (priv->network, &handle, NULL)) return;
   
   /* Add listener to MokoNetwork object */
@@ -558,7 +586,7 @@
   jana_store_view_start (view);
 
   if (!priv->handling_sms) start_handling_sms (self);
-  if (priv->got_subscriber_number)
+  /*if (priv->got_subscriber_number)*/
     g_signal_emit (self, signals[STATUS_CHANGED], 0, PK_SMS_READY);
 }
 
@@ -598,7 +626,7 @@
 {
   MokoSmsPrivate *priv = sms->priv;
   
-  if (priv->sms_store_open && priv->got_subscriber_number)
+  if (priv->sms_store_open/* && priv->got_subscriber_number*/)
     return PK_SMS_READY;
   else
     return PK_SMS_NOTREADY;
@@ -721,3 +749,12 @@
   return TRUE;
 }
 
+gboolean
+moko_sms_get_memory_status (MokoSms *self, gboolean *sim_full,
+                            gboolean *phone_full, GError **error)
+{
+  if (phone_full) *phone_full = FALSE;
+  
+  return TRUE;
+}
+

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.h	2008-01-17 11:13:49 UTC (rev 3862)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.h	2008-01-17 11:36:56 UTC (rev 3863)
@@ -77,6 +77,7 @@
   
   /* signals */
   void (*status_changed) (MokoSms *sms, PhoneKitSmsStatus status);
+  void (*memory_full)    (MokoSms *sms, gboolean sim, gboolean phone);
     
   /* future padding */
   void (*_moko_sms_1) (void);
@@ -99,6 +100,10 @@
                const gchar *message, gboolean report, gchar **uid,
                GError **error);
 
+gboolean
+moko_sms_get_memory_status (MokoSms *self, gboolean *sim, gboolean *phone,
+                            GError **error);
+
 G_END_DECLS
 
 #endif /* _HAVE_MOKO_SMS_H */





More information about the commitlog mailing list