This commit was generated by cvs2svn to compensate for changes in r164,
[gnokii.git] / xgnokii / xgnokii.c
index ecfe668..05cc9fd 100644 (file)
 
   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 "misc.h"
 #include "gsm-common.h"
 #include "gsm-api.h"
+#include "fbus-6110.h"
+#include "fbus-3810.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"
@@ -149,7 +190,7 @@ typedef struct {
   GtkWidget *number;
   GtkWidget *format;
   GtkWidget *validity;
-  SMS_MessageCenter smsSetting[MAX_SMS_CENTER];
+  GSM_MessageCenter smsSetting[MAX_SMS_CENTER];
 } SMSWidgets;
 
 typedef struct {
@@ -177,7 +218,7 @@ static struct ConfigDialogData
   GtkWidget *help;
 } configDialogData;
 
-static SMS_MessageCenter tempMessageSettings;
+static GSM_MessageCenter tempMessageSettings;
 
 
 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 gint smsNumber = 0;
+  static gint smsUsed = 0;
   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 */
-  static int smsold=0;
+  static int smsUnRead=0;
 
   /* 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);
 
+  if (phoneMonitor.powerSource == GPS_ACDC)
+    phoneMonitor.batteryLevel = ((gint) phoneMonitor.batteryLevel + 25) % 125;
   DrawBattery (data, phoneMonitor.batteryLevel);
 
   if (phoneMonitor.alarm)
@@ -426,15 +469,15 @@ static gint Update (gpointer 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 */
   }
-  if (smsNumber != phoneMonitor.sms.number)
+  if (smsUsed != phoneMonitor.sms.used)
     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);
 
@@ -538,32 +581,32 @@ static void ParseSMSCenters (void)
 
     switch (configDialogData.sms.smsSetting[i].Format)
     {
-    case SMS_FText:
+      case GSMF_Text:
         row[2] = g_strdup (_("Text"));
         break;
 
-    case SMS_FPaging:
+    case GSMF_Paging:
         row[2] = g_strdup (_("Paging"));
         break;
 
-    case SMS_FFax:
+    case GSMF_Fax:
         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;
 
-    case SMS_FERMES:
+    case GSMF_ERMES:
         row[2] = g_strdup (_("ERMES"));
         break;
 
-    case SMS_FX400:
+    case GSMF_X400:
         row[2] = g_strdup (_("X.400"));
         break;
 
-    case SMS_FVoice:
+    case GSMF_Voice:
         row[2] = g_strdup (_("Voice"));
         break;
 
@@ -574,27 +617,27 @@ static void ParseSMSCenters (void)
 
     switch (configDialogData.sms.smsSetting[i].Validity)
     {
-      case SMS_V1H:
+      case GSMV_1_Hour:
         row[3] = g_strdup (_("1 h"));
         break;
 
-      case SMS_V6H:
+      case GSMV_6_Hours:
         row[3] = g_strdup (_("6 h"));
         break;
 
-      case SMS_V24H:
+      case GSMV_24_Hours:
         row[3] = g_strdup (_("24 h"));
         break;
 
-      case SMS_V72H:
+      case GSMV_72_Hours:
         row[3] = g_strdup (_("72 h"));
         break;
 
-      case SMS_V1W:
+      case GSMV_1_Week:
         row[3] = g_strdup (_("1 week"));
         break;
 
-      case SMS_VMax:
+      case GSMV_Max_Time:
         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),
-                        (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),
-                        (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),
-                        (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),
-                        (gpointer) SMS_FEmail);
+                        (gpointer) GSMF_Email);
     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),
-                        (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),
-                        (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),
-                        (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),
-                        (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),
-                        (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),
-                        (gpointer) SMS_V1W);
+                        (gpointer) GSMV_1_Week);
     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)
   {
-    case SMS_FText:
+    case GSMF_Text:
       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;
 
-    case SMS_FFax:
+    case GSMF_Fax:
       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;
@@ -1571,32 +1614,32 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
   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;
 
-    case SMS_V6H:
+    case GSMV_6_Hours:
       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;
 
-    case SMS_V72H:
+    case GSMV_72_Hours:
       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;
 
-    case SMS_VMax:
+    case GSMV_Max_Time:
       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;
+
+#if 0
+  if (strstr(FB38_Information.Models, xgnokiiConfig.model) != NULL)
+  {
+    max_phonebook_number_length = 30;
+    max_phonebook_sim_number_length = 30;
+  }
+  else 
+#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] =