d9c57ad824830c8774dd7c7ca764d79f72ac1bb4
[gnokii.git] / common / misc.c
1 /*
2
3   G N O K I I
4
5   A Linux/Unix toolset and driver for Nokia mobile phones.
6
7   Copyright (C) 1999, 2000 Hugh Blemings & Pavel Janík ml.
8
9   Released under the terms of the GNU GPL, see file COPYING for more details.
10
11   $Id$
12   
13   $Log$
14   Revision 1.1.1.1  2001/11/25 21:59:04  short
15   :pserver:cvs@pserver.samba.org:/cvsroot - gnokii - Sun Nov 25 22:56 CET 2001
16
17   Revision 1.19  2001/11/22 17:56:53  pkot
18   smslib update. sms sending
19
20   Revision 1.18  2001/09/09 21:45:49  machek
21   Cleanups from Ladislav Michl <ladis@psi.cz>:
22
23   *) do *not* internationalize debug messages
24
25   *) some whitespace fixes, do not use //
26
27   *) break is unneccessary after return
28
29   Revision 1.17  2001/08/09 12:34:34  pkot
30   3330 and 6250 support - I have no idea if it does work (mygnokii)
31
32   Revision 1.16  2001/03/21 23:36:04  chris
33   Added the statemachine
34   This will break gnokii --identify and --monitor except for 6210/7110
35
36   Revision 1.15  2001/03/06 10:38:52  machek
37   Dancall models added to the global list.
38
39   Revision 1.14  2001/02/06 13:55:23  pkot
40   Enabled authentication in 51xx models
41
42   Revision 1.13  2001/02/02 08:09:56  ja
43   New dialogs for 6210/7110 in xgnokii. Fixed the smsd for new capabilty code.
44
45
46 */
47
48 #include <string.h>
49 #include "misc.h"
50
51 int GetLine(FILE *File, char *Line, int count)
52 {
53         char *ptr;
54
55         if (fgets(Line, count, File)) {
56                 ptr = Line + strlen(Line) - 1;
57
58                 while ( (*ptr == '\n' || *ptr == '\r') && ptr>=Line)
59                         *ptr--='\0';
60
61                 return strlen(Line);
62         }
63         else
64                 return 0;
65 }
66
67 static PhoneModel models[] = {
68         {NULL,    "", 0 },
69         {"2711",  "?????", PM_SMS },            /* Dancall */
70         {"2731",  "?????", PM_SMS },
71         {"1611",  "NHE-5", 0 },
72         {"2110i", "NHE-4", PM_SMS },
73         {"2148i", "NHK-4", 0 },
74         {"3110",  "0310" , PM_SMS | PM_DTMF | PM_DATA }, /* NHE-8 */
75         {"3210",  "NSE-8", PM_SMS | PM_DTMF },
76         {"3210",  "NSE-9", PM_SMS | PM_DTMF },
77         {"3310",  "NHM-5", PM_SMS | PM_DTMF },
78         {"3330",  "NHM-6", PM_SMS | PM_DTMF },
79         {"3810",  "0305" , PM_SMS | PM_DTMF | PM_DATA }, /* NHE-9 */
80         {"5110",  "NSE-1", PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
81         {"5130",  "NSK-1", PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
82         {"5160",  "NSW-1", PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
83         {"5190",  "NSB-1", PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
84         {"6110",  "NSE-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
85         {"6120",  "NSC-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
86         {"6130",  "NSK-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
87         {"6150",  "NSM-1", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
88         {"616x",  "NSW-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
89         {"6185",  "NSD-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
90         {"6190",  "NSB-3", PM_CALLERGROUP | PM_CALENDAR | PM_NETMONITOR | PM_KEYBOARD | PM_SMS | PM_DTMF | PM_DATA | PM_SPEEDDIAL | PM_AUTHENTICATION },
91         {"6210",  "NPE-3", PM_CALLERGROUP | PM_CALENDAR | PM_EXTPBK | PM_SMS},
92         {"6250",  "NHM-3", PM_CALLERGROUP | PM_CALENDAR | PM_EXTPBK },
93         {"7110",  "NSE-5", PM_CALLERGROUP | PM_SPEEDDIAL | PM_EXTPBK },
94         {"8810",  "NSE-6", PM_SMS | PM_DTMF | PM_DATA },
95         {"8110i", "0423",  PM_SMS | PM_DTMF | PM_DATA }, /* Guess for NHE-6 */
96         {"8110",  "0423" , PM_SMS | PM_DTMF | PM_DATA }, /* NHE-6BX */
97         {"9000i", "RAE-4", 0 },
98         {"9110",  "RAE-2", 0 },
99         {"550",   "THF-10", 0 },
100         {"540",   "THF-11", 0 },
101         {"650",   "THF-12", 0 },
102         {"640",   "THF-13", 0 },
103         {NULL,    NULL, 0 }
104 };
105
106 PhoneModel *GetPhoneModel (const char *num)
107 {
108         register int i = 0;
109
110         while (models[i].number != NULL) {
111                 if (strcmp (num, models[i].number) == 0) {
112                         dprintf("Found model\n");
113                         return (&models[i]);
114                 }
115                 else {
116                         dprintf("comparing %s and %s\n", num, models[i].number);
117                 }
118                 i++;
119         }
120
121         return (&models[0]);
122 }
123
124 inline char *GetModel (const char *num)
125 {
126         return (GetPhoneModel(num)->model);
127 }
128
129