This commit was manufactured by cvs2svn to create branch 'uc'.
[gnokii.git] / gnokii / gnokii.h
1 /*
2
3   G N O K I I
4
5   A Linux/Unix toolset and driver for Nokia mobile phones.
6
7   Released under the terms of the GNU GPL, see file COPYING for more details.
8
9   Header file for test utility.
10
11 */
12
13 /* Prototypes */
14
15 int monitormode(int argc, char *argv[]);
16
17 #ifdef SECURITY
18   int entersecuritycode(char *type);
19   int getsecuritycodestatus(void);
20   int getsecuritycode(char *type);
21 #endif
22
23 #ifdef DEBUG
24   int sniff(int nargc, char *nargv[]);
25   int decodefile(int nargc, char *nargv[]); 
26 #endif
27
28 int getmemory(int argc, char *argv[]);
29 int writephonebook(int argc, char *argv[]);
30 int getspeeddial(char *number);
31 int setspeeddial(char *argv[]);
32 int getsms(int argc, char *argv[]);
33 int renamesmsc(int argc, char *argv[]);
34 int deletesms(int argc, char *argv[]);
35 int sendsms(int argc, char *argv[]);
36 int savesms(int argc, char *argv[]);
37 int sendlogo(int argc, char *argv[]);
38 int savelogo(int argc, char *argv[]);
39 int sendringtone(int argc, char *argv[]);
40 int saveringtone(int argc, char *argv[]);
41 int getsmsc(char *mcn);
42 int setdatetime(int argc, char *argv[]);
43 int getdatetime(void);
44 int setalarm(char *argv[]);
45 int getalarm(void);
46 int dialvoice(char *number);
47 int cancelcall(void);
48 int getcalendarnote(int argc, char *argv[]);
49 int writecalendarnote(char *argv[]);
50 int deletecalendarnote(char *index);
51 int getdisplaystatus();
52 int netmonitor(char *_mode);
53 int identify(void);
54 int senddtmf(char *String);
55 int foogle(char *argv[]);
56 int pmon(void);
57 int setlogo(int argc, char *argv[]);
58 int getlogo(int argc, char *argv[]);
59 int binringtoneconvert(int argc, char *argv[]);
60 int setringtone(int argc, char *argv[]);
61 int getringtone(int argc, char *argv[]);
62 int reset(int argc, char *argv[]);
63 int getprofile(int argc, char *argv[]);
64 int setprofile(int argc, char *argv[]);
65 int allringtones();
66 int displayoutput();
67 int presskeysequence(char *argv[]);
68 int restoresettings(char *argv[]);
69 int backupsettings(char *argv[]);
70 int playringtone(int argc, char *argv[]);
71 int ringtoneconvert(int argc, char *argv[]);
72 int bitmapconvert(int argc, char *argv[]);
73 int composer(int argc, char *argv[]);
74 int getphoneprofile();
75 int setphoneprofile(int argc, char *argv[]);
76 int getoperatorname();
77 int setoperatorname(int argc, char *argv[]);
78 int getvoicemailbox();
79 int phonetests();
80 int simlockinfo();
81 int geteeprom ();
82 int setsimlock ();
83 int getsmsfolders ();
84 int resetphonesettings ();
85 int sendprofile(int argc, char *argv[]);
86 int showbitmap(int argc, char *argv[]);
87 int nm_collect(int argc, char *argv[]);
88 int netmonitordata(int argc, char *argv[]);
89 int getwapbookmark(int argc, char *argv[]);
90 int setwapbookmark(int argc, char *argv[]);
91 int savewapbookmark(int argc, char *argv[]);
92 int sendwapbookmark(int argc, char *argv[]);
93 int getwapsettings(int argc, char *argv[]);
94 int savewapsettings(int argc, char *argv[]);
95 int sendwapsettings(int argc, char *argv[]);
96 int savecalendarnote(int argc, char *argv[]);
97 int sendcalendarnote(int argc, char *argv[]);
98 int receivesms(int argc, char *argv[]);
99 int getsmsstatus(int argc, char *argv[]);
100 int divert(int argc, char *argv[]);
101 int savephonebookentry(int argc, char *argv[]);
102 int sendphonebookentry(int argc, char *argv[]);
103
104 typedef enum {
105   OPT_HELP,
106   OPT_VERSION,
107   OPT_MONITOR,
108   OPT_ENTERSECURITYCODE,
109   OPT_GETSECURITYCODESTATUS,
110   OPT_GETSECURITYCODE,
111   OPT_SETDATETIME,
112   OPT_GETDATETIME,
113   OPT_SETALARM,
114   OPT_GETALARM,
115   OPT_DIALVOICE,
116   OPT_CANCELCALL,
117   OPT_GETCALENDARNOTE,
118   OPT_WRITECALENDARNOTE,
119   OPT_DELCALENDARNOTE,
120   OPT_GETDISPLAYSTATUS,
121   OPT_GETMEMORY,
122   OPT_WRITEPHONEBOOK,
123   OPT_GETSPEEDDIAL,
124   OPT_SETSPEEDDIAL,
125   OPT_GETSMS,
126   OPT_DELETESMS,
127   OPT_SENDSMS,
128   OPT_SAVESMS,
129   OPT_GETSMSC,
130   OPT_RENAMESMSC,
131   OPT_PMON,
132   OPT_NETMONITOR,
133   OPT_NM_COLLECT,
134   OPT_NETMONITORDATA,
135   OPT_IDENTIFY,
136   OPT_SENDDTMF,
137   OPT_RESET,
138   OPT_SETLOGO,
139   OPT_GETLOGO,
140   OPT_SENDLOGO,
141   OPT_SAVELOGO,
142   OPT_BITMAPCONVERT,
143   OPT_SENDRINGTONE,
144   OPT_SAVERINGTONE,
145   OPT_SETRINGTONE,
146   OPT_PLAYRINGTONE,
147   OPT_RINGTONECONVERT,
148   OPT_COMPOSER,
149   OPT_ALLRINGTONES,
150   OPT_GETRINGTONE,
151   OPT_SNIFFER,
152   OPT_GETPROFILE,
153   OPT_SETPROFILE,
154   OPT_DISPLAYOUTPUT,
155   OPT_PRESSKEYSEQUENCE,
156   OPT_RESTORESETTINGS,
157   OPT_BACKUPSETTINGS,
158   OPT_GETPHONEPROFILE,
159   OPT_SETPHONEPROFILE,
160   OPT_GETOPERATORNAME,
161   OPT_SETOPERATORNAME,
162   OPT_GETVOICEMAILBOX,
163   OPT_PHONETESTS,
164   OPT_FOOGLE,
165   OPT_SIMLOCKINFO,
166   OPT_SETSIMLOCK,
167   OPT_GETEEPROM=128,
168   OPT_GETSMSFOLDERS=129,
169   OPT_RESETPHONESETTINGS=130,
170   OPT_SENDPROFILE=131,
171   OPT_SHOWBITMAP=132,
172   OPT_BINRINGTONECONVERT=133,
173   OPT_GETWAPBOOKMARK=134,
174   OPT_SAVEWAPBOOKMARK=135,
175   OPT_SENDWAPBOOKMARK=136,
176   OPT_GETWAPSETTINGS=137,
177   OPT_SAVEWAPSETTINGS=138,
178   OPT_SAVECALENDARNOTE=139,
179   OPT_SENDCALENDARNOTE=140,
180   OPT_SAVEPHONEBOOKENTRY=141,
181   OPT_SENDPHONEBOOKENTRY=142,
182   OPT_DECODEFILE=143,
183   OPT_RECEIVESMS=144,
184   OPT_GETSMSSTATUS=145,
185   OPT_DIVERT=146,
186   OPT_SENDWAPSETTINGS=147,
187   OPT_SETWAPBOOKMARK=148
188 } opt_index;
189
190 struct gnokii_arg_len {
191   int gal_opt;
192   int gal_min;
193   int gal_max;
194   int gal_flags;
195 };
196
197 /* This is used for checking correct argument count. If it is used then if
198    the user specifies some argument, their count should be equivalent to the
199    count the programmer expects. */
200
201 #define GAL_XOR 0x01
202
203 /* for --presskeysequence */
204 struct keys_table_position {
205   char whatchar;
206   int whatcode;
207 };
208
209 /* for --presskeysequence */
210 struct keys_table_position Keys[] = {
211 {'m',PHONEKEY_MENU},
212 {'M',PHONEKEY_MENU},
213 {'n',PHONEKEY_NAMES},
214 {'N',PHONEKEY_NAMES},
215 {'p',PHONEKEY_POWER},
216 {'P',PHONEKEY_POWER},
217 {'u',PHONEKEY_UP},
218 {'U',PHONEKEY_UP},
219 {'d',PHONEKEY_DOWN},
220 {'D',PHONEKEY_DOWN},
221 {'+',PHONEKEY_INCREASEVOLUME},
222 {'-',PHONEKEY_DECREASEVOLUME},
223 {'1',PHONEKEY_1},
224 {'2',PHONEKEY_2},
225 {'3',PHONEKEY_3},
226 {'4',PHONEKEY_4},
227 {'5',PHONEKEY_5},
228 {'6',PHONEKEY_6},
229 {'7',PHONEKEY_7},
230 {'8',PHONEKEY_8},
231 {'9',PHONEKEY_9},
232 {'*',PHONEKEY_ASTERISK},
233 {'0',PHONEKEY_0},
234 {'#',PHONEKEY_HASH},
235 {'g',PHONEKEY_GREEN},
236 {'G',PHONEKEY_GREEN},
237 {'r',PHONEKEY_RED},
238 {'R',PHONEKEY_RED},
239 {' ',0}
240 };
241
242 /* for NETMONITOR */
243
244 //maximal number of screens for --nm_collect
245 #define MAX_NM_COLLECT 20
246
247 /* 255 used internally by functions */
248 #define NM_MAX_SCREEN 254
249
250 /* in 6150 v4.13 effectively used was 296 FIELDS + date + time ... */
251 #define NM_MAX_FIELDS 512       
252
253 typedef struct {
254         char *name;
255         int x;
256         int y;
257         int len;
258         char *mname;
259         int s_nr;
260         char type;
261         char value[NM_MAX_SCREEN_WIDTH];
262         void *next;
263 } PARAM_INFO_MON;
264
265 // info for make ouput, filled in by parse_process()
266 typedef struct {
267         int req_header;
268         unsigned long req_wait;
269         int req_n;
270         char req_fs[11];
271         char req_ls[11];
272         PARAM_INFO_MON *data[NM_MAX_FIELDS];
273         char out_f[NM_MAX_FIELDS];
274         unsigned char req_screen[NM_MAX_SCREEN];
275 } OUT_INFO_MON;
276
277 int semicolon_pipe_substitution( GSM_PhonebookEntry *pentry, unsigned int direction );
278 int str_substch( char *str, const char toric, const char sost );