Implemented connection type "tcp" (GCT_TCP), use <hostname>:<port> as "port"
[gnokii.git] / xgnokii / xgnokii.c
index ecfe668..05cc9fd 100644 (file)
 
   Released under the terms of the GNU GPL, see file COPYING for more details.
 
 
   Released under the terms of the GNU GPL, see file COPYING for more details.
 
+  $Log$
+  Revision 1.1.1.4  2002/04/03 00:08:26  short
+  Found in "gnokii-working" directory, some November-patches version
+
+  Revision 1.38  2001/09/14 13:14:03  pkot
+  Xgnokii WM fixes (Martin Lucina)
+
+  Revision 1.37  2001/06/27 23:52:52  pkot
+  7110/6210 updates (Marian Jancar)
+
+  Revision 1.36  2001/06/20 21:27:36  pkot
+  IrDA patch (Marian Jancar)
+
+  Revision 1.35  2001/05/24 20:47:30  chris
+  More updating of 7110 code and some of xgnokii_lowlevel changed over.
+
+  Revision 1.34  2001/03/23 08:24:56  ja
+  New preview for 6210 in xgnokii's logos module.
+
+  Revision 1.33  2001/03/19 23:43:47  pkot
+  Solaris/BSD '#if defined' cleanup
+
+  Revision 1.32  2001/03/13 01:21:39  pkot
+  *BSD updates (Bert Driehuis)
+
+  Revision 1.31  2001/03/05 10:42:02  ja
+  Pavel Machek's vcard and finegrained indicators patch.
+
+  Revision 1.30  2001/01/29 15:22:20  machek
+  Use integer as bitfield instead of struct of int:1.
+
+  Be able to read phonebook saved in gnokii format from xgnokii.
+
+  Revision 1.29  2001/01/15 21:10:20  ja
+  Better status reporting in xgnokii, fixed phone capabilities detection in xgnokii.
+
+  Revision 1.28  2000/12/20 11:49:25  ja
+  Bringing back to life smsd. It was broken after last Pawel update.
+
+  Revision 1.27  2000/12/19 16:18:21  pkot
+  configure script updates and added shared function for configfile reading
+
+  
 */
 
 #include <stdlib.h>  /* for getenv */
 */
 
 #include <stdlib.h>  /* for getenv */
 #include "misc.h"
 #include "gsm-common.h"
 #include "gsm-api.h"
 #include "misc.h"
 #include "gsm-common.h"
 #include "gsm-api.h"
+#include "fbus-6110.h"
+#include "fbus-3810.h"
 #include "cfgreader.h"
 #include "cfgreader.h"
-#include "phones/nk7110.h"
-#include "phones/nk6100.h"
-#include "phones/nk3110.h"
-#include "phones/nk2110.h"
 #include "xgnokii.h"
 #include "xgnokii_common.h"
 #include "xgnokii_lowlevel.h"
 #include "xgnokii.h"
 #include "xgnokii_common.h"
 #include "xgnokii_lowlevel.h"
@@ -149,7 +190,7 @@ typedef struct {
   GtkWidget *number;
   GtkWidget *format;
   GtkWidget *validity;
   GtkWidget *number;
   GtkWidget *format;
   GtkWidget *validity;
-  SMS_MessageCenter smsSetting[MAX_SMS_CENTER];
+  GSM_MessageCenter smsSetting[MAX_SMS_CENTER];
 } SMSWidgets;
 
 typedef struct {
 } SMSWidgets;
 
 typedef struct {
@@ -177,7 +218,7 @@ static struct ConfigDialogData
   GtkWidget *help;
 } configDialogData;
 
   GtkWidget *help;
 } configDialogData;
 
-static SMS_MessageCenter tempMessageSettings;
+static GSM_MessageCenter tempMessageSettings;
 
 
 static inline void Help1 (GtkWidget *w, gpointer data)
 
 
 static inline void Help1 (GtkWidget *w, gpointer data)
@@ -395,7 +436,7 @@ static gint Update (gpointer data)
   static gchar timeBuf[10];
   static gchar *anonym = "anonymous";
   static struct tm stm;
   static gchar timeBuf[10];
   static gchar *anonym = "anonymous";
   static struct tm stm;
-  static gint smsNumber = 0;
+  static gint smsUsed = 0;
   static gint callTimerStart = 0;
   gint callTimer = 0;
   time_t t;
   static gint callTimerStart = 0;
   gint callTimer = 0;
   time_t t;
@@ -404,7 +445,7 @@ static gint Update (gpointer data)
 
 
   /* The number of SMS messages before second */
 
 
   /* The number of SMS messages before second */
-  static int smsold=0;
+  static int smsUnRead=0;
 
   /* The number of second for we should display "Short Message Received" message */
   static int smsreceived=-1;
 
   /* The number of second for we should display "Short Message Received" message */
   static int smsreceived=-1;
@@ -413,6 +454,8 @@ static gint Update (gpointer data)
 
   DrawNetwork (data, phoneMonitor.rfLevel);
 
 
   DrawNetwork (data, phoneMonitor.rfLevel);
 
+  if (phoneMonitor.powerSource == GPS_ACDC)
+    phoneMonitor.batteryLevel = ((gint) phoneMonitor.batteryLevel + 25) % 125;
   DrawBattery (data, phoneMonitor.batteryLevel);
 
   if (phoneMonitor.alarm)
   DrawBattery (data, phoneMonitor.batteryLevel);
 
   if (phoneMonitor.alarm)
@@ -426,15 +469,15 @@ static gint Update (gpointer data)
   {
     DrawSMS (data);
 
   {
     DrawSMS (data);
 
-    if (phoneMonitor.sms.unRead > smsold && smsold != -1)
+    if (phoneMonitor.sms.unRead > smsUnRead && smsUnRead != -1)
       smsreceived = 10;  /* The message "Short Message Received" is displayed for 10s */
   }
       smsreceived = 10;  /* The message "Short Message Received" is displayed for 10s */
   }
-  if (smsNumber != phoneMonitor.sms.number)
+  if (smsUsed != phoneMonitor.sms.used)
     GUIEventSend (GUI_EVENT_SMS_NUMBER_CHANGED);
 
     GUIEventSend (GUI_EVENT_SMS_NUMBER_CHANGED);
 
-  smsold = phoneMonitor.sms.unRead;
+  smsUnRead = phoneMonitor.sms.unRead;
 
 
-  smsNumber = phoneMonitor.sms.number;
+  smsUsed = phoneMonitor.sms.used;
 
   pthread_mutex_unlock (&smsMutex);
 
 
   pthread_mutex_unlock (&smsMutex);
 
@@ -538,32 +581,32 @@ static void ParseSMSCenters (void)
 
     switch (configDialogData.sms.smsSetting[i].Format)
     {
 
     switch (configDialogData.sms.smsSetting[i].Format)
     {
-    case SMS_FText:
+      case GSMF_Text:
         row[2] = g_strdup (_("Text"));
         break;
 
         row[2] = g_strdup (_("Text"));
         break;
 
-    case SMS_FPaging:
+    case GSMF_Paging:
         row[2] = g_strdup (_("Paging"));
         break;
 
         row[2] = g_strdup (_("Paging"));
         break;
 
-    case SMS_FFax:
+    case GSMF_Fax:
         row[2] = g_strdup (_("Fax"));
         break;
 
         row[2] = g_strdup (_("Fax"));
         break;
 
-    case SMS_FEmail:
-    case SMS_FUCI:
+    case GSMF_Email:
+    case GSMF_UCI:
         row[2] = g_strdup (_("E-Mail"));
         break;
 
         row[2] = g_strdup (_("E-Mail"));
         break;
 
-    case SMS_FERMES:
+    case GSMF_ERMES:
         row[2] = g_strdup (_("ERMES"));
         break;
 
         row[2] = g_strdup (_("ERMES"));
         break;
 
-    case SMS_FX400:
+    case GSMF_X400:
         row[2] = g_strdup (_("X.400"));
         break;
 
         row[2] = g_strdup (_("X.400"));
         break;
 
-    case SMS_FVoice:
+    case GSMF_Voice:
         row[2] = g_strdup (_("Voice"));
         break;
 
         row[2] = g_strdup (_("Voice"));
         break;
 
@@ -574,27 +617,27 @@ static void ParseSMSCenters (void)
 
     switch (configDialogData.sms.smsSetting[i].Validity)
     {
 
     switch (configDialogData.sms.smsSetting[i].Validity)
     {
-      case SMS_V1H:
+      case GSMV_1_Hour:
         row[3] = g_strdup (_("1 h"));
         break;
 
         row[3] = g_strdup (_("1 h"));
         break;
 
-      case SMS_V6H:
+      case GSMV_6_Hours:
         row[3] = g_strdup (_("6 h"));
         break;
 
         row[3] = g_strdup (_("6 h"));
         break;
 
-      case SMS_V24H:
+      case GSMV_24_Hours:
         row[3] = g_strdup (_("24 h"));
         break;
 
         row[3] = g_strdup (_("24 h"));
         break;
 
-      case SMS_V72H:
+      case GSMV_72_Hours:
         row[3] = g_strdup (_("72 h"));
         break;
 
         row[3] = g_strdup (_("72 h"));
         break;
 
-      case SMS_V1W:
+      case GSMV_1_Week:
         row[3] = g_strdup (_("1 week"));
         break;
 
         row[3] = g_strdup (_("1 week"));
         break;
 
-      case SMS_VMax:
+      case GSMV_Max_Time:
         row[3] = g_strdup (_("Max. time"));
         break;
 
         row[3] = g_strdup (_("Max. time"));
         break;
 
@@ -1444,28 +1487,28 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
     item = gtk_menu_item_new_with_label (_("Text"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
     item = gtk_menu_item_new_with_label (_("Text"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
-                        (gpointer) SMS_FText);
+                        (gpointer) GSMF_Text);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("Fax"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("Fax"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
-                        (gpointer) SMS_FFax);
+                        (gpointer) GSMF_Fax);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("Paging"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("Paging"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
-                        (gpointer) SMS_FPaging);
+                        (gpointer) GSMF_Paging);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("E-Mail"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("E-Mail"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetFormat),
-                        (gpointer) SMS_FEmail);
+                        (gpointer) GSMF_Email);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
@@ -1488,42 +1531,42 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
     item = gtk_menu_item_new_with_label (_("Max. Time"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     item = gtk_menu_item_new_with_label (_("Max. Time"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_VMax);
+                        (gpointer) GSMV_Max_Time);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("1 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("1 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_V1H);
+                        (gpointer) GSMV_1_Hour);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("6 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("6 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_V6H);
+                        (gpointer) GSMV_6_Hours);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("24 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("24 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_V24H);
+                        (gpointer) GSMV_24_Hours);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("72 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("72 h"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_V72H);
+                        (gpointer) GSMV_72_Hours);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("1 week"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     item = gtk_menu_item_new_with_label (_("1 week"));
     gtk_signal_connect (GTK_OBJECT (item), "activate",
                         GTK_SIGNAL_FUNC(SetValidity),
-                        (gpointer) SMS_V1W);
+                        (gpointer) GSMV_1_Week);
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
     gtk_widget_show (item);
     gtk_menu_append (GTK_MENU (menu), item);
 
@@ -1543,22 +1586,22 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
   switch (configDialogData.sms.smsSetting
           [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Format)
   {
   switch (configDialogData.sms.smsSetting
           [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Format)
   {
-    case SMS_FText:
+    case GSMF_Text:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    0);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    0);
       break;
 
-    case SMS_FPaging:
+    case GSMF_Paging:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    2);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    2);
       break;
 
-    case SMS_FFax:
+    case GSMF_Fax:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    1);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    1);
       break;
 
-    case SMS_FEmail:
+    case GSMF_Email:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    3);
       break;
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
                                    3);
       break;
@@ -1571,32 +1614,32 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
   switch (configDialogData.sms.smsSetting
           [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity)
   {
   switch (configDialogData.sms.smsSetting
           [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity)
   {
-    case SMS_V1H:
+    case GSMV_1_Hour:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    1);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    1);
       break;
 
-    case SMS_V6H:
+    case GSMV_6_Hours:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    2);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    2);
       break;
 
-    case SMS_V24H:
+    case GSMV_24_Hours:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    3);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    3);
       break;
 
-    case SMS_V72H:
+    case GSMV_72_Hours:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    4);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    4);
       break;
 
-    case SMS_V1W:
+    case GSMV_1_Week:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    5);
       break;
 
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    5);
       break;
 
-    case SMS_VMax:
+    case GSMV_Max_Time:
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    0);
       break;
       gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
                                    0);
       break;
@@ -2393,8 +2436,27 @@ static void ReadConfig (void)
   
 #ifndef WIN32
   xgnokiiConfig.xgnokiidir = DefaultXGnokiiDir;
   
 #ifndef WIN32
   xgnokiiConfig.xgnokiidir = DefaultXGnokiiDir;
+
+#if 0
+  if (strstr(FB38_Information.Models, xgnokiiConfig.model) != NULL)
+  {
+    max_phonebook_number_length = 30;
+    max_phonebook_sim_number_length = 30;
+  }
+  else 
+#endif
 #endif
 #endif
-  max_phonebook_number_length = max_phonebook_sim_number_length = GSM_MAX_PHONEBOOK_NUMBER_LENGTH;
+#if 0
+  if (strstr(FB61_Information.Models, xgnokiiConfig.model) != NULL)
+  {
+    max_phonebook_number_length = FB61_MAX_PHONEBOOK_NUMBER_LENGTH;
+    max_phonebook_sim_number_length = FB61_MAX_PHONEBOOK_NUMBER_LENGTH;
+  }
+  else
+#endif
+  {
+    max_phonebook_number_length = max_phonebook_sim_number_length = GSM_MAX_PHONEBOOK_NUMBER_LENGTH;
+  }
 
   xgnokiiConfig.callerGroups[0] = xgnokiiConfig.callerGroups[1] =
   xgnokiiConfig.callerGroups[2] = xgnokiiConfig.callerGroups[3] =
 
   xgnokiiConfig.callerGroups[0] = xgnokiiConfig.callerGroups[1] =
   xgnokiiConfig.callerGroups[2] = xgnokiiConfig.callerGroups[3] =