diff options
Diffstat (limited to 'packages/openmoko2/openmoko-dialer2/openmoko-dialer.patch')
-rw-r--r-- | packages/openmoko2/openmoko-dialer2/openmoko-dialer.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/packages/openmoko2/openmoko-dialer2/openmoko-dialer.patch b/packages/openmoko2/openmoko-dialer2/openmoko-dialer.patch new file mode 100644 index 0000000000..5969726857 --- /dev/null +++ b/packages/openmoko2/openmoko-dialer2/openmoko-dialer.patch @@ -0,0 +1,117 @@ +--- openmoko-dialer2/src/moko-dialer.c~ 2007-08-27 20:02:37.000000000 +0930 ++++ openmoko-dialer2/src/moko-dialer.c 2007-08-27 18:59:37.000000000 +0930 +@@ -69,8 +69,7 @@ + + /* Registration variables */ + guint reg_timeout; +- gboolean reg_request; +- gboolean registered; ++ MokoGsmdConnectionNetregType registered; + }; + + enum +@@ -292,8 +291,7 @@ + + moko_keypad_set_pin_mode (MOKO_KEYPAD (priv->keypad), FALSE); + +- priv->reg_request = TRUE; +- priv->registered = FALSE; ++ priv->registered = MOKO_GSMD_CONNECTION_NETREG_NONE; + priv->reg_timeout = g_timeout_add (GSM_REGISTER_TIMEOUT, + (GSourceFunc)register_network_cb, + dialer); +@@ -424,14 +422,14 @@ + g_return_if_fail (MOKO_IS_DIALER (dialer)); + priv = dialer->priv; + ++ g_warning ("on_network_registered: type is %d\n", type); ++ + switch (type) + { + case MOKO_GSMD_CONNECTION_NETREG_NONE: + case MOKO_GSMD_CONNECTION_NETREG_SEARCHING: + /* Do nothing */ + g_print ("NetReg: Searching for network\n"); +- g_source_remove (priv->reg_timeout); +- priv->registered = TRUE; + break; + case MOKO_GSMD_CONNECTION_NETREG_DENIED: + /* This may be a pin issue*/ +@@ -441,11 +439,12 @@ + g_print ("NetReg: Network registered\n"); + g_print("\tLocationAreaCode = %x\n\tCellID = %x\n", lac, cell); + g_source_remove (priv->reg_timeout); +- priv->registered = TRUE; + break; + default: + g_warning ("Unhandled register event type = %d\n", type); + }; ++ ++ priv->registered = type; + } + + static void +@@ -619,28 +618,32 @@ + g_return_val_if_fail (MOKO_DIALER (dialer), TRUE); + priv = MOKO_DIALER_GET_PRIVATE (dialer); + +- if (!priv->reg_request) ++ /* We check whether we've been registered yet, otherwise keep poking ++ * gsmd ++ */ ++ switch (priv->registered) + { +- /* We have yet to request registration, so lets do it */ +- /* FIXME: do the pin stuff */ +- g_print ("Requesting registration\n"); +- moko_gsmd_connection_network_register (priv->connection); +- } +- else +- { +- /* We check whether we've been registered yet, otherwise keep poking +- * gsmd +- */ +- if (priv->registered) +- { +- g_print ("Network Registered\n"); +- return FALSE; +- } +- else +- { ++ case MOKO_GSMD_CONNECTION_NETREG_NONE: ++ /* We have yet to request registration, so lets do it */ ++ /* FIXME: do the pin stuff */ + g_print ("Requesting registration\n"); + moko_gsmd_connection_network_register (priv->connection); +- } ++ priv->registered = MOKO_GSMD_CONNECTION_NETREG_SEARCHING; ++ break; ++ case MOKO_GSMD_CONNECTION_NETREG_SEARCHING: ++ g_print ("Waiting for registration\n"); ++ break; ++ case MOKO_GSMD_CONNECTION_NETREG_DENIED: ++ g_print ("Registration denied, retrying\n"); ++ moko_gsmd_connection_network_register (priv->connection); ++ priv->registered = MOKO_GSMD_CONNECTION_NETREG_SEARCHING; ++ break; ++ case MOKO_GSMD_CONNECTION_NETREG_HOME: ++ case MOKO_GSMD_CONNECTION_NETREG_ROAMING: ++ g_print ("Network Registered\n"); ++ return FALSE; ++ default: ++ g_warning ("Unhandled register event type = %d\n", priv->registered); + } + + return TRUE; +@@ -754,9 +757,8 @@ + + /* Handle network registration a few seconds after powering up the + * antenna*/ +- priv->reg_request = TRUE; +- priv->registered = FALSE; +- priv->reg_timeout = g_timeout_add (GSM_REGISTER_TIMEOUT, ++ priv->registered = MOKO_GSMD_CONNECTION_NETREG_NONE; ++ priv->reg_timeout = g_timeout_add (GSM_REGISTER_TIMEOUT * 2, + (GSourceFunc)register_network_cb, + dialer); + |