Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Tapi / Tizen.Tapi / SatData.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System.Collections.Generic;
18
19 namespace Tizen.Tapi
20 {
21     /// <summary>
22     /// A class which defines SAT main menu info.
23     /// </summary>
24     public class SatMainMenuInfo
25     {
26         internal int Id;
27         internal bool IsPresent;
28         internal string Title;
29         internal IEnumerable<SatMenuInfo> Items;
30         internal ushort Num;
31         internal bool IsHelpInfo;
32         internal bool IsUpdated;
33         internal SatIconIdInfo IcnId;
34         internal SatIconIdListInfo IdList;
35
36         internal SatMainMenuInfo()
37         {
38         }
39
40         /// <summary>
41         /// Proactive command number sent by USIM.
42         /// </summary>
43         /// <value>Command number represented in integer format.</value>
44         public int CommandId
45         {
46             get
47             {
48                 return Id;
49             }
50         }
51
52         /// <summary>
53         /// Flag for checking whether main menu is present or not.
54         /// </summary>
55         /// <value>Boolean value checking the presence of main menu.</value>
56         public bool IsMainMenuPresent
57         {
58             get
59             {
60                 return IsPresent;
61             }
62         }
63
64         /// <summary>
65         /// Menu title text.
66         /// </summary>
67         /// <value>Title text of the menu item represented in string.</value>
68         public string MenuTitle
69         {
70             get
71             {
72                 return Title;
73             }
74         }
75
76         /// <summary>
77         /// Menu items.
78         /// </summary>
79         /// <value>List of SatMenuInfo objects.</value>
80         public IEnumerable<SatMenuInfo> MenuItems
81         {
82             get
83             {
84                 return Items;
85             }
86         }
87
88         /// <summary>
89         /// Number of menu itmes.
90         /// </summary>
91         /// <value>An unsigned value representing the number of menu items.</value>
92         public ushort MainMenuCount
93         {
94             get
95             {
96                 return Num;
97             }
98         }
99
100         /// <summary>
101         /// Flag for a help information request.
102         /// </summary>
103         /// <value>Boolean value for checking the flag for help information request.</value>
104         public bool IsMainMenuHelpInfo
105         {
106             get
107             {
108                 return IsHelpInfo;
109             }
110         }
111
112         /// <summary>
113         /// Updated Sat main menu or not.
114         /// </summary>
115         /// <value>Boolean value to check whether Sat main menu is updated or not.</value>
116         public bool IsUpdatedMainMenu
117         {
118             get
119             {
120                 return IsUpdated;
121             }
122         }
123
124         /// <summary>
125         /// Icon Identifier.
126         /// </summary>
127         /// <value>An instance of SatIconIdInfo class representing the icon identifier.</value>
128         public SatIconIdInfo IconId
129         {
130             get
131             {
132                 return IcnId;
133             }
134         }
135
136         /// <summary>
137         /// List of Icon Identifiers.
138         /// </summary>
139         /// <value>An instance of SatIconIdListInfo class representing the icon identifier list.</value>
140         public SatIconIdListInfo IconIdList
141         {
142             get
143             {
144                 return IdList;
145             }
146         }
147     }
148
149
150     /// <summary>
151     /// A class which contains menu item information for the setup menu.
152     /// </summary>
153     public class SatMenuInfo
154     {
155         internal string Item;
156         internal char Id;
157
158         internal SatMenuInfo()
159         {
160         }
161
162         /// <summary>
163         /// Menu item character data.
164         /// </summary>
165         /// <value>Menu item data represented in string.</value>
166         public string MenuItem
167         {
168             get
169             {
170                 return Item;
171             }
172         }
173
174         /// <summary>
175         /// Identifies the item on the menu that the user selected.
176         /// </summary>
177         /// <value>Item identifier value represented as a character.</value>
178         public char ItemId
179         {
180             get
181             {
182                 return Id;
183             }
184         }
185     }
186
187     /// <summary>
188     /// A class defining the icon data object.
189     /// </summary>
190     public class SatIconIdInfo
191     {
192         internal bool IsPresent;
193         internal SatIconQualifierType Qualifier;
194         internal byte Id;
195         internal SatIconInfo Info;
196
197         internal SatIconIdInfo()
198         {
199         }
200
201         /// <summary>
202         /// Flag for checking whether the icon identifier exists.
203         /// </summary>
204         /// <value>Boolean value representing if the icon exists or not.</value>
205         public bool IsIconPresent
206         {
207             get
208             {
209                 return IsPresent;
210             }
211         }
212
213         /// <summary>
214         /// Icon qualifier type.
215         /// </summary>
216         /// <value>Icon qualifier type represented as SatIconQualifierType enum.</value>
217         public SatIconQualifierType IconQualifier
218         {
219             get
220             {
221                 return Qualifier;
222             }
223         }
224
225         /// <summary>
226         /// Icon identifier.
227         /// </summary>
228         /// <value>A byte value representing the icon identifier.</value>
229         public byte IconId
230         {
231             get
232             {
233                 return Id;
234             }
235         }
236
237         /// <summary>
238         /// Icon info.
239         /// </summary>
240         /// <value>An instance of SatIconInfo class.</value>
241         public SatIconInfo IconInfo
242         {
243             get
244             {
245                 return Info;
246             }
247         }
248     }
249
250     /// <summary>
251     /// A class containing the definition of icon info object.
252     /// </summary>
253     public class SatIconInfo
254     {
255         internal byte IconWidth;
256         internal byte IconHeight;
257         internal SatImageCodingScheme Scheme;
258         internal ushort IconLength;
259         internal ushort ClutLength;
260         internal string IcnFile;
261         internal string CltFile;
262
263         internal SatIconInfo()
264         {
265         }
266
267         /// <summary>
268         /// Icon width.
269         /// </summary>
270         /// <value>Width of the icon represented in byte.</value>
271         public byte Width
272         {
273             get
274             {
275                 return IconWidth;
276             }
277         }
278
279         /// <summary>
280         /// Icon height.
281         /// </summary>
282         /// <value>Height of the icon represented in byte.</value>
283         public byte Height
284         {
285             get
286             {
287                 return IconHeight;
288             }
289         }
290
291         /// <summary>
292         /// Image coding scheme.
293         /// </summary>
294         /// <value>Image coding scheme represented as SatImageCodingScheme enum.</value>
295         public SatImageCodingScheme Ics
296         {
297             get
298             {
299                 return Scheme;
300             }
301         }
302
303         /// <summary>
304         /// Icon data length.
305         /// </summary>
306         /// <value>Data length of the icon represented in ushort.</value>
307         public ushort IconDataLength
308         {
309             get
310             {
311                 return IconLength;
312             }
313         }
314
315         /// <summary>
316         /// Clut data length.
317         /// </summary>
318         /// <value>Data length of the clut represented in ushort.</value>
319         public ushort ClutDataLength
320         {
321             get
322             {
323                 return ClutLength;
324             }
325         }
326
327         /// <summary>
328         /// Icon file.
329         /// </summary>
330         /// <value>Icon file string.</value>
331         public string IconFile
332         {
333             get
334             {
335                 return IcnFile;
336             }
337         }
338
339         /// <summary>
340         /// Clut file.
341         /// </summary>
342         /// <value>Clut file string.</value>
343         public string ClutFile
344         {
345             get
346             {
347                 return CltFile;
348             }
349         }
350     }
351
352     /// <summary>
353     /// A class which defines the icon identifier data object.
354     /// </summary>
355     public class SatIconIdListInfo
356     {
357         internal bool IsPresent;
358         internal SatIconQualifierType Qualifier;
359         internal byte Count;
360         internal byte[] IconList;
361         internal IEnumerable<SatIconInfo> Info;
362
363         internal SatIconIdListInfo()
364         {
365         }
366
367         /// <summary>
368         /// Flag for checking whether the icon identifier exists.
369         /// </summary>
370         /// <value>Boolean value indicating the presence of icon.</value>
371         public bool IsIconPresent
372         {
373             get
374             {
375                 return IsPresent;
376             }
377         }
378
379         /// <summary>
380         /// Icon list qualifier.
381         /// </summary>
382         /// <value>Icon list qualifier represented in SatIconQualifierType enum.</value>
383         public SatIconQualifierType IconListQualifier
384         {
385             get
386             {
387                 return Qualifier;
388             }
389         }
390
391         /// <summary>
392         /// Number of icons.
393         /// </summary>
394         /// <value>Byte value indicating the number of icons.</value>
395         public byte IconCount
396         {
397             get
398             {
399                 return Count;
400             }
401         }
402
403         /// <summary>
404         /// Icon identifier list.
405         /// </summary>
406         /// <value>A byte array containing the list of Icon identifier.</value>
407         public byte[] IconIdList
408         {
409             get
410             {
411                 return IconList;
412             }
413         }
414
415         /// <summary>
416         /// Icon list info.
417         /// </summary>
418         /// <value>List of icon info.</value>
419         public IEnumerable<SatIconInfo> IconInfo
420         {
421             get
422             {
423                 return Info;
424             }
425         }
426     }
427
428     /// <summary>
429     /// A class containing display text proactive command for SAT UI.
430     /// </summary>
431     public class SatDisplayTextData
432     {
433         internal int Id;
434         internal SatTextInfo Text;
435         internal uint Drtn;
436         internal bool IsPrtyHigh;
437         internal bool IsRespRequired;
438         internal bool IsImmediateResp;
439         internal SatIconIdInfo IcnId;
440
441         internal SatDisplayTextData()
442         {
443         }
444
445         /// <summary>
446         /// Proactive command number sent by USIM.
447         /// </summary>
448         /// <value>Command id in integer format.</value>
449         public int CommandId
450         {
451             get
452             {
453                 return Id;
454             }
455         }
456
457         /// <summary>
458         /// Character data to display on screen.
459         /// </summary>
460         /// <value>An instance of SatTextInfo containing text information.</value>
461         public SatTextInfo TextInfo
462         {
463             get
464             {
465                 return Text;
466             }
467         }
468
469         /// <summary>
470         /// Duration of the display.
471         /// </summary>
472         /// <value>Duration in integer format.</value>
473         public uint Duration
474         {
475             get
476             {
477                 return Drtn;
478             }
479         }
480
481         /// <summary>
482         /// Flag that indicates whether text is to be displayed if some other app is using the screen.
483         /// </summary>
484         /// <value>Boolean value checking the priority of the display.</value>
485         public bool IsPriorityHigh
486         {
487             get
488             {
489                 return IsPrtyHigh;
490             }
491         }
492
493         /// <summary>
494         /// Flag that indicates whether user response is required.
495         /// </summary>
496         /// <value>Boolean value to check the need of user response.</value>
497         public bool IsUserResponseRequired
498         {
499             get
500             {
501                 return IsRespRequired;
502             }
503         }
504
505         /// <summary>
506         /// Flag for checking whether immediate response is required.
507         /// </summary>
508         /// <value>Boolean value to check the immediate response status.</value>
509         public bool IsImmediateResponse
510         {
511             get
512             {
513                 return IsImmediateResp;
514             }
515         }
516
517         /// <summary>
518         /// Icon Identifier.
519         /// </summary>
520         /// <value>An instance of SatIconIdInfo class.</value>
521         public SatIconIdInfo IconId
522         {
523             get
524             {
525                 return IcnId;
526             }
527         }
528     }
529
530     /// <summary>
531     /// A class defining character data for the SAT engine data structure.
532     /// </summary>
533     public class SatTextInfo
534     {
535         internal ushort Length;
536         internal byte[] Data;
537
538         internal SatTextInfo()
539         {
540         }
541
542         /// <summary>
543         /// Character data length.
544         /// </summary>
545         /// <value>An unsigned short value representing the string length.</value>
546         public ushort StringLength
547         {
548             get
549             {
550                 return Length;
551             }
552         }
553
554         /// <summary>
555         /// Character data.
556         /// </summary>
557         /// <value>A byte array representing the string data.</value>
558         public byte[] StringData
559         {
560             get
561             {
562                 return Data;
563             }
564         }
565     }
566
567     /// <summary>
568     /// A class which defines select item proactive command data for SAT UI.
569     /// </summary>
570     public class SatSelectItemData
571     {
572         internal int Id;
573         internal bool IsHelpAvailable;
574         internal SatTextInfo Text;
575         internal char DefaultIndex;
576         internal char ItemCount;
577         internal IEnumerable<SatMenuItemInfo> Items;
578         internal SatIconIdInfo IcnId;
579         internal SatIconIdListInfo IdList;
580
581         internal SatSelectItemData()
582         {
583         }
584
585         /// <summary>
586         /// Proactive command number sent by USIM.
587         /// </summary>
588         /// <value>Command id represented in integer format.</value>
589         public int CommandId
590         {
591             get
592             {
593                 return Id;
594             }
595         }
596
597         /// <summary>
598         /// Flag for a help information request.
599         /// </summary>
600         /// <value>Boolean value to check whether help information is availale or not.</value>
601         public bool IsHelpInfoAvailable
602         {
603             get
604             {
605                 return IsHelpAvailable;
606             }
607         }
608
609         /// <summary>
610         /// Menu title text.
611         /// </summary>
612         /// <value>An instance of SatTextInfo class containing the text information.</value>
613         public SatTextInfo TextInfo
614         {
615             get
616             {
617                 return Text;
618             }
619         }
620
621         /// <summary>
622         /// Selected default item.
623         /// </summary>
624         /// <value>Default item index of the given items.</value>
625         public char DefaultItemIndex
626         {
627             get
628             {
629                 return DefaultIndex;
630             }
631         }
632
633         /// <summary>
634         /// Number of menu items.
635         /// </summary>
636         /// <value>Menu items count represented as a character.</value>
637         public char MenuItemCount
638         {
639             get
640             {
641                 return ItemCount;
642             }
643         }
644
645         /// <summary>
646         /// Menu items.
647         /// </summary>
648         /// <value>A list of SatMenuItemInfo objects.</value>
649         public IEnumerable<SatMenuItemInfo> MenuItems
650         {
651             get
652             {
653                 return Items;
654             }
655         }
656
657         /// <summary>
658         /// Icon Identifier.
659         /// </summary>
660         /// <value>An instance of SatIconIdInfo class.</value>
661         public SatIconIdInfo IconId
662         {
663             get
664             {
665                 return IcnId;
666             }
667         }
668
669         /// <summary>
670         /// List of Icon Identifiers.
671         /// </summary>
672         /// <value>An instance of SatIconIdListInfo class containing the list of icon identifiers.</value>
673         public SatIconIdListInfo IconIdList
674         {
675             get
676             {
677                 return IdList;
678             }
679         }
680     }
681
682     /// <summary>
683     /// A class which defines the menu item data object.
684     /// </summary>
685     public class SatMenuItemInfo
686     {
687         internal byte Id;
688         internal byte Length;
689         internal byte[] Txt;
690
691         internal SatMenuItemInfo()
692         {
693         }
694
695         /// <summary>
696         /// Item identifier.
697         /// </summary>
698         /// <value>Item Id represented in byte.</value>
699         public byte ItemId
700         {
701             get
702             {
703                 return Id;
704             }
705         }
706
707         /// <summary>
708         /// Text length.
709         /// </summary>
710         /// <value>Length of the text represented in byte.</value>
711         public byte TextLength
712         {
713             get
714             {
715                 return Length;
716             }
717         }
718
719         /// <summary>
720         /// Text information.
721         /// </summary>
722         /// <value>A byte array of length TextLength containing the text information.</value>
723         public byte[] Text
724         {
725             get
726             {
727                 return Txt;
728             }
729         }
730     }
731
732     /// <summary>
733     /// A class which defines get inkey proactive command data for SAT UI.
734     /// </summary>
735     public class SatGetInKeyData
736     {
737         internal int Id;
738         internal SatInKeyType Type;
739         internal SatInputAlphabetType AlphabetType;
740         internal bool IsNumericFlag;
741         internal bool IsHelpAvailable;
742         internal SatTextInfo Text;
743         internal uint Duratn;
744         internal SatIconIdInfo IcnId;
745
746         internal SatGetInKeyData()
747         {
748         }
749
750         /// <summary>
751         /// Proactive command number sent by USIM.
752         /// </summary>
753         /// <value>Command id represented in integer format.</value>
754         public int CommandId
755         {
756             get
757             {
758                 return Id;
759             }
760         }
761
762         /// <summary>
763         /// Input Type.
764         /// </summary>
765         /// <value>Character Set or Yes/No.</value>
766         public SatInKeyType KeyType
767         {
768             get
769             {
770                 return Type;
771             }
772         }
773
774         /// <summary>
775         /// Input character mode.
776         /// </summary>
777         /// <value>SMS default, UCS2.</value>
778         public SatInputAlphabetType InputAlphabetType
779         {
780             get
781             {
782                 return AlphabetType;
783             }
784         }
785
786         /// <summary>
787         /// Flag for checking whether input character is numeric.
788         /// </summary>
789         /// <value>Boolean value for checking whether input character is numeric or not.</value>
790         public bool IsNumeric
791         {
792             get
793             {
794                 return IsNumericFlag;
795             }
796         }
797
798         /// <summary>
799         /// Help info request flag.
800         /// </summary>
801         /// <value>Boolean value for checking whether help info is available or not.</value>
802         public bool IsHelpInfoAvailable
803         {
804             get
805             {
806                 return IsHelpAvailable;
807             }
808         }
809
810         /// <summary>
811         /// Character data to display on the screen.
812         /// </summary>
813         /// <value>An instance of SatTextInfo class containing the text information.</value>
814         public SatTextInfo TextInfo
815         {
816             get
817             {
818                 return Text;
819             }
820         }
821
822         /// <summary>
823         /// Duration of the display.
824         /// </summary>
825         /// <value>Display duration represented in unsigned integer.</value>
826         public uint Duration
827         {
828             get
829             {
830                 return Duratn;
831             }
832         }
833
834         /// <summary>
835         /// Icon identifier.
836         /// </summary>
837         /// <value>An instance of SatIconIdInfo class containing the Icon identifier information.</value>
838         public SatIconIdInfo IconId
839         {
840             get
841             {
842                 return IcnId;
843             }
844         }
845     }
846
847     /// <summary>
848     /// A class which defines get input proactive command data for SAT UI.
849     /// </summary>
850     public class SatGetInputData
851     {
852         internal int Id;
853         internal SatInputAlphabetType Type;
854         internal bool IsNumericFlag;
855         internal bool IsHelpAvailable;
856         internal bool IsEcho;
857         internal SatTextInfo Text;
858         internal SatResponseLengthInfo RespLength;
859         internal SatTextInfo Default;
860         internal SatIconIdInfo IcnId;
861
862         internal SatGetInputData()
863         {
864         }
865
866         /// <summary>
867         /// Proactive command number sent by USIM.
868         /// </summary>
869         /// <value>Command id represented in integer format.</value>
870         public int CommandId
871         {
872             get
873             {
874                 return Id;
875             }
876         }
877
878         /// <summary>
879         /// Input character mode.
880         /// </summary>
881         /// <value>SMS default, UCS2.</value>
882         public SatInputAlphabetType AlphabetType
883         {
884             get
885             {
886                 return Type;
887             }
888         }
889
890         /// <summary>
891         /// Flag to check whether input character is numeric.
892         /// </summary>
893         /// <value>Boolean value to check the nature of input character.</value>
894         public bool IsNumeric
895         {
896             get
897             {
898                 return IsNumericFlag;
899             }
900         }
901
902         /// <summary>
903         /// Help info request flag.
904         /// </summary>
905         /// <value>Boolean value to check help information availability.</value>
906         public bool IsHelpInfoAvailable
907         {
908             get
909             {
910                 return IsHelpAvailable;
911             }
912         }
913
914         /// <summary>
915         /// Flag that indicates whether to show input data on the screen.
916         /// </summary>
917         /// <value>Boolean value to check the availability of input data on the screen.</value>
918         public bool IsEchoInput
919         {
920             get
921             {
922                 return IsEcho;
923             }
924         }
925
926         /// <summary>
927         /// Character data to display on the screen.
928         /// </summary>
929         /// <value>An instance of SatTextInfo.</value>
930         public SatTextInfo TextInfo
931         {
932             get
933             {
934                 return Text;
935             }
936         }
937
938         /// <summary>
939         /// Input data min, max length.
940         /// </summary>
941         /// <value>An instance of SatResponseLengthInfo.</value>
942         public SatResponseLengthInfo ResponseLength
943         {
944             get
945             {
946                 return RespLength;
947             }
948         }
949
950         /// <summary>
951         /// Default input character data.
952         /// </summary>
953         /// <value>An instance of SatTextInfo.</value>
954         public SatTextInfo DefualtText
955         {
956             get
957             {
958                 return Default;
959             }
960         }
961
962         /// <summary>
963         /// Icon identifier.
964         /// </summary>
965         /// <value>An instance of SatIconIdInfo.</value>
966         public SatIconIdInfo IconId
967         {
968             get
969             {
970                 return IcnId;
971             }
972         }
973     }
974
975     /// <summary>
976     /// A class which defines expected user response length.
977     /// </summary>
978     public class SatResponseLengthInfo
979     {
980         internal byte Min;
981         internal byte Max;
982
983         internal SatResponseLengthInfo()
984         {
985         }
986
987         /// <summary>
988         /// User response length's minimum value.
989         /// </summary>
990         /// <value>Minimum value represented in byte.</value>
991         public byte Minimum
992         {
993             get
994             {
995                 return Min;
996             }
997         }
998
999         /// <summary>
1000         /// User response length's maximum value.
1001         /// </summary>
1002         /// <value>Maximum value represented in byte.</value>
1003         public byte Maximum
1004         {
1005             get
1006             {
1007                 return Max;
1008             }
1009         }
1010     }
1011
1012     /// <summary>
1013     /// A class which defines refresh proactive command data for applications that are concerned with files residing on USIM.
1014     /// </summary>
1015     public class SatRefreshData
1016     {
1017         internal int Id;
1018         internal SatRefreshAppType Type;
1019         internal SatCmdQualiRefresh Mode;
1020         internal byte Count;
1021         internal IEnumerable<SimFileId> IdList;
1022
1023         internal SatRefreshData()
1024         {
1025         }
1026
1027         /// <summary>
1028         /// Proactive command number sent by USIM.
1029         /// </summary>
1030         /// <value>Command id represented in integer format.</value>
1031         public int CommandId
1032         {
1033             get
1034             {
1035                 return Id;
1036             }
1037         }
1038
1039         /// <summary>
1040         /// Concerned application type.
1041         /// </summary>
1042         /// <value>Refresh app type represented in SatRefreshAppType enum.</value>
1043         public SatRefreshAppType AppType
1044         {
1045             get
1046             {
1047                 return Type;
1048             }
1049         }
1050
1051         /// <summary>
1052         /// Refresh mode.
1053         /// </summary>
1054         /// <value>Refresh mode represented in SatCmdQualiRefresh enum.</value>
1055         public SatCmdQualiRefresh RefreshMode
1056         {
1057             get
1058             {
1059                 return Mode;
1060             }
1061         }
1062
1063         /// <summary>
1064         /// Refresh file count.
1065         /// </summary>
1066         /// <value>File count represented in byte.</value>
1067         public byte FileCount
1068         {
1069             get
1070             {
1071                 return Count;
1072             }
1073         }
1074
1075         /// <summary>
1076         /// Refresh file identifiers.
1077         /// </summary>
1078         /// <value>A list of SimFileId enums.</value>
1079         public IEnumerable<SimFileId> FileId
1080         {
1081             get
1082             {
1083                 return IdList;
1084             }
1085         }
1086     }
1087
1088     /// <summary>
1089     /// A class which defines send SMS proactive command data for the SMS application.
1090     /// </summary>
1091     public class SatSendSmsData
1092     {
1093         internal int Id;
1094         internal bool IsPackRequired;
1095         internal SatAddressData Addr;
1096         internal SatSmsTpduInfo Info;
1097
1098         internal SatSendSmsData()
1099         {
1100         }
1101
1102         /// <summary>
1103         /// Proactive Command Number sent by USIM.
1104         /// </summary>
1105         /// <value>Command id represented in integer.</value>
1106         public int CommandId
1107         {
1108             get
1109             {
1110                 return Id;
1111             }
1112         }
1113
1114         /// <summary>
1115         /// Flag to check if packing is required for SMS Tpdu.
1116         /// </summary>
1117         /// <value>Boolean value to check the need of packing in SMS Tpdu data.</value>
1118         public bool IsPackingRequired
1119         {
1120             get
1121             {
1122                 return IsPackRequired;
1123             }
1124         }
1125
1126         /// <summary>
1127         /// Destination address.
1128         /// </summary>
1129         /// <value>An instance of SatAddressData containing the address info.</value>
1130         public SatAddressData Address
1131         {
1132             get
1133             {
1134                 return Addr;
1135             }
1136         }
1137
1138         /// <summary>
1139         /// SMS Tpdu data.
1140         /// </summary>
1141         /// <value>An instance of SatSmsTpduInfo.</value>
1142         public SatSmsTpduInfo TpduInfo
1143         {
1144             get
1145             {
1146                 return Info;
1147             }
1148         }
1149     }
1150
1151     /// <summary>
1152     /// A class which defines SAT address data object.
1153     /// </summary>
1154     public class SatAddressData
1155     {
1156         internal SimTypeOfNumber Type;
1157         internal SimNumberPlanIdentity NumId;
1158         internal byte NumLen;
1159         internal string Number;
1160
1161         internal SatAddressData()
1162         {
1163         }
1164
1165         /// <summary>
1166         /// Type of number.
1167         /// </summary>
1168         /// <value>Sim type of number represented in SimTypeOfNumber enum.</value>
1169         public SimTypeOfNumber Ton
1170         {
1171             get
1172             {
1173                 return Type;
1174             }
1175         }
1176
1177         /// <summary>
1178         /// Number plan identity.
1179         /// </summary>
1180         /// <value>Sim number plan represented in SimNumberPlanIdentity enum.</value>
1181         public SimNumberPlanIdentity Npi
1182         {
1183             get
1184             {
1185                 return NumId;
1186             }
1187         }
1188
1189         /// <summary>
1190         /// Length of dialling number.
1191         /// </summary>
1192         /// <value>Dialling number length represented in byte.</value>
1193         public byte DiallingNumberLength
1194         {
1195             get
1196             {
1197                 return NumLen;
1198             }
1199         }
1200
1201         /// <summary>
1202         /// Dialling number.
1203         /// </summary>
1204         /// <value>Dialling number represented in string.</value>
1205         public string DiallingNumber
1206         {
1207             get
1208             {
1209                 return Number;
1210             }
1211         }
1212     }
1213
1214     /// <summary>
1215     /// A class which defines the Result data object.
1216     /// </summary>
1217     public class SatSmsTpduInfo
1218     {
1219         internal SatSmsTpduType Type;
1220         internal byte Length;
1221         internal byte[] Data;
1222
1223         internal SatSmsTpduInfo()
1224         {
1225         }
1226
1227         /// <summary>
1228         /// SMS TPDU type.
1229         /// </summary>
1230         /// <value>Tpdu type represented in SatSmsTpduType.</value>
1231         public SatSmsTpduType TpduType
1232         {
1233             get
1234             {
1235                 return Type;
1236             }
1237         }
1238
1239         /// <summary>
1240         /// SMS TPDU data length.
1241         /// </summary>
1242         /// <value>Length of Tpdu data represented in byte.</value>
1243         public byte DataLength
1244         {
1245             get
1246             {
1247                 return Length;
1248             }
1249         }
1250
1251         /// <summary>
1252         /// SMS TPDU data.
1253         /// </summary>
1254         /// <value>An array of bytes representing TPDU data.</value>
1255         public byte[] TpduData
1256         {
1257             get
1258             {
1259                 return Data;
1260             }
1261         }
1262     }
1263
1264     /// <summary>
1265     /// A class which defines Event list info.
1266     /// </summary>
1267     public class SatEventListData
1268     {
1269         internal bool IsDownloadActive;
1270         internal bool IsCallEvent;
1271         internal bool IsConnected;
1272         internal bool IsDisconnected;
1273         internal bool IsStatus;
1274         internal bool IsUsrActivity;
1275         internal bool IsIdleScreen;
1276         internal bool IsReaderStatus;
1277         internal bool IsLanguageSelect;
1278         internal bool IsBrowserTerminate;
1279         internal bool IsDataPresent;
1280         internal bool IsCnlStatus;
1281
1282         internal SatEventListData()
1283         {
1284         }
1285
1286         /// <summary>
1287         /// Flag to check if the event download is acive.
1288         /// </summary>
1289         /// <value>Boolean value to check for active event download.</value>
1290         public bool IsEventDownloadActive
1291         {
1292             get
1293             {
1294                 return IsDownloadActive;
1295             }
1296         }
1297
1298         /// <summary>
1299         /// Flag to check if the event is about Mt call event.
1300         /// </summary>
1301         /// <value>Boolean value to check the event for Mt call event.</value>
1302         public bool IsMtCallEvent
1303         {
1304             get
1305             {
1306                 return IsCallEvent;
1307             }
1308         }
1309
1310         /// <summary>
1311         /// Flag to check if the call is connected.
1312         /// </summary>
1313         /// <value>Boolean value to check the connection of call.</value>
1314         public bool IsCallConnected
1315         {
1316             get
1317             {
1318                 return IsConnected;
1319             }
1320         }
1321
1322         /// <summary>
1323         /// Flag to check if the call is disconnected.
1324         /// </summary>
1325         /// <value>Boolean value to check the call disconnection.</value>
1326         public bool IsCallDisconnected
1327         {
1328             get
1329             {
1330                 return IsDisconnected;
1331             }
1332         }
1333
1334         /// <summary>
1335         /// Flag to check if the event is aboout locaion status.
1336         /// </summary>
1337         /// <value>Boolean value to check the presence of location status in the event.</value>
1338         public bool IsLocationStatus
1339         {
1340             get
1341             {
1342                 return IsStatus;
1343             }
1344         }
1345
1346         /// <summary>
1347         /// Flag to check if the event is about user activity.
1348         /// </summary>
1349         /// <value>Boolean value to check the presence of user activity.</value>
1350         public bool IsUserActivity
1351         {
1352             get
1353             {
1354                 return IsUsrActivity;
1355             }
1356         }
1357
1358         /// <summary>
1359         /// Flag to check if idle screen is available.
1360         /// </summary>
1361         /// <value>Boolean value to check the availability of idle screen.</value>
1362         public bool IsIdleScreenAvailable
1363         {
1364             get
1365             {
1366                 return IsIdleScreen;
1367             }
1368         }
1369
1370         /// <summary>
1371         /// Flag to check if the event is about card reader status.
1372         /// </summary>
1373         /// <value>Boolean value to check the status of card reader.</value>
1374         public bool IsCardReaderStatus
1375         {
1376             get
1377             {
1378                 return IsReaderStatus;
1379             }
1380         }
1381
1382         /// <summary>
1383         /// Flag to check if the event is about language selection.
1384         /// </summary>
1385         /// <value>Boolean value to check if the event is language selection.</value>
1386         public bool IsLanguageSelection
1387         {
1388             get
1389             {
1390                 return IsLanguageSelect;
1391             }
1392         }
1393
1394         /// <summary>
1395         /// Flag to check if the browser is terminated.
1396         /// </summary>
1397         /// <value>Boolean value to check the termination of browser.</value>
1398         public bool IsBrowserTermination
1399         {
1400             get
1401             {
1402                 return IsBrowserTerminate;
1403             }
1404         }
1405
1406         /// <summary>
1407         /// Flag to check if the data is available.
1408         /// </summary>
1409         /// <value>Boolean value to check availablility of data.</value>
1410         public bool IsDataAvailable
1411         {
1412             get
1413             {
1414                 return IsDataPresent;
1415             }
1416         }
1417
1418         /// <summary>
1419         /// Flag to check if the event has channel status.
1420         /// </summary>
1421         /// <value>Boolean value to check if this field is a channel status.</value>
1422         public bool IsChannelStatus
1423         {
1424             get
1425             {
1426                 return IsCnlStatus;
1427             }
1428         }
1429     }
1430
1431     /// <summary>
1432     /// A class which defines send DTMF proactive command data for the DTMF application.
1433     /// </summary>
1434     public class SatSendDtmfData
1435     {
1436         internal int Id;
1437         internal bool IsHidden;
1438         internal SatTextInfo Dtmf;
1439
1440         internal SatSendDtmfData()
1441         {
1442         }
1443
1444         /// <summary>
1445         /// Proactive Command Number sent by USIM
1446         /// </summary>
1447         /// <value>Command id represented in integer.</value>
1448         public int CommandId
1449         {
1450             get
1451             {
1452                 return Id;
1453             }
1454         }
1455
1456         /// <summary>
1457         /// Hidden mode flag.
1458         /// </summary>
1459         /// <value>Flag to check if the data is in hidden mode.</value>
1460         public bool IsHiddenMode
1461         {
1462             get
1463             {
1464                 return IsHidden;
1465             }
1466         }
1467
1468         /// <summary>
1469         /// DTMF string data.
1470         /// </summary>
1471         /// <value>An instance of SatTextInfo containing DTMF string data.</value>
1472         public SatTextInfo DtmfString
1473         {
1474             get
1475             {
1476                 return Dtmf;
1477             }
1478         }
1479     }
1480
1481     /// <summary>
1482     /// A class which defines call control confirm data for Call/Ss.
1483     /// </summary>
1484     public class SatCallCtrlData
1485     {
1486         internal SatTextInfo Addr;
1487         internal SatTextInfo SubAddr;
1488         internal SatBcRepeatIndicatorType RepeatIndicator;
1489         internal SatTextInfo Ccparam1;
1490         internal SatTextInfo Ccparam2;
1491
1492         internal SatCallCtrlData()
1493         {
1494         }
1495
1496         /// <summary>
1497         /// Call destination address.
1498         /// </summary>
1499         /// <value>An instance of SatTextInfo class.</value>
1500         public SatTextInfo Address
1501         {
1502             get
1503             {
1504                 return Addr;
1505             }
1506         }
1507
1508         /// <summary>
1509         /// Call SUB address.
1510         /// </summary>
1511         /// <value>An instance of SatTextInfo class.</value>
1512         public SatTextInfo SubAddress
1513         {
1514             get
1515             {
1516                 return SubAddr;
1517             }
1518         }
1519
1520         /// <summary>
1521         /// BC repeat indicator.
1522         /// </summary>
1523         /// <value>SatBcRepeatIndicatorType enum representing Bc repeat indicator.</value>
1524         public SatBcRepeatIndicatorType BcRepeatIndicator
1525         {
1526             get
1527             {
1528                 return RepeatIndicator;
1529             }
1530         }
1531
1532         /// <summary>
1533         /// Configuration Capability Parameter 1.
1534         /// </summary>
1535         /// <value>An instance of SatTextInfo class.</value>
1536         public SatTextInfo Ccp1
1537         {
1538             get
1539             {
1540                 return Ccparam1;
1541             }
1542         }
1543
1544         /// <summary>
1545         /// Configuration Capability Parameter 2.
1546         /// </summary>
1547         /// <value>An instance of SatTextInfo class.</value>
1548         public SatTextInfo Ccp2
1549         {
1550             get
1551             {
1552                 return Ccparam2;
1553             }
1554         }
1555     }
1556
1557     /// <summary>
1558     /// A class which defines common call control confirm data.
1559     /// </summary>
1560     public class SatCallCtrlConfirmData
1561     {
1562         internal SatCallType Type;
1563         internal SatCallCtrlResultType Result;
1564         internal SatTextInfo Data;
1565         internal bool IsUserInfoEnabled;
1566         internal SatCallCtrlData CallData;
1567         internal SatCallCtrlData SsData;
1568         internal SatTextInfo Ussd;
1569
1570         internal SatCallCtrlConfirmData()
1571         {
1572         }
1573
1574         /// <summary>
1575         /// Call control confirm type - call, SS or USSD.
1576         /// </summary>
1577         /// <value>Type of call represented in SatCallType enum.</value>
1578         public SatCallType CallType
1579         {
1580             get
1581             {
1582                 return Type;
1583             }
1584         }
1585
1586         /// <summary>
1587         /// Call control result type.
1588         /// </summary>
1589         /// <value>Type of call control result represented in SatCallCtrlResultType enum.</value>
1590         public SatCallCtrlResultType CallCtrlResult
1591         {
1592             get
1593             {
1594                 return Result;
1595             }
1596         }
1597
1598         /// <summary>
1599         /// Call control display data.
1600         /// </summary>
1601         /// <value>An instance of SatTextInfo class containing information about call control display data.</value>
1602         public SatTextInfo DisplayData
1603         {
1604             get
1605             {
1606                 return Data;
1607             }
1608         }
1609
1610         /// <summary>
1611         /// Flag for checking existence of call control display.
1612         /// </summary>
1613         /// <value>Boolean value to check existence of user info display.</value>
1614         public bool IsUserInfoDisplayEnabled
1615         {
1616             get
1617             {
1618                 return IsUserInfoEnabled;
1619             }
1620         }
1621
1622         /// <summary>
1623         /// Call control call address.
1624         /// </summary>
1625         /// <remarks>
1626         /// This value will be filled only if CallType is MoVoice. Otherwise it will be null.
1627         /// </remarks>
1628         /// <value>An instance of SatCallCtrlData containing call control call address.</value>
1629         public SatCallCtrlData CallCtrlCallData
1630         {
1631             get
1632             {
1633                 return CallData;
1634             }
1635         }
1636
1637         /// <summary>
1638         /// Call control SS string.
1639         /// </summary>
1640         /// <remarks>
1641         /// This value will be filled only if CallType is Ss. Otherwise it will be null.
1642         /// </remarks>
1643         /// <value>An instance of SatCallCtrlData containing call control SS string.</value>
1644         public SatCallCtrlData CallCtrlSsData
1645         {
1646             get
1647             {
1648                 return SsData;
1649             }
1650         }
1651
1652         /// <summary>
1653         /// Call control USSD string.
1654         /// </summary>
1655         /// <remarks>
1656         /// This value will be filled only if CallType is Ussd. Otherwise it will be null.
1657         /// </remarks>
1658         /// <value>An instance of SatTextInfo class containing call control USSD string.</value>
1659         public SatTextInfo UssdString
1660         {
1661             get
1662             {
1663                 return Ussd;
1664             }
1665         }
1666     }
1667
1668     /// <summary>
1669     /// A  class which defines the data coding scheme object.
1670     /// </summary>
1671     public class SatDataCodingScheme
1672     {
1673         internal bool IsCompressed;
1674         internal SatAlphabetFormat Alphabet;
1675         internal SatMsgClassType Msg;
1676         internal byte Dcs;
1677
1678         internal SatDataCodingScheme()
1679         {
1680         }
1681
1682         /// <summary>
1683         /// Flag to verify the compressed format.
1684         /// </summary>
1685         /// <value>Boolean value to check the compressed value.</value>
1686         public bool IsCompressedFormat
1687         {
1688             get
1689             {
1690                 return IsCompressed;
1691             }
1692         }
1693
1694         /// <summary>
1695         /// Alphabet format type.
1696         /// </summary>
1697         /// <value>Represented in SatAlphabetFormat enum.</value>
1698         public SatAlphabetFormat AlphabetFormat
1699         {
1700             get
1701             {
1702                 return Alphabet;
1703             }
1704         }
1705
1706         /// <summary>
1707         /// Type of message class.
1708         /// </summary>
1709         /// <value>Message class represented in SatMsgClassType enum.</value>
1710         public SatMsgClassType MsgClass
1711         {
1712             get
1713             {
1714                 return Msg;
1715             }
1716         }
1717
1718         /// <summary>
1719         /// Raw DCS info.
1720         /// </summary>
1721         /// <value>Dcs info stored in byte.</value>
1722         public byte RawDcs
1723         {
1724             get
1725             {
1726                 return Dcs;
1727             }
1728         }
1729     }
1730
1731     /// <summary>
1732     /// A class which defines text string data object.
1733     /// </summary>
1734     public class SatTextTypeInfo
1735     {
1736         internal bool IsDigit;
1737         internal SatDataCodingScheme CodingScheme;
1738         internal ushort StringLen;
1739         internal string Text;
1740
1741         internal SatTextTypeInfo()
1742         {
1743         }
1744
1745         /// <summary>
1746         /// Flag for checking whether only digits are used.
1747         /// </summary>
1748         /// <value>Boolean value for checking the usage of only digits.</value>
1749         public bool IsDigitOnly
1750         {
1751             get
1752             {
1753                 return IsDigit;
1754             }
1755         }
1756
1757         /// <summary>
1758         /// Data coding scheme.
1759         /// </summary>
1760         /// <value>An instance of SatDataCodingScheme class.</value>
1761         public SatDataCodingScheme DCS
1762         {
1763             get
1764             {
1765                 return CodingScheme;
1766             }
1767         }
1768
1769         /// <summary>
1770         /// Text length.
1771         /// </summary>
1772         /// <value>Length of the string in unsigned short format.</value>
1773         public ushort StringLength
1774         {
1775             get
1776             {
1777                 return StringLen;
1778             }
1779         }
1780
1781         /// <summary>
1782         /// Text string.
1783         /// </summary>
1784         /// <value>Text represented in string.</value>
1785         public string TextString
1786         {
1787             get
1788             {
1789                 return Text;
1790             }
1791         }
1792     }
1793
1794     /// <summary>
1795     /// A class which defines MO SMS control confirm data.
1796     /// </summary>
1797     public class SatMoSmsCtrlData
1798     {
1799         internal SatCallCtrlResultType Result;
1800         internal bool IsUserInfo;
1801         internal SatTextTypeInfo Data;
1802         internal SatTextTypeInfo RpAddr;
1803         internal SatTextTypeInfo TpAddr;
1804
1805         internal SatMoSmsCtrlData()
1806         {
1807         }
1808
1809         /// <summary>
1810         /// Envelope result.
1811         /// </summary>
1812         /// <value>Result of MO SMS control confirm data.</value>
1813         public SatCallCtrlResultType MoResult
1814         {
1815             get
1816             {
1817                 return Result;
1818             }
1819         }
1820
1821         /// <summary>
1822         /// Display present flag.
1823         /// </summary>
1824         /// <value>Boolean value to check the presence of user information display.</value>
1825         public bool IsUserInfoDisplayEnabled
1826         {
1827             get
1828             {
1829                 return IsUserInfo;
1830             }
1831         }
1832
1833         /// <summary>
1834         /// Display data for sending SMS.
1835         /// </summary>
1836         /// <value>An instance of SatTextTypeInfo containing display data for sending SMS.</value>
1837         public SatTextTypeInfo DisplayData
1838         {
1839             get
1840             {
1841                 return Data;
1842             }
1843         }
1844
1845         /// <summary>
1846         /// The RP destination address of the service center.
1847         /// </summary>
1848         /// <value>An instance of SatTextTypeInfo containing RP destination address.</value>
1849         public SatTextTypeInfo RpDestAddress
1850         {
1851             get
1852             {
1853                 return RpAddr;
1854             }
1855         }
1856
1857         /// <summary>
1858         /// The TP destinationn address.
1859         /// </summary>
1860         /// <value>An instance of SatTextTypeInfo containing TP destination address.</value>
1861         public SatTextTypeInfo TpDestAddress
1862         {
1863             get
1864             {
1865                 return TpAddr;
1866             }
1867         }
1868     }
1869
1870     /// <summary>
1871     /// A class which defines setup call proactive command data for the call application.
1872     /// </summary>
1873     public class SatSetupCallData
1874     {
1875         internal int Id;
1876         internal SatCmdQualiSetupCall Type;
1877         internal SatTextInfo Text;
1878         internal SatTextInfo Number;
1879         internal uint Duratn;
1880         internal SatIconIdInfo IcnId;
1881
1882         internal SatSetupCallData()
1883         {
1884         }
1885
1886         /// <summary>
1887         /// Proactive Command Number sent by USIM.
1888         /// </summary>
1889         /// <value>Command Id represented in integer format.</value>
1890         public int CommandId
1891         {
1892             get
1893             {
1894                 return Id;
1895             }
1896         }
1897
1898         /// <summary>
1899         /// Call type
1900         /// </summary>
1901         /// <value>Type of call represented in SatCmdQualiSetupCall enum.</value>
1902         public SatCmdQualiSetupCall CallType
1903         {
1904             get
1905             {
1906                 return Type;
1907             }
1908         }
1909
1910         /// <summary>
1911         /// Display data for calling.
1912         /// </summary>
1913         /// <value>An instance of SatTextInfo containing display data for calling.</value>
1914         public SatTextInfo DisplayText
1915         {
1916             get
1917             {
1918                 return Text;
1919             }
1920         }
1921
1922         /// <summary>
1923         /// Call number.
1924         /// </summary>
1925         /// <value>An instance of SatTextInfo containing call number information.</value>
1926         public SatTextInfo CallNumber
1927         {
1928             get
1929             {
1930                 return Number;
1931             }
1932         }
1933
1934         /// <summary>
1935         /// Maximum repeat duration.
1936         /// </summary>
1937         /// <value>Max repeat duration represented in unsigned integer format.</value>
1938         public uint Duration
1939         {
1940             get
1941             {
1942                 return Duratn;
1943             }
1944         }
1945
1946         /// <summary>
1947         /// Icon identifier for the call application.
1948         /// </summary>
1949         /// <value>An instance of SatIconIdInfo containing Icon id information.</value>
1950         public SatIconIdInfo IconId
1951         {
1952             get
1953             {
1954                 return IcnId;
1955             }
1956         }
1957     }
1958
1959     /// <summary>
1960     /// A class which defines Send SS notification proactive command data for the applicaiton.
1961     /// </summary>
1962     public class SatSendSsData
1963     {
1964         internal int Id;
1965         internal SimTypeOfNumber NumType;
1966         internal SimNumberPlanIdentity Identity;
1967         internal byte StringLen;
1968         internal string Ss;
1969
1970         internal SatSendSsData()
1971         {
1972         }
1973
1974         /// <summary>
1975         /// Proactive Command Number sent by USIM.
1976         /// </summary>
1977         /// <value>Command id represented in integer format.</value>
1978         public int CommandId
1979         {
1980             get
1981             {
1982                 return Id;
1983             }
1984         }
1985
1986         /// <summary>
1987         /// Type of Number.
1988         /// </summary>
1989         /// <value>TON represented in SimTypeOfNumber enum.</value>
1990         public SimTypeOfNumber Ton
1991         {
1992             get
1993             {
1994                 return NumType;
1995             }
1996         }
1997
1998         /// <summary>
1999         /// Numbering Plan Identity.
2000         /// </summary>
2001         /// <value>NPI reprensented in SimNumberPlanIdentity enum.</value>
2002         public SimNumberPlanIdentity Npi
2003         {
2004             get
2005             {
2006                 return Identity;
2007             }
2008         }
2009
2010         /// <summary>
2011         /// SS string length.
2012         /// </summary>
2013         /// <value>Length of SS string represented in byte.</value>
2014         public byte StringLength
2015         {
2016             get
2017             {
2018                 return StringLen;
2019             }
2020         }
2021
2022         /// <summary>
2023         /// SS string.
2024         /// </summary>
2025         /// <value>Text string represented in string.</value>
2026         public string SsString
2027         {
2028             get
2029             {
2030                 return Ss;
2031             }
2032         }
2033     }
2034
2035     /// <summary>
2036     /// A class which defines send USSD notification proactive command data for the application.
2037     /// </summary>
2038     public class SatSetupUssdData
2039     {
2040         internal int Id;
2041         internal byte Dcs;
2042         internal byte StringLen;
2043         internal string Ussd;
2044
2045         internal SatSetupUssdData()
2046         {
2047         }
2048
2049         /// <summary>
2050         /// Proactive Command Number sent by USIM.
2051         /// </summary>
2052         /// <value>Command id represented in integer format.</value>
2053         public int CommandId
2054         {
2055             get
2056             {
2057                 return Id;
2058             }
2059         }
2060
2061         /// <summary>
2062         /// Raw DCS info.
2063         /// </summary>
2064         /// <value>Raw DCS information represented in byte.</value>
2065         public byte RawDcs
2066         {
2067             get
2068             {
2069                 return Dcs;
2070             }
2071         }
2072
2073         /// <summary>
2074         /// USSD string length.
2075         /// </summary>
2076         /// <value>Length of USSD string in byte.</value>
2077         public byte UssdStringLength
2078         {
2079             get
2080             {
2081                 return StringLen;
2082             }
2083         }
2084
2085         /// <summary>
2086         /// USSD string.
2087         /// </summary>
2088         /// <value>Ussd text represented in string format.</value>
2089         public string UssdString
2090         {
2091             get
2092             {
2093                 return Ussd;
2094             }
2095         }
2096     }
2097 }