Fixed stripped down datacalls
[gnokii.git] / common / newmodules / n6110.c
index 481c92e..fcb8ac9 100644 (file)
    supported by this model of phone. */
 
 
-
-
-
-
-
 /* Here we initialise model specific functions. */
 GSM_Functions N6110_Functions = {
   N6110_Initialise,
@@ -54,13 +49,8 @@ GSM_Functions N6110_Functions = {
   NULL_KeepAlive,
   N6110_GetMemoryLocation,
   N6110_WritePhonebookLocation,
-#ifndef UCLINUX
   N6110_GetSpeedDial,
   N6110_SetSpeedDial,
-#else /* UCLINUX */
-  NULL,
-  NULL,
-#endif /* UCLINUX */
   N6110_GetMemoryStatus,
 #ifndef UCLINUX
   N6110_GetSMSStatus,
@@ -87,9 +77,16 @@ GSM_Functions N6110_Functions = {
   N6110_EnterSecurityCode,
   N6110_GetSecurityCodeStatus,
   N6110_GetSecurityCode,
+#else /* UCLINUX */
+  NULL,
+  NULL,
+  NULL,
+  NULL,
+#endif /* UCLINUX */
   N6110_GetIMEI,
   N6110_GetRevision,
   N6110_GetModel,
+#ifndef UCLINUX
   N6110_GetDateTime,
   N6110_SetDateTime,
   N6110_GetAlarm,
@@ -101,13 +98,6 @@ GSM_Functions N6110_Functions = {
   NULL,
   NULL,
   NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
 #endif /* UCLINUX */
   N6110_DialData,
 #ifndef UCLINUX
@@ -141,12 +131,11 @@ GSM_Functions N6110_Functions = {
 #ifndef UCLINUX
   N6110_GetProfile,
   N6110_SetProfile,
-  N6110_SendRLPFrame,
 #else /* UCLINUX */
   NULL,
   NULL,
-  NULL,
 #endif /* UCLINUX */
+  N6110_SendRLPFrame,
   N6110_CancelCall,
 #ifndef UCLINUX
   N6110_PressKey,
@@ -1903,6 +1892,8 @@ GSM_Error N6110_SetProfile(GSM_Profile *Profile)
   return (GE_NONE);
 }
 
+#endif /* UCLINUX */
+
 bool N6110_SendRLPFrame(RLP_F96Frame *frame, bool out_dtx)
 {
   u8 req[60] = { 0x00, 0xd9 };
@@ -1918,6 +1909,8 @@ bool N6110_SendRLPFrame(RLP_F96Frame *frame, bool out_dtx)
   return (Protocol->SendFrame(32, 0xf0, req));
 }
 
+#ifndef UCLINUX
+
 void N6110_ReplyGetCalendarNote(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
 
   int i, j;
@@ -2587,7 +2580,9 @@ GSM_Error N6110_DialData(char *Number, char type, void (* callpassup)(char c))
                break;
        case 1:
                Protocol->SendMessage(sizeof(req3), 0x01, req3);
+               usleep(1000000);
                Protocol->SendMessage(sizeof(req4), 0x01, req4);
+               usleep(1000000);
                req_end = req_end1;
                size = sizeof(req_end1);
                break;
@@ -2608,6 +2603,7 @@ GSM_Error N6110_DialData(char *Number, char type, void (* callpassup)(char c))
        memcpy(req + 5 + strlen(Number), req_end, size);
 
        Protocol->SendMessage(5 + size + strlen(Number), 0x01, req);
+       usleep(1000000);
        if (type != 1) Protocol->SendMessage(26, 0x01, req2);
 
        return (GE_NONE);
@@ -3108,6 +3104,8 @@ GSM_Error N6110_GetSMSFolders ( GSM_SMSFolders *folders)
   return GE_NONE;
 }
 
+#endif /* UCLINUX */
+
 GSM_Error N6110_GetIMEI(char *imei)
 {
   if (strlen(Current_IMEI)>0) {
@@ -3129,8 +3127,6 @@ GSM_Error N6110_GetRevision(char *revision)
     return (GE_TRYAGAIN);
 }
 
-#endif /* UCLINUX */
-
 static GSM_Error N6110_GetModel(char *model)
 {
   if (strlen(Current_Model)>0) {
@@ -3268,8 +3264,13 @@ static void N6110_ReplyGetMemoryLocation(u16 MessageLength, u8 *MessageBuffer, u
       sleep(1);
         
     if (GetModelFeature (FN_PHONEBOOK)==F_PBK33) {//pbk with Unicode
+#ifndef UCLINUX
       DecodeUnicode (CurrentPhonebookEntry->Name, MessageBuffer+6, count/2);
       CurrentPhonebookEntry->Name[count/2] = 0x00;
+#else /* UCLINUX */
+      fprintf(stderr,"FATAL ERROR: DecodeUnicode disabled!\n");
+      exit(1);
+#endif /* UCLINUX */
     } else {
       memcpy(CurrentPhonebookEntry->Name, MessageBuffer + 6, count);
       CurrentPhonebookEntry->Name[count] = 0x00;
@@ -3437,6 +3438,7 @@ GSM_Error N6110_WritePhonebookLocation(GSM_PhonebookEntry *entry)
   current=7;
 
   if (GetModelFeature (FN_PHONEBOOK)==F_PBK33) {
+#ifndef UCLINUX
 
      req[6] = strlen(entry->Name)*2;
 
@@ -3450,6 +3452,13 @@ GSM_Error N6110_WritePhonebookLocation(GSM_PhonebookEntry *entry)
      }
 
      current+=strlen(entry->Name)*2;
+
+#else /* UCLINUX */
+
+     fprintf(stderr,"FATAL ERROR: EncodeUnicode disabled!\n");
+     exit(1);
+
+#endif /* UCLINUX */
   } else {
 
     req[6] = strlen(entry->Name);
@@ -3546,7 +3555,9 @@ GSM_Error N6110_SendDTMF(char *String)
     (20, &CurrentSendDTMFError, 5+length, 0x01, req);
 }
 
-void N6110_ReplyGetSpeedDial(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
+#endif /* UCLINUX */
+
+static void N6110_ReplyGetSpeedDial(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
 
   switch (MessageBuffer[3]) {
 
@@ -3596,7 +3607,7 @@ GSM_Error N6110_GetSpeedDial(GSM_SpeedDial *entry)
     (20, &CurrentSpeedDialError, 5, 0x03, req);
 }
 
-void N6110_ReplySetSpeedDial(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
+static void N6110_ReplySetSpeedDial(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
 
   switch (MessageBuffer[3]) {
 
@@ -3642,6 +3653,8 @@ GSM_Error N6110_SetSpeedDial(GSM_SpeedDial *entry)
     (20, &CurrentSpeedDialError, 7, 0x03, req);
 }
 
+#ifndef UCLINUX
+
 /* This function finds parts of SMS in frame used in new Nokia phones
    in internal protocols (they're coded according to GSM 03.40), copies them
    to GSM_ETSISMSMessage and calls GSM_DecodeETSISMS to decode
@@ -5220,8 +5233,6 @@ static void N6110_Dispatch0x06Message(u16 MessageLength, u8 *MessageBuffer, u8 M
   }
 }
 
-#endif /* UCLINUX */
-
 static void N6110_Dispatch0x09Message(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
     
   switch (MessageBuffer[3]) {
@@ -5247,8 +5258,6 @@ static void N6110_Dispatch0x09Message(u16 MessageLength, u8 *MessageBuffer, u8 M
   }
 }
 
-#ifndef UCLINUX
-
 static void N6110_Dispatch0x13Message(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
 
   switch(MessageBuffer[3]) {
@@ -5584,11 +5593,11 @@ void N6110_DispatchMessage(u16 MessageLength, u8 *MessageBuffer, u8 MessageType)
       case 0x06:N6110_ReplyWritePhonebookLocation(MessageLength,MessageBuffer,MessageType);break;
       case 0x08:
       case 0x09:N6110_ReplyGetMemoryStatus(MessageLength,MessageBuffer,MessageType);break;
-#ifndef UCLINUX
       case 0x17:
       case 0x18:N6110_ReplyGetSpeedDial(MessageLength,MessageBuffer,MessageType);break;
       case 0x1a:
       case 0x1b:N6110_ReplySetSpeedDial(MessageLength,MessageBuffer,MessageType);break;
+#ifndef UCLINUX
       default  :N6110_Dispatch0x03Message(MessageLength,MessageBuffer,MessageType);break;
 #endif /* UCLINUX */
     }
@@ -5634,7 +5643,6 @@ void N6110_DispatchMessage(u16 MessageLength, u8 *MessageBuffer, u8 MessageType)
       default  :N6110_ReplyEnterSecurityCode    (MessageLength,MessageBuffer,MessageType);break;
     }
     break;
-#endif /* UCLINUX */
 
   /* SIM login */
   case 0x09:
@@ -5642,7 +5650,6 @@ void N6110_DispatchMessage(u16 MessageLength, u8 *MessageBuffer, u8 MessageType)
     N6110_Dispatch0x09Message(MessageLength, MessageBuffer, MessageType);
     break;
 
-#ifndef UCLINUX
   /* Network info */
   case 0x0a:
     switch (MessageBuffer[3]) {