ed5dd018d0f65de921fca512d9b5e9098dd44262
[gnokii.git] / include / gnokii.h
1 /*
2
3   $Id$
4   
5   G N O K I I
6
7   A Linux/Unix toolset and driver for Nokia mobile phones.
8
9   Copyright (C) 1999, 2000 Hugh Blemings & Pavel Janík ml.
10
11   Released under the terms of the GNU GPL, see file COPYING for more details.
12
13   Header file for test utility.
14
15   $Log$
16   Revision 1.1.1.1.2.1  2001/12/14 20:54:44  short
17   Update: orig2001_12_04_22_45 -> orig2001_12_14_20_46
18
19   Revision 1.1.1.2  2001/12/14 19:49:13  short
20   :pserver:cvs@pserver.samba.org:/cvsroot - gnokii - Fri Dec 14 20:46 CET 2001
21
22   Revision 1.28  2001/12/14 14:37:44  pkot
23   Cleanups. Call divert support for at and 7110 series
24
25   Revision 1.27  2001/09/14 12:53:00  pkot
26   New preview logos.
27   Localization fixes.
28   Set valid operator on logos xgnokii screen.
29
30   Revision 1.26  2001/04/23 17:20:02  pkot
31   Added possibility for viewing logos (currently nol and ngg) on console (Bartek Klepacz)
32
33   Revision 1.25  2001/01/15 17:00:51  pkot
34   Initial keypress sequence support. Disable compilation warning
35
36   Revision 1.24  2000/12/19 16:18:19  pkot
37   configure script updates and added shared function for configfile reading
38
39   
40 */
41
42 /* Prototypes */
43
44 int monitormode(void);
45
46 #ifdef SECURITY
47   int entersecuritycode(char *type);
48   int getsecuritycodestatus(void);
49 #endif
50
51 int getmemory(int argc, char *argv[]);
52 int writephonebook(int argc, char *argv[]);
53 int getspeeddial(char *number);
54 int setspeeddial(char *argv[]);
55 int getsms(int argc, char *argv[]);
56 int deletesms(int argc, char *argv[]);
57 int sendsms(int argc, char *argv[]);
58 int savesms(int argc, char *argv[]);
59 int sendlogo(int argc, char *argv[]);
60 int sendringtone(int argc, char *argv[]);
61 int getsmsc(char *mcn);
62 int setdatetime(int argc, char *argv[]);
63 int getdatetime(void);
64 int setalarm(char *argv[]);
65 int getalarm(void);
66 int dialvoice(char *number);
67 int getcalendarnote(int argc, char *argv[]);
68 int writecalendarnote(char *argv[]);
69 int deletecalendarnote(int argc, char *argv[]);
70 int getdisplaystatus();
71 int netmonitor(char *_mode);
72 int identify(void);
73 int senddtmf(char *String);
74 int foogle(char *argv[]);
75 int pmon(void);
76 int setlogo(int argc, char *argv[]);
77 int getlogo(int argc, char *argv[]);
78 int viewlogo(char *);
79 int setringtone(int argc, char *argv[]);
80 int reset(char *type);
81 int getprofile(int argc, char *argv[]);
82 int displayoutput();
83 int presskeysequence();
84 int divert(int argc, char *argv[]);
85
86 typedef enum {
87   OPT_HELP,
88   OPT_VERSION,
89   OPT_MONITOR,
90   OPT_ENTERSECURITYCODE,
91   OPT_GETSECURITYCODESTATUS,
92   OPT_SETDATETIME,
93   OPT_GETDATETIME,
94   OPT_SETALARM,
95   OPT_GETALARM,
96   OPT_DIALVOICE,
97   OPT_GETCALENDARNOTE,
98   OPT_WRITECALENDARNOTE,
99   OPT_DELCALENDARNOTE,
100   OPT_GETDISPLAYSTATUS,
101   OPT_GETMEMORY,
102   OPT_WRITEPHONEBOOK,
103   OPT_GETSPEEDDIAL,
104   OPT_SETSPEEDDIAL,
105   OPT_GETSMS,
106   OPT_DELETESMS,
107   OPT_SENDSMS,
108   OPT_SAVESMS,
109   OPT_SENDLOGO,
110   OPT_SENDRINGTONE,
111   OPT_GETSMSC,
112   OPT_GETWELCOMENOTE,
113   OPT_SETWELCOMENOTE,
114   OPT_PMON,
115   OPT_NETMONITOR,
116   OPT_IDENTIFY,
117   OPT_SENDDTMF,
118   OPT_RESET,
119   OPT_SETLOGO,
120   OPT_GETLOGO,
121   OPT_VIEWLOGO,
122   OPT_SETRINGTONE,
123   OPT_GETPROFILE,
124   OPT_DISPLAYOUTPUT,
125   OPT_KEYPRESS,
126   OPT_DIVERT,
127   OPT_FOOGLE
128 } opt_index;
129
130 struct gnokii_arg_len {
131   int gal_opt;
132   int gal_min;
133   int gal_max;
134   int gal_flags;
135 };
136
137 /* This is used for checking correct argument count. If it is used then if
138    the user specifies some argument, their count should be equivalent to the
139    count the programmer expects. */
140
141 #define GAL_XOR 0x01
142
143 /* Constants for Profiles. */
144
145 #define PROFILE_OFF  0x00
146 #define PROFILE_ON   0x01
147
148 #define PROFILE_MESSAGE_NOTONE     0x00
149 #define PROFILE_MESSAGE_STANDARD   0x01
150 #define PROFILE_MESSAGE_SPECIAL    0x02
151 #define PROFILE_MESSAGE_BEEPONCE   0x03
152 #define PROFILE_MESSAGE_ASCENDING  0x04
153
154 #define PROFILE_WARNING_OFF  0xff
155 #define PROFILE_WARNING_ON   0x04
156
157 /* FIXME: Are these values correct or not? */
158
159 #define PROFILE_VIBRATION_OFF  0x00
160 #define PROFILE_VIBRATION_ON   0x01
161
162 #define PROFILE_CALLALERT_RINGING       0x01
163 #define PROFILE_CALLALERT_BEEPONCE      0x02
164 #define PROFILE_CALLALERT_OFF           0x04
165 #define PROFILE_CALLALERT_RINGONCE      0x05
166 #define PROFILE_CALLALERT_ASCENDING     0x06
167 #define PROFILE_CALLALERT_CALLERGROUPS  0x07
168
169 #define PROFILE_KEYPAD_OFF     0xff
170 #define PROFILE_KEYPAD_LEVEL1  0x00
171 #define PROFILE_KEYPAD_LEVEL2  0x01
172 #define PROFILE_KEYPAD_LEVEL3  0x02
173 //in 5110 I had also once 0x03
174
175 #define PROFILE_VOLUME_LEVEL1  0x06
176 #define PROFILE_VOLUME_LEVEL2  0x07
177 #define PROFILE_VOLUME_LEVEL3  0x08
178 #define PROFILE_VOLUME_LEVEL4  0x09
179 #define PROFILE_VOLUME_LEVEL5  0x0a
180
181 /* Nokia ringtones codes. */
182
183 char *RingingTones[] = {
184 /*  0 */ "Unknown",
185 /*  1 */ "Unknown",                 /* FIXME: probably not set. */
186 /*  2 */ "Unknown",
187 /*  3 */ "Unknown",
188 /*  4 */ "Unknown",
189 /*  5 */ "Unknown",
190 /*  6 */ "Unknown",
191 /*  7 */ "Unknown",
192 /*  8 */ "Unknown",
193 /*  9 */ "Unknown",
194 /* 10 */ "Unknown",                 /* FIXME: probably pre set. */
195 /* 11 */ "Unknown",
196 /* 12 */ "Unknown",
197 /* 13 */ "Unknown",
198 /* 14 */ "Unknown",
199 /* 15 */ "Unknown",
200 /* 16 */ "Unknown",
201 /* 17 */ "Uploaded",
202 /* 18 */ "Ring ring",
203 /* 19 */ "Low",
204 /* 20 */ "Fly",
205 /* 21 */ "Mosquito",
206 /* 22 */ "Bee",
207 /* 23 */ "Intro",
208 /* 24 */ "Etude",
209 /* 25 */ "Hunt",
210 /* 26 */ "Going up",
211 /* 27 */ "City Bird",
212 /* 28 */ "Unknown",
213 /* 29 */ "Unknown",
214 /* 30 */ "Chase",
215 /* 31 */ "Unknown",
216 /* 32 */ "Scifi",
217 /* 33 */ "Unknown",
218 /* 34 */ "Kick",
219 /* 35 */ "Do-mi-so",
220 /* 36 */ "Robo N1X",
221 /* 37 */ "Dizzy",
222 /* 38 */ "Unknown",
223 /* 39 */ "Playground",
224 /* 40 */ "Unknown",
225 /* 41 */ "Unknown",
226 /* 42 */ "Unknown",
227 /* 43 */ "That's it!",
228 /* 44 */ "Unknown",
229 /* 45 */ "Unknown",
230 /* 46 */ "Unknown",
231 /* 47 */ "Grande valse",   /* FIXME: Knock knock (Knock again). */
232 /* 48 */ "Helan",          /* FIXME: Grand valse on 5110. */
233 /* 49 */ "Fuga",           /* FIXME: Helan on 5110. */
234 /* 50 */ "Menuet",         /* FIXME: Fuga on 5110. */
235 /* 51 */ "Ode to Joy",
236 /* 52 */ "Elise",
237 /* 53 */ "Mozart 40",
238 /* 54 */ "Piano Concerto", /* FIXME: Mozart 40 on 5110. */
239 /* 55 */ "William Tell",
240 /* 56 */ "Badinerie",      /* FIXME: William Tell on 5110. */
241 /* 57 */ "Polka",          /* FIXME: Badinerie on 5110. */
242 /* 58 */ "Attraction",     /* FIXME: Polka on 5110. */
243 /* 59 */ "Unknown",        /* FIXME: Attraction on 5110. */
244 /* 60 */ "Polite",         /* FIXME: Down on 5110. */
245 /* 61 */ "Persuasion",
246 /* 62 */ "Unknown",        /* FIXME: Persuasion on 5110. */
247 /* 63 */ "Unknown",
248 /* 64 */ "Unknown",
249 /* 65 */ "Unknown",
250 /* 66 */ "Unknown",
251 /* 67 */ "Tick tick",
252 /* 68 */ "Samba",
253 /* 69 */ "Unknown",        /* FIXME: Samba on 5110. */
254 /* 70 */ "Orient",
255 /* 71 */ "Charleston",     /* FIXME: Orient on 5110. */
256 /* 72 */ "Unknown",        /* FIXME: Charleston on 5110. */
257 /* 73 */ "Jumping",        /* FIXME: Songette on 5110. */
258 /* 74 */ "Unknown",        /* FIXME: Jumping on 5110. */
259 /* 75 */ "Unknown",        /* FIXME: Lamb (Marry) on 5110. */
260 /* 76 */ "Unknown",
261 /* 77 */ "Unknown",
262 /* 78 */ "Unknown",
263 /* 79 */ "Unknown",
264 /* 80 */ "Unknown"         /* FIXME: Tango (Tangoed) on 5110. */
265 };