http://marcin-wiacek.fkn.pl/english/zips/mygnokii.tar.gz
[gnokii.git] / win32_makefile / gui_delphi / GnokiiAPI.pas
1 // This is header file for gnokiiapi.dll\r
2 // Latest version: http://marcin-wiacek.topnet.pl\r
3 \r
4 unit GnokiiAPI;\r
5 \r
6 interface\r
7 \r
8 uses Classes,Forms,SysUtils;\r
9 \r
10 const\r
11   GSM_General = 10;\r
12   GSM_Mobile  = 3;\r
13   GSM_Work    = 6;\r
14   GSM_Fax     = 4;\r
15   GSM_Home    = 2;\r
16 \r
17   GSM_Date       = 19;\r
18   GSM_Number     = 11;\r
19   GSM_Note       = 10;\r
20   GSM_Postal     = 9;\r
21   GSM_Email      = 8;\r
22 \r
23 const\r
24   GMT_ME=0;\r
25   GMT_SM=1;\r
26   GMT_FD=2;\r
27   GMT_ON=3;\r
28   GMT_EN=4;\r
29   GMT_DC=5;\r
30   GMT_RC=6;\r
31   GMT_MC=7;\r
32   GMT_LD=8;\r
33   GMT_MT=9;\r
34   GMT_TA=10;\r
35   GMT_CB=11;\r
36   GMT_CG=12;\r
37 \r
38   GCT_FBUS=0;\r
39   GCT_MBUS=3;\r
40 \r
41   GSS_SENTREAD=1;\r
42   GSS_NOTSENTREAD=3;\r
43 \r
44 const\r
45   GSM_None=0;\r
46   GSM_StartupLogo=1;      //size 84*48\r
47   GSM_OperatorLogo=2;     //size 72*14\r
48   GSM_CallerLogo=3;       //size 72*14\r
49   GSM_PictureImage=4;     //size 72*28\r
50   GSM_7110OperatorLogo=5; //size 78*21\r
51   GSM_7110StartupLogo=6;  //size 96*65\r
52   GSM_6210StartupLogo=7;  //size 96*60\r
53   GSM_WelcomeNoteText=8;\r
54   GSM_DealerNoteText=9;\r
55 \r
56 const\r
57   GSM_SoftReset=3;\r
58 \r
59 const\r
60   GCN_REMINDER=1;\r
61   GCN_CALL=2;\r
62   GCN_MEETING=3;\r
63   GCN_BIRTHDAY=4;\r
64 \r
65 const\r
66   GSMF_Text   = 0;\r
67   GSMF_Fax    = 34;\r
68   GSMF_Voice  = 36;\r
69   GSMF_ERMES  = 37;\r
70   GSMF_Paging = 38;\r
71   GSMF_UCI    = 45;\r
72   GSMF_Email  = 50;\r
73   GSMF_X400   = 49;\r
74 \r
75   GSMV_1_Hour   = 11;\r
76   GSMV_6_Hours  = 71;\r
77   GSMV_24_Hours = 167;\r
78   GSMV_72_Hours = 169;\r
79   GSMV_1_Week   = 173;\r
80   GSMV_Max_Time = 255;\r
81 \r
82   GST_SMS=0;\r
83   GST_DR=1;\r
84 \r
85   GSM_Coding_Unicode = 1;\r
86   GSM_Coding_Default = 2;\r
87 \r
88   GSCT_SecurityCode = 1;\r
89 \r
90   GSM_NoUDH=0;\r
91 \r
92 const\r
93   FN_CALENDAR=0;\r
94   FN_CALLERGROUPS=2;\r
95   FN_SMS=11;\r
96   FN_PROFILES=14;\r
97   FN_WAP=16;\r
98 \r
99   F_CAL61=0;//Calendar in 6110 style - 4 types,...\r
100   F_CAL33=1;//Calendar in 3310 style - 10 reminders, Unicode, 3 coding types\r
101   F_CAL71=2;//Calendar in 7110 style - 4 types, recurrance, etc.\r
102 \r
103   F_SMS  =7;  //SMS with Inbox, Outbox\r
104   F_SMS71=8;  //SMS with SMS folders like in 7110\r
105   F_PROF61=22;//Profiles numbered like in N6110\r
106   F_PROF51=23;//Profiles numbered like in N5110\r
107   F_PROF33=24;//Profiles numbered like in N3310.Unicode names\r
108 \r
109 const\r
110   GE_SMSTOOLONG=22;\r
111 \r
112 const\r
113   PROFILE_MESSAGE_NOTONE=0;\r
114   PROFILE_MESSAGE_STANDARD=1;\r
115   PROFILE_MESSAGE_SPECIAL=2;\r
116   PROFILE_MESSAGE_BEEPONCE=3;\r
117   PROFILE_MESSAGE_ASCENDING=4;\r
118 \r
119   PROFILE_WARNING_OFF=255;\r
120   PROFILE_WARNING_ON =4;\r
121 \r
122   PROFILE_CALLALERT_RINGING=1;\r
123   PROFILE_CALLALERT_BEEPONCE=2;\r
124   PROFILE_CALLALERT_OFF=4;\r
125   PROFILE_CALLALERT_RINGONCE=5;\r
126   PROFILE_CALLALERT_ASCENDING=6;\r
127   PROFILE_CALLALERT_CALLERGROUPS=7;\r
128 \r
129   PROFILE_KEYPAD_OFF=255;\r
130   PROFILE_KEYPAD_LEVEL1=0;\r
131   PROFILE_KEYPAD_LEVEL2=1;\r
132   PROFILE_KEYPAD_LEVEL3=2;\r
133 \r
134   PROFILE_VOLUME_LEVEL1=6;\r
135   PROFILE_VOLUME_LEVEL2=7;\r
136   PROFILE_VOLUME_LEVEL3=8;\r
137   PROFILE_VOLUME_LEVEL4=9;\r
138   PROFILE_VOLUME_LEVEL5=10;\r
139 \r
140   PROFILE_CALLERGROUPS_ALL=255;\r
141   PROFILE_CALLERGROUPS_FAMILY=1;\r
142   PROFILE_CALLERGROUPS_VIP=2;\r
143   PROFILE_CALLERGROUPS_FRIENDS=4;\r
144   PROFILE_CALLERGROUPS_COLLEAGUES=8;\r
145   PROFILE_CALLERGROUPS_OTHERS=16;\r
146 \r
147   PROFILE_VIBRATION_OFF=0;\r
148   PROFILE_VIBRATION_ON=1;\r
149   PROFILE_VIBRATION_FIRST=2;\r
150 \r
151 type\r
152   GSM_NetworkInfo= record\r
153       NetworkCode: array[1..10] of char; // GSM network code\r
154       CellID: array[1..10] of char;      // CellID\r
155       LAC: array[1..10] of char;         // LAC\r
156   end;\r
157   PGSM_NetworkInfo=^GSM_NetworkInfo;\r
158 \r
159   GSM_DateTime=record\r
160     IsSet:integer;\r
161     Year:integer;\r
162     Month:integer;\r
163     Day:integer;\r
164     Hour:integer;\r
165     Minute:integer;\r
166     Second:integer;\r
167     Timezone:integer;\r
168   end;\r
169   PGSM_DateTime=^GSM_DateTime;\r
170 \r
171   GSM_SubPhonebookEntry= record\r
172     EntryType:integer;\r
173     NumberType:integer;\r
174     Number:array[1..61] of char;\r
175     Date:GSM_DateTime;\r
176     BlockNumber:integer;\r
177   end;\r
178 \r
179   GSM_PhonebookEntry= record\r
180     Empty:integer;\r
181     Name:array[1..51] of char;\r
182     Number:array[1..49] of char;\r
183     MemoryType:integer;\r
184     Group:integer;\r
185     Location:integer;\r
186     SubEntries:array[1..8] of GSM_SubPhonebookEntry;\r
187     SubEntriesCount:integer;\r
188   end;\r
189   PGSM_PhonebookEntry=^GSM_PhonebookEntry;\r
190 \r
191   GSM_MemoryStatus=record\r
192     MemoryType:integer;\r
193     Used:integer;\r
194     Free:integer;\r
195   end;\r
196   PGSM_memoryStatus=^GSM_MemoryStatus;\r
197 \r
198   GSM_RingtoneNote=record\r
199     duration:byte;\r
200     note:byte;\r
201     tempo:integer;\r
202     style:byte;\r
203   end;\r
204 \r
205   GSM_Ringtone=record\r
206     name:array[1..20] of char;\r
207     Loop:byte;\r
208     NrNotes:byte;\r
209     notes:array[1..256] of GSM_RingtoneNote;\r
210     allnotesscale:integer;\r
211     location:integer;\r
212   end;\r
213   PGSM_Ringtone=^GSM_Ringtone;\r
214 \r
215   GSM_BinRingtone=record\r
216     name:array[1..20] of char;\r
217     frame:array[1..1000] of char;\r
218     length:integer;\r
219     location:integer;\r
220   end;\r
221   PGSM_BinRingtone=^GSM_BinRingtone;\r
222 \r
223   GSM_Bitmap=record\r
224     heigh:byte;\r
225     width:byte;\r
226     size:smallint;\r
227     type2:integer;\r
228     netcode:array[1..7] of char;\r
229     text:array[1..256] of char;\r
230     bitmap:array[1..864] of char;\r
231     number:byte;\r
232     ringtone:byte;\r
233     enabled:integer;\r
234     Sender:array[1..41] of char;\r
235   end;\r
236   PGSM_Bitmap=^GSM_Bitmap;\r
237 \r
238   GSM_SpeedDial=record\r
239     Number:integer;\r
240     MemoryType:integer;\r
241     Location:integer;\r
242   end;\r
243   PGSM_SpeedDial=^GSM_SpeedDial;\r
244 \r
245   GSM_CalendarNote=record\r
246     Location:integer;\r
247     Type2:integer;\r
248     Time:GSM_DateTime;\r
249     Alarm:GSM_DateTime;\r
250     Text:array[1..59] of char;\r
251     Phone:array[1..37] of char;\r
252 \r
253     Recurrance:integer;\r
254     YearOfBirth:integer;\r
255     AlarmType:byte;\r
256     ReadNotesInfo:integer;\r
257   end;\r
258   PGSM_CalendarNote=^GSM_CalendarNote;\r
259 \r
260   GSM_MessageCenter=record\r
261     No:integer;\r
262     Name:array[1..20] of char;\r
263     Format:integer;\r
264     Validity:integer;\r
265     Number:array[1..40] of char;\r
266     DefaultRecipient:array[1..40] of char;\r
267   end;\r
268   PGSM_MessageCenter=^GSM_MessageCenter;\r
269 \r
270   GSM_Profile=record\r
271     Number:integer;\r
272     Name:array[1..40] of char;\r
273     DefaultName:integer;\r
274     KeypadTone:integer;\r
275     Lights:integer;\r
276     CallAlert:integer;\r
277     Ringtone:integer;\r
278     Volume:integer;\r
279     MessageTone:integer;\r
280     WarningTone:integer;\r
281     Vibration:integer;\r
282     CallerGroups:integer;\r
283     ScreenSaver:integer;\r
284     AutomaticAnswer:integer;\r
285   end;\r
286   PGSM_Profile=^GSM_Profile;\r
287 \r
288   GSM_OneSimlock=record\r
289     data:array[1..11] of char;\r
290     enabled:integer;\r
291     counter:integer;\r
292     factory:integer;\r
293   end;\r
294 \r
295   GSM_AllSimlocks=record\r
296     simlocks:array[1..4] of GSM_OneSimlock;\r
297   end;\r
298   PGSM_AllSimlocks=^GSM_AllSimlocks;\r
299 \r
300   GSM_OneSMSFolder=record\r
301     Name:array[1..15] of char;\r
302     locations:array[1..160] of byte;\r
303     number:byte;\r
304   end;\r
305 \r
306   GSM_SMSFolders=record\r
307     Folder: array[1..24] of GSM_OneSMSFolder;\r
308     FoldersID: array[1..24] of byte;\r
309     number:byte;\r
310   end;\r
311   PGSM_SMSFolders=^GSM_SMSFolders;\r
312 \r
313   GSM_SMSMessage=record\r
314     Coding:integer;\r
315     Time:GSM_DateTime;\r
316     SMSCTime:GSM_DateTime;\r
317     Length:integer;\r
318     Validity:integer;\r
319     UDHType:integer;\r
320     UDH:array[1..140] of char;\r
321     MessageText:array[1..161] of char;\r
322     MessageCenter:GSM_MessageCenter;\r
323     Sender:array[1..41] of char;\r
324     Destination:array[1..41] of char;\r
325     MessageNumber:integer;\r
326     MemoryType:integer;\r
327     Type2:integer;\r
328     Status:integer;\r
329     Class2:integer;\r
330     Compression:integer;\r
331     Location:integer;\r
332     ReplyViaSameSMSC:integer;\r
333     folder:integer;\r
334     SMSData:integer;\r
335     Name:array[1..26] of char;\r
336   end;\r
337   PGSM_SMSMessage=^GSM_SMSMessage;\r
338 \r
339   GSM_MultiSMSMessage=record\r
340     number:integer;\r
341     SMS:array[1..6] of GSM_SMSMessage;\r
342   end;\r
343   PGSM_MultiSMSMessage=^GSM_MultiSMSMessage;\r
344 \r
345   GSM_SMS2Foldertable=record\r
346     smsnum:integer;\r
347     folder:shortint;\r
348     location:integer;\r
349   end;\r
350 \r
351   GSM_SMSStatus=record\r
352     UnRead:integer;\r
353     Number:integer;\r
354     foldertable:array[1..255] of GSM_SMS2FolderTable;\r
355   end;\r
356   PGSM_SMSStatus=^GSM_SMSStatus;\r
357 \r
358   GSM_SecurityCode=record\r
359     Type2:integer;\r
360     Code:array[1..10] of char;\r
361   end;\r
362   PGSM_SecurityCode=^GSM_SecurityCode;\r
363 \r
364   GSM_WAPBookmark=record\r
365     adress:array[1..256] of char;\r
366     title:array[1..51] of char;\r
367     location:Word;\r
368   end;\r
369   PGSM_WAPBookmark=^GSM_WAPBookmark;\r
370 \r
371   GSM_WAPSettings=record\r
372     location:byte;\r
373     homepage:array[1..101] of char;\r
374     title:array[1..21] of char;\r
375     bearer:integer;\r
376     issecurity:integer;\r
377     iscontinuous:integer;\r
378 \r
379     //for data bearer\r
380     ipaddress:array[1..21] of char;\r
381     dialup:array[1..21] of char;\r
382     user:array[1..51] of char;\r
383     password:array[1..51] of char;\r
384     isspeed14400:integer;\r
385     isISDNcall:integer;\r
386     isnormalauthentication:integer;\r
387 \r
388     //for sms bearer\r
389     server:array[1..22] of char;\r
390 \r
391     //for sms or ussd bearer\r
392     service:array[1..21] of char;\r
393     isIP:integer;\r
394 \r
395     //for ussd bearer\r
396     code:array[1..11] of char;\r
397   end;\r
398   PGSM_WAPSettings=^GSM_WAPSettings;\r
399 \r
400 const\r
401   WAPSETTINGS_BEARER_SMS=0;\r
402   WAPSETTINGS_BEARER_DATA=1;\r
403   WAPSETTINGS_BEARER_USSD=2;\r
404 \r
405 const\r
406   GSM_CDV_Busy       = 1; // Divert when busy\r
407   GSM_CDV_NoAnswer   = 2; // Divert when not answered\r
408   GSM_CDV_OutOfReach = 3; // Divert when phone off or no coverage\r
409   GSM_CDV_AllTypes   = 4; // Divert all calls without ringing\r
410 \r
411   GSM_CDV_VoiceCalls = 1;\r
412   GSM_CDV_FaxCalls   = 2;\r
413   GSM_CDV_DataCalls  = 3;\r
414   GSM_CDV_AllCalls   = 4;\r
415 \r
416   GSM_CDV_Disable  = 0;\r
417   GSM_CDV_Enable   = 1;\r
418   GSM_CDV_Query    = 2; // Is concrete divert enabled ?\r
419   GSM_CDV_Register = 3; // Sets divert\r
420   GSM_CDV_Erasure  = 4; // Erase concrete divert\r
421 \r
422 type\r
423   GSM_CallDivert=record\r
424     DType:integer;\r
425     CType:integer;\r
426     Operation:integer;\r
427     Number:array[1..41] of char;\r
428     timeout:longword;\r
429     enabled:integer;\r
430   end;\r
431   PGSM_CallDivert=^GSM_CallDivert;\r
432 \r
433 var\r
434   GSMPhoneConnected: boolean=false;\r
435   GSMNetworkInfo: GSM_NetworkInfo;\r
436 \r
437   GSMPort: array[1..256] of Char;\r
438   GSMModel: array[1..256] of Char;\r
439   GSMInitLength: Array[1..256] of char;\r
440   GSMSynchronizeTime: array[1..256] of char;\r
441   GSMConnection: integer=GCT_FBUS;\r
442 \r
443 type\r
444   TSparkyThread = class(TThread)\r
445     public\r
446       procedure Execute; override;\r
447   end;\r
448 \r
449 var\r
450   SparkyThread: TSparkyThread;\r
451 \r
452 function GSM_Initialize(Port:Pchar;Model:Pchar;connectiontype:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myinitialize';\r
453 function GSM_Terminate(): integer; stdcall; external 'gnokiiapi.dll' name 'myterminate';\r
454 \r
455 function GSM_GetNetworkInfo(NetworkInfo:PGSM_NetworkInfo): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkinfo';\r
456 function GSM_GetNetworkName(NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkname';\r
457 function GSM_GetNetworkCode(NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkcode';\r
458 function GSM_GetNetworkData(number:integer; NetworkName:Pchar;NetworkCode:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetnetworkdata';\r
459 \r
460 function GSM_Netmonitor(mode:integer;Screen:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mynetmonitor';\r
461 \r
462 function GSM_GetMemoryLocation(entry:PGSM_Phonebookentry): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmemorylocation';\r
463 function GSM_WritePhonebookLocation(entry:PGSM_Phonebookentry): integer; stdcall; external 'gnokiiapi.dll' name 'mywritephonebooklocation';\r
464 function GSM_GetMemoryStatus(status:PGSM_MemoryStatus): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmemorystatus';\r
465 \r
466 function GSM_ReadRingtoneFile(filename:Pchar;ringtone:PGSM_Ringtone): integer; stdcall; external 'gnokiiapi.dll' name 'myreadringtonefile';\r
467 function GSM_SetRingtone(ringtone:PGSM_Ringtone;notes:Pinteger): integer; stdcall; external 'gnokiiapi.dll' name 'mysetringtone';\r
468 function GSM_ReadBinRingtoneFile(filename:Pchar;ringtone:PGSM_BinRingtone): integer; stdcall; external 'gnokiiapi.dll' name 'myreadbinringtonefile';\r
469 function GSM_SetBinRingtone(ringtone:PGSM_BinRingtone): integer; stdcall; external 'gnokiiapi.dll' name 'mysetbinringtone';\r
470 function GSM_PlayRingtone(ringtone:PGSM_Ringtone): integer; stdcall; external 'gnokiiapi.dll' name 'myplayringtone';\r
471 function GSM_PlayNote(note:GSM_RingtoneNote): integer; stdcall; external 'gnokiiapi.dll' name 'myplaynote';\r
472 function GSM_PlayTone(herz:integer;volume:byte): integer; stdcall; external 'gnokiiapi.dll' name 'myplaytone';\r
473 function GSM_GetTempo(beats:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mygettempo';\r
474 \r
475 function GSM_ReadBitmapFile(filename:Pchar;bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'myreadbitmapfile';\r
476 function GSM_SaveBitmapFile(filename:Pchar;bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mysavebitmapfile';\r
477 function GSM_IsPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myispointbitmap';\r
478 function GSM_SetPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysetpointbitmap';\r
479 function GSM_ClearPointBitmap(bitmap:PGSM_Bitmap;x:integer;y:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myclearpointbitmap';\r
480 function GSM_ClearBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'myclearbitmap';\r
481 function GSM_GetBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mygetbitmap';\r
482 function GSM_SetBitmap(bitmap:PGSM_Bitmap): integer; stdcall; external 'gnokiiapi.dll' name 'mysetbitmap';\r
483 function GSM_ResizeBitmap(bitmap:PGSM_Bitmap;bitmaptype:integer): integer; stdcall; external 'gnokiiapi.dll' name 'myresizebitmap';\r
484 \r
485 function GSM_GetImei(IMEI:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetimei';\r
486 function GSM_GetRevision(revision:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetrevision';\r
487 function GSM_GetModel(model:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodel';\r
488 function GSM_GetModelNumber(model:Pchar;model2:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodelnumber';\r
489 \r
490 function GSM_GetDLLVersion(version:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mygetdllversion';\r
491 \r
492 function GSM_GetSpeedDial(entry:PGSM_SpeedDial): integer; stdcall; external 'gnokiiapi.dll' name 'mygetspeeddial';\r
493 \r
494 function GSM_Reset(mode:byte): integer; stdcall; external 'gnokiiapi.dll' name 'myreset';\r
495 \r
496 function GSM_GetCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mygetcalendarnote';\r
497 function GSM_WriteCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mywritecalendarnote';\r
498 function GSM_DeleteCalendarNote(entry:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mydeletecalendarnote';\r
499 \r
500 function GSM_GetAlarm(alarmnumber:integer;alarm:PGSM_DateTime): integer; stdcall; external 'gnokiiapi.dll' name 'mygetalarm';\r
501 \r
502 function GSM_GetSMSCenter(center:PGSM_MessageCenter): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmscenter';\r
503 function GSM_SetSMSCenter(center:PGSM_MessageCenter): integer; stdcall; external 'gnokiiapi.dll' name 'mysetsmscenter';\r
504 \r
505 function GSM_GetProfile(profile:PGSM_Profile): integer; stdcall; external 'gnokiiapi.dll' name 'mygetprofile';\r
506 \r
507 function GSM_GetSimlock(simlock:PGSM_AllSimlocks): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsimlock';\r
508 \r
509 function GSM_GetSMSFolders(folders:PGSM_SMSFolders): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsfolders';\r
510 function GSM_GetSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsmessage';\r
511 function GSM_SaveSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mysavesmsmessage';\r
512 function GSM_SendSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mysendsmsmessage';\r
513 function GSM_DeleteSMSMessage(sms:PGSM_SMSMessage): integer; stdcall; external 'gnokiiapi.dll' name 'mydeletesmsmessage';\r
514 function GSM_GetSMSStatus(folders:PGSM_SMSStatus): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsmsstatus';\r
515 function GSM_MakeMultiPartSMS2(SMS:PGSM_MultiSMSMessage;MessageBuffer:PByte;MessageLength:Integer;UDHType:integer;Coding:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mymakemultipartsms2';\r
516 \r
517 function GSM_SaveRingtoneToSMS(SMS:PGSM_MultiSMSMessage;ringtone:PGSM_Ringtone;profilestyle:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysaveringtonetosms';\r
518 function GSM_SaveCalendarNoteToSMS(SMS:PGSM_MultiSMSMessage;note:PGSM_CalendarNote): integer; stdcall; external 'gnokiiapi.dll' name 'mysavecalendarnotetosms';\r
519 function GSM_SaveBitmapToSMS(SMS:PGSM_MultiSMSMessage;bitmap:PGSM_Bitmap;ScreenSaver:integer;Unicode:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysavebitmaptosms';\r
520 function GSM_SavePhonebookEntryToSMS(SMS:PGSM_MultiSMSMessage;entry:PGSM_PhonebookEntry;version:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mysavephonebookentrytosms';\r
521 function GSM_SaveWAPBookmarkToSMS(SMS:PGSM_MultiSMSMessage;bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mysavewapbookmarktosms';\r
522 function GSM_SaveWAPSettingsToSMS(SMS:PGSM_MultiSMSMessage;settings:PGSM_WAPSettings): integer; stdcall; external 'gnokiiapi.dll' name 'mysavewapsettingstosms';\r
523 \r
524 function GSM_ReadConfig(model:Pchar;port:Pchar;initlength:Pchar;connection:Pinteger;synchronizetime:Pchar): integer; stdcall; external 'gnokiiapi.dll' name 'myreadconfig';\r
525 \r
526 function GSM_SetLocale(locale:pchar): integer; stdcall; external 'gnokiiapi.dll' name 'mysetlocale';\r
527 \r
528 function GSM_GetSecurityCode(code:PGSM_SecurityCode): integer; stdcall; external 'gnokiiapi.dll' name 'mygetsecuritycode';\r
529 \r
530 function GSM_GetModelFeature(featurenumber:integer): integer; stdcall; external 'gnokiiapi.dll' name 'mygetmodelfeature';\r
531 \r
532 function GSM_GetWAPBookmark(bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mygetwapbookmark';\r
533 function GSM_SetWAPBookmark(bookmark:PGSM_WAPBookmark): integer; stdcall; external 'gnokiiapi.dll' name 'mysetwapbookmark';\r
534 \r
535 function GSM_GetWAPSettings(settings:PGSM_WAPSettings): integer; stdcall; external 'gnokiiapi.dll' name 'mygetwapsettings';\r
536 \r
537 function GSM_CallDivertOperation(divert:PGSM_CallDivert): integer; stdcall; external 'gnokiiapi.dll' name 'mycalldivert';\r
538 \r
539 implementation\r
540 \r
541 procedure TSparkyThread.Execute;\r
542 begin\r
543   while not Terminated do\r
544   begin\r
545     if GSMPhoneConnected then\r
546     begin\r
547       if GSM_GetNetworkInfo(@GSMNetworkInfo)<>0 then\r
548       begin\r
549         GSMPhoneConnected:=false;\r
550         GSM_Terminate();\r
551       end else begin\r
552         if not SparkyThread.Suspended then SparkyThread.Suspend;\r
553       end;\r
554     end else\r
555     begin\r
556       if GSM_Initialize(@GSMPort,@GSMModel,GSMConnection)=0 then\r
557       begin\r
558         GSMPhoneConnected:=true;\r
559       end else\r
560         GSM_Terminate();\r
561     end;\r
562   end;\r
563   GSMPhoneConnected:=false;\r
564 end;\r
565 \r
566 begin\r
567   GSM_ReadConfig(@GSMmodel,@GSMport,@GSMinitlength,@GSMconnection,@GSMsynchronizetime);\r
568   GSM_SetLocale('.1250');\r
569   GSMPhoneConnected:=false;\r
570   SparkyThread:=TSparkyThread.Create(True);\r
571   SparkyThread.Priority:=tpIdle;\r
572 //  SparkyThread.Priority:=tpLowest;\r
573   SparkyThread.Resume;\r
574 end.\r