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